Hacker News new | ask | show | jobs
by cantthinkofone 2722 days ago
Another risk I think is the automation of coding. It already happens all the time, and in principle coding should be the most automatable of anything. The only thing saving it is that it's very hard to automate the creation of good ideas or purposeful human intentions, which naturally inform most successful coding projects. There's also a bit of a conflict of interest, why would coders building automation systems want to automate themselves out of existence? I think these rationales protect software developers' job security for the near to mid-term future.

I'm also thinking that how people code could change drastically, but even so, that's less of a problem. Because the rules and logic of any programming language boil down to fundamental computer science principles which should remain constant despite the interface you're using to code, whether it's a keyboard and monitor or some kind of visual drag and drop thing or whatever someone comes up with.

6 comments

You have to think of it at a higher level: My job isn't coding, it's clarifying ideas. Programming languages can get higher-level, and more automated, but nothing is ever going to free us from the burden of clarifying our ideas. I believe this makes my job (the interesting parts, at least) pretty safe in the long-term.
That's a very nice way to put it IMO. See also this commit strip comic about the same topic: http://www.commitstrip.com/en/2016/08/25/a-very-comprehensiv...
I tend not to worry about programming automation, because I believe it has actually been going on for a long time with higher level languages. E.g. when programming was done at assembly level, the advent of C did not reduce the number of jobs, rather it made programming more powerful and created more jobs. Same with Java and 'automated' memory management. Same with Ruby on Rails, php, etc. By simplifying developers jobs, developers can create bigger and better products, which increases adoption of technology, which creates demand for even better products, which leads to more jobs and more automation. Maybe I'm wrong but I don't see any end to this cycle anytime soon.
I agree... but I just find that automation leads to more productivity which leads to more demand. There are always additional projects and features to be developed. The way development has focused in prioritizing features over handling technical debt, or adding bodies for features which escalates accumulating tech debt more quickly will always lead to more work.
> in principle coding should be the most automatable of anything

You still have to describe to the automaton what you want it to do -- and in doing that, you're programming.

Modern languages are all "automated programming" already -- you aren't writing machine code, you're describing to the automation system what you want, and then it generates the machine code for you.

This feels, unrealistic. Coding practices, tools and technology have minimally changed since the 70's.

Faster machines, but with each new language, you still have the baggage of design/code/compile/test/debug/refactor and the library/dependency hell that plagues things like oh, say Node.js with NPM, maven with Java, make with C/C++ etc. etc.

Then there is the flood of new "UI hotness libraries" in the JavaScript space alone. Pick one. wait 6 months and see what else is now the new hotness or if your current one has changed with a new major version release (Angular?).

There should be more folks like Bret Victor working with language teams in the FANG(+MS) companies to drive some further breakthroughs in reducing cognitive load and tool/library dependency complexities.

Where are this generation's Alan Kay and Jean-Marie Hullot types, pushing the envelope on software development environments?

> in principle coding should be the most automatable of anything

All coding is itself the act of automating something. I don't think there is a risk to developers as there is always more to automate. We use products that automate our own programming tasks to create more code to automate yet more things.

Whether or not programming can be completely automated is an interesting question.. when I think about what would make it unecessary for a human to be specifying the behavior of a computational system the only phrase that comes to mind is "general ai".