Discussion about this post

User's avatar
Mark Neznansky's avatar

I'd like to try a few counter arguments (and forward some comments).

“Deep learning AIs will never really be able to move beyond boilerplate, because deep learning models are only capable of picking up on recurring patterns and relationships (even if they are very complex patterns and relationships), and the patterns in the code are the boilerplate.”

I think you're thinking about the architecture of ChatGPT. It was not built up for the purpose of writing code, but it is conceivable to me that a different architecture could be used to create a coding AI. For example, with a reinforcement learning setup that directs the machine to come up with code (that it runs) that achieves the requirement specified by the prompt. That is, not merely find a pattern in coding scripts, but be forced to compose code that achieves a goal. (Besides, what does our human mind do beyond picking up patterns and relationships?)

You're right that were such an AI used to write code, its employment would essentially be merely a higher-level programming language, like Python is higher-level than C is higher level than binary. You trade off one thing (efficiency, execution speed, specificity) for another (speed of programming, maintainability, readability). And with great power comes great responsibility: 40 years ago a programmer would have been expected to produce less than today, given the lack of Stack Overflow, immediately downloadable packages, APIs and so forth. The question would be if at some point the power is unnecessary excessive such that, as you muse on the last paragraph, you can do away with the software developer altogether.

Which is not to say that English, or any natural language, per se could be the medium between the programmer/ manager and the AI. As you say, it's messy and ambiguous, which is why technical language had developed way before any machine coding appeared in the world. A well written complicated mathematical equation can express clearly and tersely what English couldn't. The question, as I see it, is whether such a technical language to interface man and AI will be developed that will be simple enough to learn that it would be more convenient for a manager to learn and use it than to hire a programmer and explain to her in English what he wants. (But here's a thought: will AI replace managers?)

You're surely right about what the average bulk of a developer's work is. You scarcely need a manager to tell you what to do with a bug, but somebody needs to write the code that runs the packages you use, and even if many are programmer-driven, still there's code that is directed by managers, in English. My own experience has been exclusively with smaller, start-uppy companies with much to program de novo, and I can say that managers can be as hair-pull-inducing finicky as computers. Or even more. I've seen on the side, sandwiched between world-building questions and can a ranger with the amulet of darkness use level 3 mage spells, links to “workplace stack overflow” threads, but I imagine that copy-pasting advice from there is even less advisable.

By the way, I wonder why you think it's in unit tests where AI might shine (so to speak). It seems to me that if anything exactly there using an AI would be an overkill. With a template you can write them up faster than you could compose the English sentence to describe them. No?

Expand full comment
2 more comments...

No posts