In the same way that Chinese people forgot how to write characters by hand, I think most programmers will forget how to write code without LLM editors or plugins pretty soon.
Once the usage of AI editors becomes mainstream, the programming languages themselves may start evolving in a direction of no longer being legible for an unaided human, because why not. Complaining about not being able to understand the source code will sound similar to complaining about not being able to read the binary code today. Like “yeah, but you are not supposed to do that, that’s what the algorithm is for”.
They may, but I think the AI code generators would have to be quite good. As long as the LLMs are merely complementing programming languages, I expect them to remain human-readable & writable; only once they are replacing existing programming languages do I expect serious inscrutability. Programming language development can be surprisingly antiquated and old-fashioned: there are many ways to design a language or encode it where it could be infeasible to ‘write’ it without a specialized program, and yet, in practice, pretty much every language you’ll use which is not a domain-specific (usually proprietary) tool will let you write source code in a plain text editor like Notepad or nano.
The use of syntax highlighting goes back to at least the ALGOL report, and yet, something like 50 years later, there are not many languages which can’t be read without syntax highlighting. In fact, there’s very few which can’t be programming just fine with solely ASCII characters in an 80-col teletype terminal, still. (APL famously failed to ever break out of a niche and all spiritual successors have generally found it wiser to at least provide a ‘plain text’ encoding; Fortress likewise never became more than a R&D project.) Like this website—HTML, CSS, JS, maybe some languages which compile to JS, SVG… all writable in a 1970s Unix minicomputer printing out to physical paper.
Or consider IDEs which operate at ‘project’ level or have ‘tags’ or otherwise parse the code in order to allow lookups of names, like methods on an object—you could imagine programming languages where these are not able to be written out normally because they are actually opaque UUIDs/blobs/capabilities, and you use a structural editor (similar to spreadsheets) to modify everything, instead of typing out names letter by letter like a barbarian. (And ‘visual’ programming languages often do such a thing.) The Smalltalk systems where you did everything by iteratively interacting with GUI objects come to mind as systems where it’s not even clear what the ‘plain text’ version is, after you’ve used the systems dynamically as they were intended to be used, and rewritten enough objects or overridden enough methods… But again, few languages in widespread use will do that.
In the same way that Chinese people forgot how to write characters by hand, I think most programmers will forget how to write code without LLM editors or plugins pretty soon.
Once the usage of AI editors becomes mainstream, the programming languages themselves may start evolving in a direction of no longer being legible for an unaided human, because why not. Complaining about not being able to understand the source code will sound similar to complaining about not being able to read the binary code today. Like “yeah, but you are not supposed to do that, that’s what the algorithm is for”.
They may, but I think the AI code generators would have to be quite good. As long as the LLMs are merely complementing programming languages, I expect them to remain human-readable & writable; only once they are replacing existing programming languages do I expect serious inscrutability. Programming language development can be surprisingly antiquated and old-fashioned: there are many ways to design a language or encode it where it could be infeasible to ‘write’ it without a specialized program, and yet, in practice, pretty much every language you’ll use which is not a domain-specific (usually proprietary) tool will let you write source code in a plain text editor like Notepad or nano.
The use of syntax highlighting goes back to at least the ALGOL report, and yet, something like 50 years later, there are not many languages which can’t be read without syntax highlighting. In fact, there’s very few which can’t be programming just fine with solely ASCII characters in an 80-col teletype terminal, still. (APL famously failed to ever break out of a niche and all spiritual successors have generally found it wiser to at least provide a ‘plain text’ encoding; Fortress likewise never became more than a R&D project.) Like this website—HTML, CSS, JS, maybe some languages which compile to JS, SVG… all writable in a 1970s Unix minicomputer printing out to physical paper.
Or consider IDEs which operate at ‘project’ level or have ‘tags’ or otherwise parse the code in order to allow lookups of names, like methods on an object—you could imagine programming languages where these are not able to be written out normally because they are actually opaque UUIDs/blobs/capabilities, and you use a structural editor (similar to spreadsheets) to modify everything, instead of typing out names letter by letter like a barbarian. (And ‘visual’ programming languages often do such a thing.) The Smalltalk systems where you did everything by iteratively interacting with GUI objects come to mind as systems where it’s not even clear what the ‘plain text’ version is, after you’ve used the systems dynamically as they were intended to be used, and rewritten enough objects or overridden enough methods… But again, few languages in widespread use will do that.