Ask HN: How much longer do coders have in the industry given automation?
A lot of software engineering is best compared to plumbing. Connect data from one input, mangle it a bit, translate it into a new output. As artificial intelligence becomes more power, I think we all agree that some parts of the "code" will be automatically written + maintained + deployed.
In a quick poll at my job, the answers seem to be within the range of 5 - 20 years, with most saying 15 - 20.
Does this mean we're all going to need to get into a new profession in 10 years, and that the demand for programmers is going to decline in the next 5 years?
15 comments
[ 3.1 ms ] story [ 50.0 ms ] threadhttps://www.commitstrip.com/en/2016/08/25/a-very-comprehensi...
Many limited domains have been "solved" from the perspective of having software available which allows non-technical users to suit their own needs: You can make a blog, a web store, or a wiki without any knowledge of HTML or a programming language. Yet even in these spaces, there are still users with a desire for custom solutions, and thus a market. There will always be new problems to solve- or old problems to solve better- requiring fresh ingenuity.
Marketing spin aside, I have seen zero evidence that progress has been made in replacing humans with software for the task of turning vague requirements into concrete, precise, machine-readable specifications. As long as that holds, software engineering as a profession will not disappear.
https://news.ycombinator.com/item?id=19347976
Maybe the "MarkDown + compiler for vague requirements" is just around the corner?
Isn't that where you put random code snippets + a vague description of what you expect it to do into a question on stackoverflow and wait for some rep hungry dev to turn it into working code?
Jokes aside, even with humans doing the interpreting and high costs incentivizing those defining the requirements to be precise and clear, I see a lot of friction. A not-really-smart automaton won't help there, I'm afraid.
Consider the task of writing an MP3 playing program. The vaguest specification possible might be "a program that lets me play MP3s". Imagine being given that task yourself. You might make a window with a list of tracks, a play button, and wire it up to an off-the-shelf audio codec. What if the author of that specification wanted a different organization of metadata, or audio visualization, or a favorites list, or a different color scheme? All these details would need to be provided. Having specified this information, you might still find there are finer details that need explanation- the way track titles animate, what it means to skip to a "previous" track while playing, the text sizes and whitespace, etc. What if you needed to support a novel audio format for which no existing libraries can be found? What would need to go into that specification?
If you carried the exercise out to the point that your specification were sufficiently precise for your intent to be completely reflected the end product for an arbitrary program, your specification would be rather complex. If you have something as precise and communicative as a programming language, it is a programming language! There is no free lunch.
You can make programming languages resemble English- see Natural Inform, the Interactive Fiction authoring system. It's very expressive, and the code is far more comprehensible to a lay reader than most languages, but an author still must be precise and explicit in composing those programs.
Well make the plumbing stuff easier (I'm working on this directly) but that will just enable programmers with more time to work on real problems. It won't reduce demand, we're far from peak coding or even imaging what that might look like.
Could you elaborate?
Who needs AI? Large parts already are automatically written, from simplified higher levels specs. In fact, that's been true since we developed the first compiler, and all progress in tooling has made it more true. All that progress does is increase the impact each programmer has, and the value of each hour of programmer labor compared to other labor in the economy. Software Development may involve more work that looks like analysis and architecture and less that looks like what we think of as coding as time goes on, just like programmers now work at a much higher level of abstraction than when the job involved manually flipping switches to set the code in a machine. But I don't think any great collapse is imminent.