Hacker News new | past | comments | ask | show | jobs | submit login
Machine Learning for Programming – Peter Norvig (infoq.com)
187 points by gsg on Mar 7, 2015 | hide | past | web | favorite | 22 comments

Can someone kindly transcribe this video for hearing impaired ?

Thanks for posting - this is something I'm very interested in and will be checking the slides / mp3 out soon.

I'm rather concerned that engineers will be replaced by AI in the future. I wish we had some sort of developers union.

Programmers will be literally the last profession to be replaced by AI. If computers ever exceed human programming capability, we're essentially at the singularity (recursive self-improvement) and have bigger things to worry about.

Of course that doesn't mean some kinds of gruntwork programming can't be automated. Lots of CS research over the last half-century has focused on exactly this: how to eliminate repetitive drudgery and provide the right abstractions to enable human programmers to concentrate on what's interesting and build bigger, more capable programs. In some sense a high-level language compiler is an "AI" that programs for you: you give it a compact specification of what the machine should do and it "writes a program" (generates machine code) to do it.

The ability to machine-learn some functional components of a program doesn't replace human programmers, any more than compilers do. It just enables programmers to spend their time and energy in other ways and levels-up the kind of programs we're able to produce.

I think nurturers and entertainers will be replaced last, because it will take serious social changes to get people to prefer being entertained or cared for by a robot. There's no social change needed to replace programmers.

A few years ago teachers were selfless nurturers doing an essential job for low pay. Now they're lazy overcompensated government workers and there's a dozen startups trying to replace them with computers.

Pixar disagrees that people won't accept computer-generated entertainment.

I agree that there's zero (maybe even negative) social capital for programmers but as teachers have found out, one well-funded PR campaign can undo even the best social capital.

> A few years ago teachers were selfless nurturers doing an essential job for low pay. Now they're lazy overcompensated government workers

The same faction -- and in many case the same individuals -- that portray teachers as lazy overcompensated government workers today have been doing so for decades. Conversely, the same people that have seen them as selfless nurturers have been doing that for just as long. Nothing has changed in the last "few years" in that regard.

I tend to both agree and disagree with this assessment.

Highly skilled programmers, as well as programmers whose jobs are dominated by both design and implementation, will probably be one of the last professions to be replaced by AI.

But there are a lot of programmers who could be replaced by automation (although various constrained, "domain-specific" forms of program synthesis working on concert with ever-improving development environments, libraries and frameworks are probably more likely culprits.

edit: In other words, the general problem of replacing programmers is AI-complete, but not ever programming task/job requires full generality.

This is definitely an argument against certain cookie-cutter approaches to programming ("learn Rails in 15 days!" etc.). Even leaving AI out of the picture, a skillset that's limited to a particular language or framework is going to become obsolete much more quickly than someone who understands foundational CS concepts, approaches programming from the point of view of general problem solving, and makes an effort to keep up to date with new advances. It seems plausible that programming as a discipline will be one of the last occupations at which humans are dominant, but "final-stage" programming will probably (hopefully!) look very different from the programming we do now, just as current practice differs from what was done in the 70s or 80s.

I would think it would rather be the last white collar job to be replaced.

I can imagine careers like hair dressers, artists, nurses, etc. lasting throughout the singularity even if computers could technically do these jobs as well.

The point is not that computers will do the job "as well". A full AI available means that computers will do the job better, and not only slightly better either, but much better.

Imagine having the best hair dresser | artist | nurse | etc of the world completely focused on you, 24 hours a day, for everybody.

Until the singularity, it would be difficult for AI implementations of those to pass the turing test, which might be desired by potential users who want their hair dressed over the course of several hours in addition to having someone to talk to.

You could just Skype your friend while having a robot cut your hair.

You're asking your friend for three hours to entertain you while you have a haircut. It can happen once or twice, but every time whenever you go to the hairdressers for a treatment? You'd have to reciprocate and entertain them for a few hours when it's their turn, every three weeks. Imagine that. It would be better if they could talk to their hairdresser instead, and arrange to hangout afterwards.

Whatever automates the job of programmers is The Singularity.

A developers union is a great way to get replaced by robots even faster. Look at what the UAW did to the auto industry. Pushed it towards automation big time.

A union might accelerate the mechanization.

Not in your lifetime, or your kids lifetime! Relax, keep calm and code on!

Have you seen this project yet? I only thought of this link while reading the last part of your sentence (the AI writes a program with very similar output).

Self-Programming Artificial Intelligence Learns to Use Functions http://www.primaryobjects.com/CMS/Article163

At least to me, that AI is actually incredibly simple. All its doing is mutating a random code snippet through a genetic algorithm. If you read the comments, the author explains that once it creates a function that it needs to complete the target program (e.g. addition func for its multiplication), it adds the function string to the list of possible mutations to add to the code snippet. It's actually a relatively simple design and I would go so far as to say genetic algorithms are probably not the way that AIs will write code in the future. Its too random and for any significant program, it would take much too many generations and the generations would be increasingly harder to fitness test as you added more and more possible functions. Still a really interesting article though. Thanks for the link.

I believe we're on the brink of a bigger change than the industrial revolution. Think Uber + self driving cars, not just for taxi's but more less every industry and sector.

While for many involved in technology, this is an exciting time. You have to ask, what will happen to most people's jobs?

What would that union do? Use violence or the law to force employers not to automate programming? That would be a net negative for society. One thing I like about nerd culture, is that the kind of self deception needed to convince oneself that a union is good for everyone, is absent from the nerd community. Amongst socially better adjusted people, the in group instinct is stronger, and even smart people convince themselves the the supply of labor in their industry has to be restricted, (for the good of all, of course).

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact