Language Wars and Cars
… or why Joel Spolsky is right
The issue of which language to choose is about looking at the externalities.
If a new car company appeared making high quality cars in low volumes, something that was better built than a Lexus, why wouldn’t you buy it?
For starters, Lexus are likely to be around for a long time. Is your new company going to?
And then, what about dealerships? Lexus have one in every main town. If the new company supply from the factory and you’re 500 miles away, you’re stuck. And don’t expect a local car guy to go fixing it. Are Haynes going to write a manual about the car? Are JD Power going to be doing reviews of whether it’s keeping up with build quality.
Languages are like this. C# and Python are my preferred languages, but I won’t claim that either are technically the best languages. OCaml may be technically better. But right now at least, it’s the small, unknown car company. There is 1 OCaml book on Computer Manuals Bookshop vs 46 for Python. Python’s got the backing of Nokia, Microsoft and Google, which means it’s not going anywhere fast. It means that there are people out there using it in anger. No project manager with more than 2 brain cells is going to use a language without a reasonable developer base.
One day, languages like OCaml and Ruby may be as big as Python or C# and when they are, I’ll consider using them. Just like I’ll consider switching from Toyota when that tiny car company makes cars in sufficient volume.
Sorry, but I disagree with your point of view wholeheartedly. Here’s my beef with your position.
By that logic no one would buy a Panoz Esperante. What a shame. By playing it safe they’d miss out on a ride of a lifetime. I don’t like to let Google and Microsoft run my life or make technical decisions for me. I like to judge the worthiness of my tools on technical merit - not Google’s evaluation of their technical merit. If I can use a better tool today and my competitors are too slow to adapt then the advantage goes to me. The problem of the community disapperaing is nonsense. The Ruby community has been around for 10 years. How much time must pass before you admit it’s not going anywhere? Better yet, even if it did you could still use the code and modify it as you see fit - without anyone’s permission. With Microsoft - if they deprecate your tools tough luck. Just ask the VB6 guys to tell you a little story. Lastly, I think Guido would laugh if you told him you thought Python was acceptable because Microsoft and Google gave it their blessing.
Christian,
I understand where you are coming from, and technical considerations are of course, very important. But the "soft" stuff around it that I’m referring to should also be considered.
Just because it’s been around for a while doesn’t mean it’s going to go big. COBOL and RPG were around for decades, but hardly anyone does any new work in them, and there’s very little investment in tools for them to work in the ways that people want.
Ruby’s been around for 10 years? LISP’s been around for over 40, but almost no-one uses it commercially.
Here’s some numbers: There are 34 development jobs on Jobserve with Ruby in the title. Compare that with 450+ in PHP, 4000+ in Java and 2000+ in C#. That doesn’t tell me that there’s a large community of professional developers using it, so why would I, as a project manager want to choose Ruby? How easy is it going to be for me to get someone to come and work for me who can support my Ruby app once it’s built? When a new protocol comes on the scene, how quickly will it get implemented in Ruby?
Ruby/Rails may be the next big thing and take over the world. What if it’s not? What if it fizzles out? Even if Java and C# lose some of their popularity, 5 years from now, there’s still going to be a considerable number of experienced developers who know how to support those systems.