The article makes the assumption humans will be deciding what software needs to be produced. I foresee a future where machines digest ongoing streams of data and decide what societal adjustments / refinements should be made to accomplish the meta instructions given to the machine (e.g. keep humans alive while maximizing their happiness, health, peace, and equality).
In that context, there will be no translation/compilation from a spoken human language to/from binary code. Machines will make evaluations of the data streams using binary (or quantum instructions or whatever the future holds) - but there will not be a software language or compilation. Programming languages exist solely for humans to instruct a machine what to do and will exist only for as long as humans are involved in instructing a machine what software to write - something that will not last for long (whether that be 1, 10, or 100 years, the time during which humans are involved in "making software" is finite).
Fifteen years ago or so I had a conversation with a colleague about automated development. I pointed out that it should be possible, in principle, for you to specify all the tests for a system and the algorithm, genetic algorithms were the fad du jour, could work to produce the desired result. Test-driven development (TDD) was also really popular, so I was combining the two.
We agreed that such an endeavor should be possible, but he protested that you haven't really gained anything: you will have just as much complexity in your tests as you do in your implementation, so what's the point?
I pointed out it was complexity of a different kind, and one that humans are much better equipped to handle. Most people I've told this story have agreed with me. If a "bug" is encountered, well, add a new test and re-generate the code! Maybe the system should have the old set of tests, old code that was generated, and the new tests as an input - as an optimization.
Can LLMs generate the needed code from a set of test specifications? I doubt it. Then again, neither could genetic algorithms. Maybe the two together can move the ball forward a bit - and that's the most fascinating thing to me. We don't need perfection to achieve useful. If I can create test specifications for a narrow sliver of functionality and have the needed code automatically generated - that's huge! But, and to answer the question this title asks, I would expect we'll still be using programming languages for quite some time.
In that context, there will be no translation/compilation from a spoken human language to/from binary code. Machines will make evaluations of the data streams using binary (or quantum instructions or whatever the future holds) - but there will not be a software language or compilation. Programming languages exist solely for humans to instruct a machine what to do and will exist only for as long as humans are involved in instructing a machine what software to write - something that will not last for long (whether that be 1, 10, or 100 years, the time during which humans are involved in "making software" is finite).
We agreed that such an endeavor should be possible, but he protested that you haven't really gained anything: you will have just as much complexity in your tests as you do in your implementation, so what's the point?
I pointed out it was complexity of a different kind, and one that humans are much better equipped to handle. Most people I've told this story have agreed with me. If a "bug" is encountered, well, add a new test and re-generate the code! Maybe the system should have the old set of tests, old code that was generated, and the new tests as an input - as an optimization.
Can LLMs generate the needed code from a set of test specifications? I doubt it. Then again, neither could genetic algorithms. Maybe the two together can move the ball forward a bit - and that's the most fascinating thing to me. We don't need perfection to achieve useful. If I can create test specifications for a narrow sliver of functionality and have the needed code automatically generated - that's huge! But, and to answer the question this title asks, I would expect we'll still be using programming languages for quite some time.