
Ask HN: How much longer do coders have in the industry given automation? - MuffinFlavored
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 &quot;code&quot; will be automatically written + maintained + deployed.<p>In a quick poll at my job, the answers seem to be within the range of 5 - 20 years, with most saying 15 - 20.<p>Does this mean we&#x27;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?
======
RodgerTheGreat
There is considerable motivation to reduce the need for programmer labor-
programmers are one of the most expensive ingredients in producing many
digital products and services. Many companies have made headlines with
promises of visual programming tools and/or machine learning leading to
"codeless software", but they are consistently either pure snake oil, highly
limited in scope, or "mechanical turks" which obscure the role of human labor
for marketing purposes.

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.

~~~
MuffinFlavored
> 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

[https://news.ycombinator.com/item?id=19347976](https://news.ycombinator.com/item?id=19347976)

Maybe the "MarkDown + compiler for vague requirements" is just around the
corner?

~~~
RodgerTheGreat
Extremely implausible.

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.

------
dragonwriter
> artificial intelligence becomes more power, I think we all agree that some
> parts of the "code" will be automatically written + maintained + deployed.

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.

------
eloff
We've been seeing steady advances on this front, not from AI, but from
improving tools. Programmers today can often do in a week what couldn't be
done in a month twenty years ago. But demand for programmers is steadily
rising.

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.

~~~
MuffinFlavored
> Well make the plumbing stuff easier (I'm working on this directly)

Could you elaborate?

~~~
eloff
I'm working on software that generates your plumbing code automatically from
graphql queries. Similar to Hasura if you're familiar with it.

------
mratsim
I'm not worried:

[https://www.commitstrip.com/en/2016/08/25/a-very-
comprehensi...](https://www.commitstrip.com/en/2016/08/25/a-very-
comprehensive-and-precise-spec/)

------
jki275
There's a whole lot of software engineering that is not plumbing.

~~~
MuffinFlavored
Could you give some examples?

~~~
juststeve
the engineering part.

~~~
MuffinFlavored
I've been working at corporate companies as a "software engineer" for 5+ years
now, and it's all plumbing.

~~~
jki275
Who do you think writes the libraries you "plumb"?

