This is valid in a sense, but it is also important to remember that a lot of software was built with emacs and vi or even more ancient editors.
"If you're serious about software, concentrate on writing something that is reliable as hell and easy to maintain and install. "
That is terrible advice, not so much the sentence itself as the "stay away from powerful languages" spin you give it, as in
"Messing around with unstable languages is a lot of fun. It's educational too. But don't build your business around it. "
There are profitable companies using Haskell and OCaml (and Lisp and J and .. )!
You make a decent point then spoil it by stretching it too far, to the point of farce.
One situation in which you should definitely not use advanced languages is when you know you have (or intend to hire) very dumb "programmers" who won't be able to warp their heads around the "exotic" language, which probably doesn't have a "Learn in 21 days" book to go with it.
Many companies doing outsourced software do hire these "middle of the curve" programmers and will do well to stay with "stable" languages. If you have a bunch of bright programmers doing something innovative, it is a completely different situation.
By your logic PG wouldn't have built Viaweb in Lisp, FlightCaster wouldn't be using Clojure and so on.
Taking just one example, Clojure is evolving very fast, which for you would be "unstable". I know at least 4 startups using Clojure, one using Scala and no one's yet complained of "instability" and lack of IDE support destroying their productivity. There are tradeoffs (IDE maturity being one, if you are an I-can't-program-productively-without-my-IDE kind of guy ) with any language selection, but the consequences aren't as dire as you make it out to be.
As I said, this is bad (or rather very one sided, which amounts to the same thing in practice) advice. There is an excellent rationale for building certain types of applications in powerful languages, what PG calls LFSP - languages for smart people.
PG and other people have made this argument more eloquently than I can, so I'll refrain.
"Python/Django and Ruby/Rails are only barely stable enough to work with."
heh heh! Sure, What do you use then? COBOL? Should be "stable" enough for you I guess.
Somebody should tell all the stupid programmers using RoR or Django to run companies that they are being foolish, using "barely stable" software. ;-)
Go easy on the sarcasm and ridicule; it doesn't help you make your case.
PG built Viaweb in Lisp because there was no Ruby, Python or Perl back then. When there are no libraries to chose from, you pick a language that lets you write libraries quickly. Today we boldly go where many have gone before, and that means that we can benefit from technologies others have built. Standing on the shoulders of giants, and all that.
I'm arguing that if you want to run a business you should be pragmatic about the language you pick.
The second half of your post seems to consist of mere hyperbole and strawmen (COBOL? Right). If there is excellent rationale for picking an esoteric language, I'd love to hear it.
"PG built Viaweb in Lisp because there was no Ruby, Python or Perl back then."
First, you were the one suggesting we don't use Ruby or Python, in 2009 in the name of "stability". and now you are saying PG would have used these "unstable" languages in 1995 "if they existed" which brings me to
"because there was no Ruby, Python or Perl back then."
You are wrong.
ViaWeb was started in 1995
Perl was available (and being used to build websites) in 1995. Python was available too. Do your research before making ridiculous claims!
As PG says in one of his essays (link below)
"During the years we worked on Viaweb I read a lot of job descriptions. A new competitor seemed to emerge out of the woodwork every month or so. The first thing I would do, after checking to see if they had a live online demo, was look at their job listings. After a couple years of this I could tell which companies to worry about and which not to. The more of an IT flavor the job descriptions had, the less dangerous the company was. The safest kind were the ones that wanted Oracle experience. You never had to worry about those. You were also safe if they said they wanted C++ or Java developers. If they wanted Perl or Python programmers, that would be a bit frightening-- that's starting to sound like a company where the technical side, at least, is run by real hackers."
;-)
You go on to say,
"If there is excellent rationale for picking an esoteric language, I'd love to hear it."
"In fact, choosing a more powerful language probably decreases the size of the team you need, because (a) if you use a more powerful language you probably won't need as many hackers, and (b) hackers who work in more advanced languages are likely to be smarter."
He (and others) have written a lot about this. Again, do your research. You may or may not agree with the rationale he puts forward, but you undermine your own argument when you make up things to strengthen it (like perl not existing in 1995).
As a test app for his programming language, of course. Not because it's the best tool for the job. He essentially built an entire language for this website -- that won't give you a highscore in the productivity hall of fame :)
And yet, even with Python and Ruby well established, he still felt the desire to build his own language. And the language he chose to build was Lisp-like rathar than Python- or Ruby-like.
This is valid in a sense, but it is also important to remember that a lot of software was built with emacs and vi or even more ancient editors.
"If you're serious about software, concentrate on writing something that is reliable as hell and easy to maintain and install. "
That is terrible advice, not so much the sentence itself as the "stay away from powerful languages" spin you give it, as in
"Messing around with unstable languages is a lot of fun. It's educational too. But don't build your business around it. "
There are profitable companies using Haskell and OCaml (and Lisp and J and .. )!
You make a decent point then spoil it by stretching it too far, to the point of farce.
One situation in which you should definitely not use advanced languages is when you know you have (or intend to hire) very dumb "programmers" who won't be able to warp their heads around the "exotic" language, which probably doesn't have a "Learn in 21 days" book to go with it.
Many companies doing outsourced software do hire these "middle of the curve" programmers and will do well to stay with "stable" languages. If you have a bunch of bright programmers doing something innovative, it is a completely different situation.
By your logic PG wouldn't have built Viaweb in Lisp, FlightCaster wouldn't be using Clojure and so on.
Taking just one example, Clojure is evolving very fast, which for you would be "unstable". I know at least 4 startups using Clojure, one using Scala and no one's yet complained of "instability" and lack of IDE support destroying their productivity. There are tradeoffs (IDE maturity being one, if you are an I-can't-program-productively-without-my-IDE kind of guy ) with any language selection, but the consequences aren't as dire as you make it out to be.
As I said, this is bad (or rather very one sided, which amounts to the same thing in practice) advice. There is an excellent rationale for building certain types of applications in powerful languages, what PG calls LFSP - languages for smart people.
PG and other people have made this argument more eloquently than I can, so I'll refrain.
"Python/Django and Ruby/Rails are only barely stable enough to work with."
heh heh! Sure, What do you use then? COBOL? Should be "stable" enough for you I guess.
Somebody should tell all the stupid programmers using RoR or Django to run companies that they are being foolish, using "barely stable" software. ;-)