“I think [making computer languages easier for average people] would be misguided. The idea of programming as a semiskilled task, practiced by people with a few months’ training, is dangerous. We wouldn’t tolerate plumbers or accountants that poorly educated. We don’t have as an aim that architecture (of buildings) and engineering (of bridges and trains) should become more accessible to people with progressively less training. Indeed, one serious problem is that currently, too many software developers are undereducated and undertrained.” – Bjarne Stroustrup
Yes, programming is a skilled trade, or even an art. If I see one more line of code written for a commercial grade application written by someone with no experience I just might crack. And it’s not just experience. It’s the will to do something. Elegant. Efficient.  Beautiful code.
Related posts:
#1 by Marcos Dione on January 16, 2007 - 9:25 am
commercial grade software really needs educated and, more importantly, worn-out-in-the-field developers, specially those who use a well tested library instead of reinventing the weel.
but then, there are lots of programs and hacks that can start as a poorly designed or implemented software done by your next door plumber without halting the world for a day or making other developers run around screaming trying to get what they just seen out of their heads. remember: con kolivas is an anaesthesiologist [http://kerneltrap.org/node/465].
I think that sometimes bjarne is just an egocentric an elitistic guy.
#2 by Carlos on January 16, 2007 - 2:23 pm
Oh so elitist…
I think programming should be made as simple as possible:
+ This would make it easier on the programmers and there would be less bugs, even in software made by the most gifted and experienced hackers.
+ It would lower the barrier to entry. More people would get into software development and there would be more brilliant software developers (as well as more mediocre ones, but that’s inevitable).
+ For Free Software, it would mean that more people could develop more quality software.
Programming isn’t unlike other professions where you have bad, average, good and the really exceptional and brilliant professionals. You want to develop high grade software? Hire top developers (and pay the premium). You want to develop run of the mill non-critical boring stuff? Hire a few monkeys and pay them peanuts.
If we have monkeys trying to develop high grade software, that’s management’s fault. Don’t blame development tools and methodologies. Besides, if we had better software development tools, the quality of the code produced by the monkeys would go up.
We would all win. This is not a zero sum game. I don’t understand the elitist bullshit you’re talking about, which only serves to create scarcity in the developer market and drive prices/salaries up.
#3 by jg on January 16, 2007 - 7:14 pm
I agree that it’s awful to see an undereducated programmer writing software professionaly.
But why should there be no programming language aimed at the undereducated ? all my gamers friends were playing with Basic and Pascal in the good old days and they were enjoying it, without thinking of doing it for money. Nowadays, gamers don’t even know what “programming” is. I think a successor to Basic or Pascal, more modern, with the same goals should be a great thing for computer users.
Scripting a little toy app isn’t a worse thing to do on your spare time than watching a film. It’s something many people i know like to do just for the fun of it.
Richard Stallman liked the idea of scripting the big apps like emacs, because it empowers it’s users.
http://www.gnu.org/gnu/rms-lisp.html
“The editor itself was written entirely in Lisp. Multics Emacs proved to be a great success — programming new editing commands was so convenient that even the secretaries in his office started learning how to use it. They used a manual someone had written which showed how to extend Emacs, but didn’t say it was a programming. So the secretaries, who believed they couldn’t do programming, weren’t scared off. They read the manual, discovered they could do useful things and they learned to program.
So Bernie saw that an application — a program that does something useful for you — which has Lisp inside it and which you could extend by rewriting the Lisp programs, is actually a very good way for people to learn programming. It gives them a chance to write small programs that are useful for them, which in most arenas you can’t possibly do. They can get encouragement for their own practical use — at the stage where it’s the hardest — where they don’t believe they can program, until they get to the point where they are programmers.”
You and Bjarne Stroustrup are so narrow minded. But it’s not surprising that Bjarne is narrow minded, he always tought C++ is the “most powerful” language of the world and he didn’t realize functional languages like Haskell, Lisp and Ocaml are much more productive and much more useful for the people who got a mathematical background.
#4 by mindwarp on January 16, 2007 - 7:20 pm
I think you guys read a bit more into this than needed. I support anyone who wants to code, to code. What I don’t support is very large companies running critical infrastructure on unmaintainable spaghetti code.
Coding on certain levels takes experience and talent, not just “cowboy” coding.
#5 by Steve Riley on January 20, 2007 - 5:52 am
Tools need to be useful to those who use them. Right now there are a huge number of programmers in the market who benefit from any constraints that keep them from blowing their own legs off. No amount of wishful thinking will keep an activity with such a low cost of entry out of the hands of newcomers.
I still love C++ and use it a lot. However, I think the goals of “cleaner” languages are good ones. They keep new programmers out of trouble and on the right path. More expressive languages with subtle nuances have their own place with more experienced programmers. It seems like Java and C# are moving in the right direction to balance things out. Generics, non-null references, operator overloading…. all of these things are valuable enough to override their complexity to the newcomer.