News for hackers. Stuff that matters.
Re:The Rise of Artificial Intelligence and the End of Code by wrong_variable on Tuesday May 17, 2016 @06:40PM (#11718192)
Dogs can be made to learn things - doesn't mean we allow them do surgery.

Whoever wrote this article has negative knowledge about the state of AI.

edit:

Its also slightly insulting that this person thinks that the modern programmer spends all their time writing if/else/then statement.

Re:The Rise of Artificial Intelligence and the End of Code by pedalpete on Tuesday May 17, 2016 @07:13PM (#11718397)
I'm going to take the other side of this argument and suggest that we didn't create the dog and the limitations in the dogs abilities.

I suspect that this will be difficult for the HN community to hear, but we must face the upcoming realities.

Though I think the article may be assigning more abilities to AI than is actually feasible in our lifetimes, let us not forget that most back-end developers are doing basic I/O and data manipulation tasks. Put something into a database, get something out of a database. Front-enders are doing layout, animation, sizing and colouring.

The average modern programmer doesn't spend their time writing if/else/then statements, I believe the average programmer spends their time writing GET/SET/EDIT/DELETE flows.

I believe in the next 10 years, artificial intelligence will be able to model and create these basic systems based on human input. UX and possibly even UI can also be trained. A/B testing can certainly be trained.

Those who think programmers can't be replaced begin to sound like the Luddites who felt the loom could not match the quality of their craft.

Note: I am a full-stack developer, I believe 90% of my day job will be replaced by AI in the coming years. That final 10% often deciding what to do or the best how, will likely be the main task.

Re:The Rise of Artificial Intelligence and the End of Code by tikhonj on Tuesday May 17, 2016 @07:31PM (#11718490)
I did a bit of research in program synthesis, which is probably the closest academic field to this sort of thing (albeit in the realm of programming languages rather than AI/ML). I have two main conclusions:

• Current methods to generate programs fundamentally do not scale. Most practical research is about how to extend small-scale synthesis systems to large-scale problems, rather than synthesizing large programs outright.

• The best way to scale these systems is to make them more interactive. Let the programmer do what's easy for humans and use synthesis for the parts easy to automate. This is another way of saying that program synthesis is less about fully automatic programming and more about (radically) better development tools.

I am confident that we will not have automatic programming systems that can handle non-trivial programs by themselves in the next 10/20 years, barring the sort of paradigm-shifting breakthroughs we can't really predict. Instead, we will have systems that can generate some amount of code and work in tandem with programmers—perhaps through sketching[1], programming by demonstration or just much-improved Intellisense.

The current trajectory is that programming is to become easier, not obsolete. The result will not be fewer programmers but more programmers, largely because people with less expertise will be able to become programmers: think Jevons Paradox[2] for programming.

Programming as a job will change and people will certainly have to adapt, but the job as a whole is not going anywhere.

[1]: https://people.csail.mit.edu/asolar/papers/thesis.pdf

[2]: https://en.wikipedia.org/wiki/Jevons_paradox

Re:The Rise of Artificial Intelligence and the End of Code by Houshalter on Tuesday May 17, 2016 @08:03PM (#11718660)
Current program synthesis isn't that advanced. At least not compared to state of the art AI.

Recently AI has proved it can beat expert humans at all perfect information games. Go has a ridiculously huge search space, but by using neural networks AIs can learn to narrow it down to a manageable size.

Program synthesis is just like a perfect information game. You have a search space, a state, a set of goals, etc. You could theoretically make it into a board game, and have human experts challenge computers at it.

Re:The Rise of Artificial Intelligence and the End of Code by throwawaykeno on Tuesday May 17, 2016 @08:20PM (#11718750)
> You could theoretically make it into a board game

But not actually. Program synthesis is hard even if you have perfect formal requirements. In practice, gathering formal requirements is by far the most difficult task. You're probably better off building a system using modern development practices than trying to collect formal requirements Let alone translating those requirements into code, which is easier than coming up with the requirements but still difficult.

> Recently AI has proved...

FYI, it's not as if the program synthesis folks haven't heard of neural nets... you're giving researchers who actually do this stuff all day surprisingly little credit.

Re:The Rise of Artificial Intelligence and the End of Code by Houshalter on Tuesday May 17, 2016 @09:41PM (#11719133)
I think that getting the formal requirements is in some ways easier than programming. People can describe the things they want the computer to do, like sorting a list so it's all in order. Actually coming up with an algorithm that does that efficiently is much harder, and is where bugs come from.

I mean yes good program synthesis wouldn't replace programmers on it's own. But it would radically change how programming is done and make our lives much easier.

I'm just saying that AI is a quickly advancing field and predictions like "not in 20 years" have been defied months later. Applying deep reinforcement learning to tasks like game playing is relatively novel, and has only really started to succeed in the last 2 years.

Re:The Rise of Artificial Intelligence and the End of Code by tikhonj on Tuesday May 17, 2016 @08:13PM (#11718713)
I think that measuring state spaces is really misleading. (Although we totally did that to aggrandize how good our synthesis system was, at least to ourselves :P. The space of possible programs, even short ones in a small language, quickly gets hilariously large.)

Past a certain point the structure of a space is what matters which dictates how well any given search strategy will perform, and that doesn't readily generalize across domains.

I have not seen anything that would lead me to believe that results like AlphaGo will meaningfully generalize to such an extent. I still think that it would take more than just incremental work to get from where we are now to scalable program synthesis.

Re:The Rise of Artificial Intelligence and the End of Code by Houshalter on Tuesday May 17, 2016 @09:50PM (#11719164)
You are right, but I'm just trying to say that AI is now believed to be able to beat all perfect information games. If you could model program synthesis as a game (regardless how boring/unfun it might be) computers could beat expert humans at it. OR, we have game that humans are still better at, and AI researchers at big companies will spend years attacking it for fame and glory. Either way it's interesting.
Re:The Rise of Artificial Intelligence and the End of Code by crpatino on Tuesday May 17, 2016 @08:04PM (#11718666)
We have been there before, yet we are still here.

The proportion of systems programmers that can writte assembly code consistently on par with the quality of that from a decent compiler (such as Gnu's GCC) is probably less than 1%, and they take orders of magnitude more time to do so. Yet, you do not observe system programmers dying out. They use C (and increasingly, C++, Dart, etc) to build bigger and more complex systems, with more demanding requirements.

Ditto for application developers. We now have this amazing enginees called DBMS, which handle out of the box a bunch of common requirements, and whose reign and management has spawned a new class of job that did not exist 30 years ago: DBAs. Some of those are glorified IT grunts, but many are not! They build (information) systems that are bigger and more complex than ever by translating business use cases into a description that is understandable by the DBMS engine.

I could keep going on and on: web frameworks, game engines, simulation models, etc, etc. The point is that the hard part about this craft is not to know how to make the machine compute some XYZ calculation, it is to understand that computing XYZ is an acceptable way to fullfil a business need within the limits of available resources (in the dimensions of development cost, runtime cost, infrastructure maintenance, etc).

Re:The Rise of Artificial Intelligence and the End of Code by pedalpete on Tuesday May 17, 2016 @11:21PM (#11719481)
Note, I was talking about the 'average modern programmer'. I believe your argument points to a smaller more specialized sub-sections of the field.

At the same time, you say "We have been there before", but we haven't had the quality of AI that we are reaching today, so in many ways we have not 'been here before'. Let's not forget, there was a time when elevator operators thought they were irreplaceable by a machine. Today, you can't imagine having somebody operate an elevator.

A few years ago you had to be a 'web developer' to build a web-page. It was unimaginable that somebody who is barely computer literate would be able to put a website online. Today, you can run an online store without knowing anything about programming.

I suspect DBAs won't have an illustrious future as machines learn how to model data. Yes, they will need a person to train them, and tell them what to do, but I suspect an AI system can look at all the potential modeling options and give a layperson the option to pick one which best suits their needs, or recommend one.

As far as 'magnitude more time' for computers to do the work, I often find this argument interesting with respect to processing power in IoT. In life-threatening situations, performance is very important, but often as long as a persons time isn't being wasted, it doesn't matter if a machine takes twice as long.

Re:The Rise of Artificial Intelligence and the End of Code by orthoganol on Tuesday May 17, 2016 @07:32PM (#11718497)
Replaceable or replaceable by AI?

Already today standard CRUD web development is largely automateable. I already have my own specialized scripts from years of experience, targeting backend, front end, design components, that generate most of what I want with some basic inputs. I imagine most experienced web developers have some internal tooling like this too.

This kind of approach already does replace programmers, and could do so a lot more. But what do you mean by replaceable by AI? How would that work?

Re:The Rise of Artificial Intelligence and the End of Code by learc83 on Tuesday May 17, 2016 @08:24PM (#11718773)
>I imagine most experienced web developers have some internal tooling like this too.

I don't think that's true at all unless you're talking about 3rd party tools like rails scaffolding. What languages / frameworks are you using by the way?

The boilerplate stuff that can be replaced by scripts is maybe 10-15% of my time anyway. The rest of my time is spent at a much higher level either trying to interpret client requests, trying to help the client decide what they want, making high level design decisions, or adding features that require way to much customization to use automated code generators.

This is much different if we're talking about a language like C where a much higher percentage of my time is spent on boilerplate code. However with newer languages and frameworks I think we're reaching diminishing returns for what can be automated by either the language itself or generator scripts/frameworks.

There is a huge productivity difference between using C and raw PHP when writing a CRUD app. There's less of a productivity boost (still huge though) when moving from raw PHP to something like Rails. And there's even less of a jump between Rails and something newer like Phoenix. I expect that the next 10 years will give us even smaller incremental improvements.

Re:The Rise of Artificial Intelligence and the End of Code by pedalpete on Tuesday May 17, 2016 @08:00PM (#11718639)
I hadn't strictly thought this out, but I guess what I'm thinking is that your basic CRUD scripts on steroids. What if it didn't need your domain knowledge to run the scripts? What if the styled output of the scripts was high-quality UI? - Not to shame your scripts, but I'm thinking back to my Rails days and though I could 'generate' everything, I then would have to manually go in and edit the code so that it did what we really wanted.

What if the person requesting whatever function (report, process, notification, etc) could have this system built without a developer?

That make developers replaceable. I'm not suggesting this is happening in the short-term, but as you say yourself, you use scripts for your basic CRUD development. What is stopping those scripts from moving up market to the point where you are not needed.

Front-end devs who used to write HTML and CSS would have said they where always needed because a computer can't make a webpage. But look at SquareSpace, Wix and the like. Again, this isn't every job, but this is a portion of the market which is no longer served by a person, and that will continue.

The new jobs will be in training and building these systems, which I think is historically how industrialization has progressed.

Re:The Rise of Artificial Intelligence and the End of Code by ThomPete on Tuesday May 17, 2016 @07:33PM (#11718502)
I don't think the replacement of programmers is going to come in the form of AI actually writing code in any normal context we consider writing code.

It's more going to be that a lot of the superficial patterns if/then (and quite a lot of scripting) that are being done today will be easily replaced. Not that writing a new kernel or some other advanced job is going to be handled by machines.

In that context I think it's going to go fast and be in our lifetime.

Re:The Rise of Artificial Intelligence and the End of Code by pedalpete on Tuesday May 17, 2016 @07:49PM (#11718582)
Agreed, I don't think the 'average programmer' is writing new kernels or ... advanced job'. The average programmer is working at an SME or Agency, getting systems to run, sales to happen and be tracked.

I'm basing this on the amount of jobs and interviews I've been to where the tasks are normally completely uninteresting from a technical stand-point. I now work at a government science and technology research agency and much of the work here is still quite rote.

Re:The Rise of Artificial Intelligence and the End of Code by byw on Tuesday May 17, 2016 @08:02PM (#11718655)
I used to think this way, but this assumes there's an upper limit to demand. I think as the capability of tools increase, so will user expectations in capabilities and coverage.

Sure, programming will be more about asking the right questions than implementing solutions. We'd think that'll be easy, but most people have no idea what they want in life, and philosophy is still hard.

Re:The Rise of Artificial Intelligence and the End of Code by Aelinsaar on Tuesday May 17, 2016 @08:09PM (#11718693)
It sounds like programmers will be a very different kind of person, with very different skill sets in that reality.
Re:The Rise of Artificial Intelligence and the End of Code by byw on Tuesday May 17, 2016 @08:21PM (#11718756)
The way I see it, "programming" will become an archaic term. It might become a branch of ethics, but for machines rather than people. It'll involve setting intelligent boundaries.
Re:The Rise of Artificial Intelligence and the End of Code by pfisch on Wednesday May 18, 2016 @12:56AM (#11719851)
I mean if you are talking about something like weebly then sure. If you are talking about something like Tony Stark's assistant then you are really talking about replacing almost every occupation. If AI becomes that smart then it will probably take over the world anyway before we even realize it has happened.

The main problem with replacing programming is that programming is constantly evolving. Weebly can do most if not all of web 1.0 and some of web 2.0, but there is still a lot that it can't do. The rapid pace of technology doesn't slow down enough for our automated tooling to catch up. Unless we are talking about basically a sentient AI then I just don't see this really happening unless we are talking about replacing programmers that are barely programmers at all.

Re:The Rise of Artificial Intelligence and the End of Code by thoughtsimple on Tuesday May 17, 2016 @07:37PM (#11718526)
How long is that though? Decades? More? How do you train a neural net to take a vague description of a desired outcome and produce results that fit the requirements? We are no where close to the general AI that would be required.

I certainly believe that classes of automation problems will be done by machine learning but I have a very hard time believing all programming tasks are going to be replaced any time soon.

Re:The Rise of Artificial Intelligence and the End of Code by pedalpete on Tuesday May 17, 2016 @11:25PM (#11719495)
Interesting point about how long it will take to train. It makes me think that the way we look at sprints and fast-iterations today may work in AIs favor.

Build this -> builds -> fix this -> fixes -> change this -> changes.

Essentially, this is a learning model already.

Re:The Rise of Artificial Intelligence and the End of Code by marcosdumay on Tuesday May 17, 2016 @09:08PM (#11718975)
You are ignoring Jevon's paradox.

Automating 90% of the work will only make software cheaper, and more in demand, as we are very far from creating every possibly useful software. Developers pay might even increase because of it.

Automating 100% of it is a completely different thing. But well, that's hard AI definition. Software development is among the last kinds of work that will get automated.

Re:The Rise of Artificial Intelligence and the End of Code by pcarolan on Tuesday May 17, 2016 @06:48PM (#11718253)
Agreed. When Spotify stops putting Coldplay in my Radiohead station, I'll begin to worry.
Re:The Rise of Artificial Intelligence and the End of Code by tryitnow on Tuesday May 17, 2016 @07:31PM (#11718489)
As someone else already pointed out we actually do have robots doing surgery. AIs are not dogs - that's a bad analogy.

Right now development costs per head are sky high. If there's any way to cut that spend, you better believe executives will be all over it. A lot of businesses don't care so much about quality and craftsmanship - as long as their customers are stuck with them they're perfectly willing to ship the most minimal product they can get away with.

Re:The Rise of Artificial Intelligence and the End of Code by eellpp on Tuesday May 17, 2016 @08:25PM (#11718776)
> Right now development costs per head are sky high. If there's any way to cut that spend, you better believe executives will be all over it.

There is already a big trend of automation albeit on the IT side and not on development. Where it used to take a separate IT team and developers and DB admins etc there is growing field of devOps with automation. Companies, especially startups are biting into this trend and vendors, especially Cloud vendors are spearheading this movement.

If there is glare of possibility of automating the development, these vendors and companies would have been all over it. This behaviour is not seen, means that this a possibility that exists in distant future.

Re:The Rise of Artificial Intelligence and the End of Code by astazangasta on Tuesday May 17, 2016 @08:13PM (#11718710)
We have humans using a very fancy robot (DaVinci) to do surgery. So far no AI has been given the knife.
Re:The Rise of Artificial Intelligence and the End of Code by nxzero on Tuesday May 17, 2016 @07:03PM (#11718347)
>> "Dogs can be made to learn things - doesn't mean we allow them do surgery."

(Years from now) ..."humans can learn to be surgeons, but that doesn't mean they should be allowed to do surgery."

For example:

http://spectrum.ieee.org/the-human-os/robotics/medical-robot...