Programming won't be automated, or it already has been

edA‑qa mort‑ora‑y on April 25, 2017

I'm afraid of a robot taking my job. I don't care about the job part much, I'm afraid of the actual robot. To replace my job it'd to exhibit huma... [Read Full]
 

For various other alternative perspectives of "can programming be automated" debate, you may be interested in "Will programming be automated? (A Slack Chat and Commentary)" and the Reddit comment thread.

As for my own personal (and ever-evolving) view, I don't really think most of what we do as humans require human-level intelligence. Perhaps a few things can't be easily automated (such as turning ideas into concrete software), but you will likely need much less programmers than before.

What happens to the excess programmers then? Either they find new IT work (which can happen...due to the Complexity Paradox) or they lose their jobs (and we deal with the ramifications).

 

I can imagine that programmers tend to have more creativity than robots. A robot would take a set of tasks and just do it. The human aspect of it is to redifine a task to form a better product.

Because of this I actually think the human level intelligence should be a must, but in the end it is subjective and would require an actual comparison between a robot with human level intelligence and without one.

 

What if human creativity can be approximated? There are already machine learning projects that can produce new melodies that sound as if they were written by certain composers, or in a certain style. Given enough data, machine learning algorithms can learn how to categorize and produce just about anything. If we theoretically had a dataset of the source code for 1 million web apps, and labeled them according to what the web app accomplished, I don't think its unreasonable to say that a good machine learning algorithm could spit out programs that achieved different labeled goals. With a good NLP that could take requirements in English and translate them into labels on the dataset, I think it could be possible to produce applications automatically. Now of course that theoretical data set is currently impossible to produce, and this is all theoretical, but my point is that its not unreasonable to say that one day we could have an AI that approximates human creativity. Maybe with 20 years of improvements on machine learning, and 20 years of building code bases as dataset, a machine learning algorithm could potentially threaten programmer's jobs.

That's different. Creating music with algorithms is really easy. It's not creativity, it's just math. What he's talking about is real creativity, inteligence, emotion. This is what robots can't have.

I remember the book "The Positronic man", when he had all the information about people, all the knowledge and ability to learn really fast, but actually he wanted to become a man. He asked for human rights, they gave him. He was so obsessed of being a man that he developed an artificial human organs that absorb the energy from the food. People started buying his organs and lived forever. But then he decided to implant these organs into himself so he can feel what is to be a human. He was in a real pain when his liver stopped working but he didn't give up. Then he found a doctor to implant a human brain in place of his positron brain. Then after several years of pain, he died with a smile on his face, happy that he had the ability to feel what is it to be a man.

en.wikipedia.org/wiki/The_Positron...

 

An old colleage 30 years ago told me this: during the glorious day of industries factory workers did think their jobs require too much intelligence to be automated, when that happened, they were surprised. Same for developers today. Even without talking about automation, there are a lot of inefficiencies today which could already be eliminated, as for automation many stuffs are just transposing requirements elicited by business analysts (I'm sorry to say many devs at least in corp world are not capable of understanding complex business without a business analyst), but long term it's not about automation, it's about AI capable of same and even superior intelligence to humans see aimonitor.stream/resource/scientis...

 

What percent of programming these days is consumed by working on the UI? With more powerful AI (e.g. chatbots, automated agents) the UI becomes nothing more than the results of what you wanted to have happen. With a lot of optimism, programming will be reduced to working on the algorithm. Possible?

 

This is what programming is all about. The rest is just clutter.

What people misunderstand about programming is thinking that it's hard because tools are hard. Nope, tools are managable and sometimes just great. Programming is hard, because people do not realise scope of implicit assumptions and decisions that are part of natural language, but are unacceptable for computers.

If a non-programmer wants a feature, he thinks about a happy path. Programmer needs to think about all paths and usually performs some kind of linearisation to avoid exponential explosion. This is the heart of programming skill. We might change our tools, abandon source code and use some user-friendly interface, but that decisions will still have to be made and so programmers will be needed for quite a long time (that is until "true AI" emerges).

 

50 years ago, IBM accessed the longtime market potential of their personal computers to be below 1 million pieces. 25 years ago reliable optical character recognition started to seem possible to be implemented in a pc. Today we know, that soon it will be possible to sit into a driverless car and say "take me to the opera" and it does.
We always tend to predict the future in terms of the past. Most problems we as programmers solve we would not have without computers. We cant say now what the future looks like in terms of programming, but it will be here sooner than we think now and as others said it will probably involve a lot less programmers than we have now.
And of course creative people will always find something to do, perhaps something to improve, but we will do it along AIs that do things we cannot imagine today.

 

I am not saying that AI is not coming. I believe in a future with true sentience level artifical intelligence. My position in the article is specifically about how the near future applies to programming.

If you consider what I say about the job in this article, and in my other article, you'll see the inability to automate programming relates to how I define what a programmer does.

The level of AI needed to automated the job away is the same as general human level intelligence. At this point the question of whether it replaces programmers is irrelevant, since it replaces all of human jobs

In the near term I truly help pseudo-AI (what we have today) will help automate many parts of programming. Perhaps there are some kinds of coding jobs that might be minized by this. Perhaps it enables good programmers to get more done. This is good.

 

It always depends on what the near future is. I tried to make the point, that it doesn't need human intelligence to replace a big part of the programmers working now.
If we think about it in terms of the past, we have to wait for true sentience level AI that does the exact job we do now. But with shifting paradigms like in the last few years, we could find ourselves having skills that are no longer needed. Not in a year, but in ten?
The first iPhone came ten years ago and today people dont know how to use maps anymore. Or timetables. And there's an app for everything, and if there isn't, you use Siri. (not yet, but soon ;). PCs are in decline and most important: outside of work, no one uses laptops anymore.
My point is: if we look at the future with todays knowledge, we can probably predict the next five years. If thats your horizon I think you are very right with your assessment.

 

Thanks for bringing some common sense to this ongoing debate. I've been trying to explain essentially the same concepts in IRC lately - programming is interfacing between two incompatible pieces of hardware: the human brain and the computer CPU. Until the computer fully emulates the human brain, we'll still need programmers.

And anyway, who fixes the bots when they glitch?

 

I believe 90+% of what programmers produce can be auto generated. Granted this is not AI, but enabled by a transpiler from design space to implementation.

Prototype is here: github.com/hofstadter-io/geb

 

Don't mistake coding for programming.

Programming involves talking to somebody, listening to a bold idea, and then producing a product that can do that. That'd be an unbelievable feat for an AI to accomplish. Creating a better design language, or tool, doesn't chagne anything, it just creates another programming language.

Refer to my other article on what a programmer does

 

I agree, but a lot of the code written today is just adapter code: adapting from the database to the business objects, from the business objects to/from the network to/from the GUI to/from XML or JSON, etc. While working on Google's FOAM Framework, we found that we could typically eliminate between 80-98% of the code required to develop systems, with the higher end of that range being more typical. So while we still need programmers, we need fewer of them.

This Video explains how it works.

code of conduct - report abuse