Saturday, June 17. 2006Comparing languagesReg Braithwaite links to this excellent article by John Gruber at Daring Fireball. The whole article is interesting but I'm going to just talk about one analogy that is used near the beginning.
Most people, I suspect, can tell the difference between a $500 bicycle and a $1000 bicycle — most don’t think the differences are worth the extra money, but they can perceive the differences (lighter-weight frames, visibly superior components, etc.). I doubt, though, that most non-expert-cyclists are able to distinguish between, say, a $1,000 bike and a $5,000 bike. This holds true for many realms; it’s generally pretty easy for most people to perceive the difference between the mediocre and the good, but it often requires expertise or finely-honed sensibility to perceive the difference between the good and the great. Furthermore, in some cases, most people generally prefer the good to the great. A high-end racing bicycle is a terrible bike for casual transportation around town — the seats are uncomfortable and the pedals require special footwear. Cameras are another good example. Most recreational photographers really do just want to point and shoot; they don’t buy point-and-shoot cameras just because they’re cheaper than SLRs, they buy them because they’re actually what they want. I love this analogy as it is so applicable to programming languages. The majority of programmers fall into the non-expert category. They can see the differences between some of the less powerful languages like Visual Basic or Java™. They do not, however, understand how much more powerful some languages are. You have to have a deeper understanding of languages to be able to compare them effectively. If you don't understand closures or continuations, for example, then you won't understand why languages that support them are more powerful than languages that don't. If you don't have a good grasp on the idea of self modifying code then you have no hope of understanding why lisp macros are so incredibly powerful. Someone who only knows languages like Java™ or Visual Basic or C#, will not be able to appreciate why Smalltalk (or Ruby, or Lisp, or ...) is a more powerful language than what they already know. As with the bike analogy, the more powerful languages really aren't for everyone. Just as most people will have their needs met by a cheaper bike, most programmers will have their needs met by a less powerful language. Visual Basic really is good enough for a large number of programmers. Java™ really is good enough for many others. The real experts, however, can take advantage of a more powerful language to do really astounding things. |
Excerpt: This is a somewhat in depth response to a post made by Mike Bowler here. I’ll conclude that no one programming language is ‘better’, which is generally common knowledge except for Mr. Bowler, apparently, but also that such evangelism ...
Tracked: Jun 18, 10:30