In Language Wars, Joel Spolsky advises development managers to heed the masses and build their next Web application using an industry proven programming language with which his or her team is most familiar.
I find two ironies in Joel’s argument. The most contradictory and amusing irony is that Joel does not follow his own advice: he developed FogBugz, his company’s flagship product, using Wasabi, a language that one of his developers invented in-house. Wikipedia knows the Wasabi GUI application framework in Winamp, but not the programming language. If Wikipedia has never heard of Wasabi, would you expect any programmers to know about the language?
The second and more subtle irony in Joel’s article is that despite calling the programming language debate a waste of time, Joel goes ahead anyway and adds to the debate! By denouncing the debate in advance, Joel vainly tries to shield himself from the criticism that he is wasting his readers’ time. However, if Joel truly felt that the programming language issue was a waste of time, after saying so, he would written no more. Instead, he fires the language war torpedoes.
So is the programming language debate just a waste of time? No way. After correctly specifying software requirements, making the right choice of programming language(s) in a project can lead to significant gains in productivity. This gain may be due to the strengths of the language itself, but more often, it is a result of the runtime environment, frameworks, toolset, mindset, support, and community that accompanies a language. So, discussing the merits of existing programming languages will lead to the development of new languages with unique features that more effectively help programmers solve new or exisitng problems.
Joel should have advised his friend to evaluate several languages and environments, compare them using custom criteria, and choose the one that best matched those criteria. Sadly, I find that most development managers, like Joel, are quick to dismiss alternative programming languages in favour of the market dominant or most popular programming environment. Often, this is not because the language is better, but because those managers have no experience or knowledge of any other programming language. We see IT managers exhibit this same behaviour when they choose the familiar and market dominant Windows to run on their computers while rarely even considering the alternatives. The solution? Teach IT students how to use many programming languages and operating systems. That way, when they become managers, they’ll be better equipped to choose the one that best suits a given project or task.
Further reading: