36 comments

[ 3.9 ms ] story [ 83.3 ms ] thread
One day, if the programmers do their job well, nobody will be a programmer. The system will either be so robust and self-sustaining it requires no humans, or it will program itself.
Yeah, I guess I'm really thinking of a pre-singularity world. :)
(comment deleted)
You mean like we're all writers, instead of having to rely on a few professional scribes? I shudder to think of the programming equivalent of the blogosphere.
Why? The same people who "lyKe can0t bELIEVe jim wud do dat to me" aren't going to be writing drivers for x-ray machines - they'll be giving "good-enough" instructions to machines that'll be smart enough to understand them.

People's dumb blogs get the job done for those people, and the people who choose to read them.

That's the other half of the blogosphere. It makes everyone an editor. From everything I've heard, the average editor's slush pile is even worse than the average fanfiction.
And we'll all live like Eloi until the Morlocks come out to eat us. /nah
We are the Morlocks.
+1 The Eloi would be more analogous to the people that cannot program and simply use the devices, and rely on them. We're the ones that gross in the "dirty" details and maintain the clockwork of the world.
Only in the same sense putting on a bandaid or taking some aspirin makes be doctor. Using specialty items created by others in rather uncreative ways according to well known rules.
Only in the same sense putting on a bandaid or taking some aspirin makes be doctor. Using specialty items created by others in rather uncreative ways according to well known rules.
i don't buy it.

haven't people been saying that since the 70s? even SQL was designed with the intent that accountants could use it. but programming is really hard, especially if you want something that's done well.

i've also yet to see any general purpose robots that can do anything useful. i still think it's a long way out, if at all possible. there are tons of considerations that go into just about anything and if there's no magic AI there's really no way to program every useful (nevermind adaptable) constraint into everything.

Yeah they've been saying it since the 70's:

"Everyone needs computer programming. It will be the way we speak to the servants."

-John McCarthy, creator of Lisp and coiner of the term Artifical Intelligence.

But I don't think the age of the claim is in itself a reason to not believe it.

The more you know about programming, the more you can do with general purpose devices when they arise, and more importantly, the more devices you can make into general purpose devices.

A simple recent example is Kinect. It isn't a general purpose device. It was a gaming doohickey. Thanks to programming, you can turn it into a (more!) general purpose device.

Hah, that's a great quote. :) Pithy and to the point.

One some level, we've already reached that point - though we're not programming directly to communicate with McCarthy's servants we are already on that path.

I'm not sure "programming is hard" is the right counterargument - I personally find farming hard, and I'm sure most Westerners do too - but for millennia it's all people did to survive.

Also, have you seen what non-programmers can do with Excel? I'm often blown away by the technical skill demonstrated by people who don't see themselves as technical.

On robots, I suspect general purpose robots are not so popular for the same reasons that the industrial revolution didn't happen in Roman times - human labor is too inexpensive. Factory labor in China and other developing nations is much too adaptable and inexpensive for robots to be worthwhile. But that will change.

I agree with you that it's a pretty long way out!

It's definitely going to be sooner than later, though.
There's different kinds of hard.

Pushing a car three miles back to your house is hard. So is beating Kasparov at chess. But clearly they are two very different kinds of endeavor, and I forget how to unambiguously refer to the two types of effort.

And I don't just mean "mental" vs "physical" - I'd place learning a martial art closer to beating Kasparov than pushing a car home.

Sure - and from that perspective farming was a probably not a great example. But surely more people could be programmers than currently are.

Pushing a car is physically exhausting but doesn't require much training and practice. Programming requires training and practice, but I don't know that it requires more training and practice than, say, becoming a lawyer, doctor, martial artist, or other engineer. And the opportunities for practice come much earlier in programming training than lawyer or doctor training!

Though now that I think about it, farming involved more than just physically exhausting work - knowing what to plant, when, how to handle the soil, etc. - those all seem "hard" to me in a "training and practice" sense.

Yes, I would say anyone who thinks that farming is simple grunt labor has never seriously tried to grow food to feed any number of people.

Farming of course involves physically exhausting work, and yes, that's the easy part (at least from an economic standpoint.)

People can't even give unambiguous driving directions to other rational human beings, and we expect them to be able to instruct computers on what to do.

("Take a right at where the barn used to be", "Go until you see the house with a big tree in front of it, you'll know what I mean, it's pretty big", "Take a left at the dog")

The best example I ever heard of that was a friend of mine giving instructions on how to get to his OWN house, where he'd lived for at least 5 years. He didn't know the names of the streets around his house, and just told us to turn right after the "lighthouse mailbox".

For what it's worth, whenever I'm in that area, I always notice the lighthouse mailbox now.

This made me laugh out loud in the middle of a meeting (thanks), but it also raises a great point. In order to truly make programming accessible to everyone, I think you'd either need to train everyone to think like programmers (shudder), or you would need AI smart enough to decipher pretty ambiguous and logically incomplete code.
Yeah but programmers get up-close practice. If people gave instructions to people and got to 'debug' the results and did it over and over, they'd certainly get better at it. Not that everyone is well-cut-out to program (by my readings on theze internets), I'm just pointing out the weakness in your analogy.
I buy it.

I don't think we'll all be sitting down in front of a C compiler, but I think a lot of people will spend their days configuring software to do things that it is not pre-programmed to do, using logic that is in line with the programmer mindset.

I like to look to agriculture, because computers are becoming quite prevalent in the industry and is a good indication of where the technology is headed in all industries that have not been traditionally computer dominated. The modern tractors are doing a lot of automation that is programmed by the farmer, depending on their own requirements. Like: "When the tractor gets to this position in the field, raise the implement. Lower it when it gets to _this_ position." That is programming.

I do agree we are a long way off from having general purpose robots, but we already do have robots everywhere we look. These agricultural tractors I speak of are robots that are being programmed, not operated, by farmers. That is just one of many examples.

The "hardness" of programming is not a constant.

Over time, interfaces become more abstracted. Who could have imagined Ruby on Rails in 1980? jQuery in 1995? Further abstraction opens programming to a wider audience. Programming will become increasingly diverse as programmers cover an increasingly wide spectrum of technical expertise.

I guess we've all been programmers since we got our first VCR. But I think there is a real qualitative difference these days between someone who can write a program and someone who is actually quite good at doing so.

We commonly talk of a 10x difference in ability between programmers (and I won't go into the truth of that here) but it's not unreasonable to expect that the difference between the best and the worst programmers will widen by another order of magnitude in the future.

Really the argument is semantics. Technology (and software programmed by genuinely skilled programmers) is making it easier and easier for people who would otherwise be poor programmers to achieve a result - even if it is a strange sort of chimera cookie-cutter application that only sort of meets their needs. (This is what Microsoft does with software for the enterprise.)

We'll all become programmers in the sense that we're all now omniscient due to the introduction of mobile phones with web browsers built in and the availability of search results on tap through said web browsers.

No, we won't.

Maybe one day we'll all be unemployed and bored out of our minds. But we certainly won't all be programmers.

Why equate unemployment with boredom?
(comment deleted)
First, you wouldn't get all programmers. You'd still have customer service. You'd probably also have executives, teachers, scientists, mechanics to work on robots, doctors, cooks, and then your smattering of people mixed in to help with robotic and computerized tasks.

Second, many people are not skilled enough in math and logic to program well. If programming became as pervasive as math education, lots of people would forget it after high school or never really learn it. If it became as pervasive as writing (as some commenters mention), then it would exist in a similar state: a collection of highly talented authors and a mass of untalented writers (with some in between). So you'd have to have newer programming environments that let unskilled people get some useful tasks done reasonably well. We have a lot of work to do before programming environments get there, but some people can make interesting things with mangled Excel spreadsheets or spaghetti code in PHP or copy-paste-modify JavaScript hacks.

Third, also as some people mention, labor is cheap in certain parts of the world, so robots aren't economical. Contrary to what some claim, I don't think that will go away. There will always be some portion of humanity that is not sufficiently educated to be programmers. This could be due to socio-economic circumstances, or it could simply be because they don't want to learn it. Some people go through high school refusing to learn, others drop out. How do you fix that? If they can't get customer service jobs, then they have to sell their manual labor cheap enough to compete with robots. You'd only replace all that if you eliminate poverty on a global level and have excellent education globally too. Then there won't be cheaper labor, so those jobs will move to robots, and then there won't be enough people wanting to hire humans for labor and so finally that market would cease to exist. I'm not counting on that happening, not even in a hundred years and possibly not ever. With a concerted effort we might have a chance at a utopian-like society world-wide in a couple hundred years, but that's plenty of time for wars, natural disasters, apathy, tyrants, terrorists, or any number of things to mess it up.

Conclusion: Sure let's make programming environments more accessible to less-nerdy people, and let's improve education about programming, since these things will improve lives. But we won't end up with all programmers.

I think it'll become important, and may be a skill in your tools-set. How can a programmer build a medical scans interpreter without being a doctor? He can't. He needs Medical training.

Automation will drive more creativity, but not necessarily more programming jobs. The need for more automation jobs will drive needs for more programming skills. I think we are already there, we call it "technology". It's anything that makes use of the digital world to get improved results.

Programming is quickly becoming the new form of literacy. I think eventually everyone will specialize but programming is going to be at the root of everything whether it's biology, chemistry, physics, or music. I think there will be many more interdisciplinary majors and professions.
(comment deleted)
This is probably the same as someone saying a hundred and fifty years ago "One day we will all be mathematicians." which eventually became true from the point of view of someone who's idea of higher math was calculus. But mathematics progressed...programming will progress too, I have no doubt.
This post is rife with bad assumptions. Here are some big ones:

1. Dexterity is NOT the "last mile" gap to having robots in minimum wage jobs. I don't care if the robot can flip a burger, can it recognize a grease fire (and put it out, and clean up afterwards?) Can it recognize a moldy bun or if the special sauce is spoiled? While low wage retail jobs don't require years of specialized training, they do take advantage of a lot of innate human skills. Most of the mechanical aspects of these jobs are already automated.

2. Good software is not created by people sitting in cube farms programming. In projects of any size it's more about communication among developers and between developers and other business functions than writing code in isolation.

3. Not everyone can be a programmer, and most that could be won't want to (and I predict won't have to). I'm sure you can invent trivial examples that anyone can do, but then you're not saying much. There are large classes of people that can't program a VCR or do long division, let a alone construct a slightly involved program. As someone who's been involved in research that attempts to teach average people how to "program", I feel confident that we will never see a large portion of people become programmers.

Thanks for your thoughts. Just to respond a bit:

1: One human is enough to put out grease fires, clean up, and find moldy buns. Most fast food joints have multiple humans, and dextrous robots would change that.

2 & 3: I don't think I made either assumption. Specifically, I didn't say we'll all be good programmers or produce good software. (Even today, not all programmers are good or produce good software.) I suspect what we think of as "programming" will change significantly, and with it, the number of people who program.