Happy Programmer's Day!
The 256th day of the year is Programmer's Day. Have a good one.
Yesterday, Joel Spolsky posted a continuing defense of his anti-Ruby rant, Language Wars. This new bit of linguistic anti-advocacy is called Ruby Performance Revisited. My initial knee-jerk reactions follow:
More about "outsourcing" your performance-intensive functionality can be found at David Heinemeier Hansson's Outsourcing the performance-intensive functions, which I stumbled across after composing the above list of reactions to Joel's commentary. DHH, in case you are not aware, is the creator of Rails (as well as being a new TLA).
Today, whilst discussing what title I was going to give this entry, Sterling offered the following observation:
You know that intense feeling you get when you eat too much wasabi? Someone I once knew called that brain damage.Considering all the mental flailing about that has been going on over the subject of Joel Spolsky's in-house development language Wasabi, that seems strangely appropriate.
I have been watching this whole Joel Spolsky Language Wars fiasco unfold since Day One. I have been a part of the discussion in mashup communities like reddit, mailing lists (such as ruby-talk, bidirectionally gatewayed with comp.lang.ruby), and weblogs. I have seen, and tended to agree with, many of the criticisms of Joel's commentary. Here, I enumerate a few of the more obvious examples:
There are people who have complained at length about these shortcomings and others. Damien Katz wrote Has Joel Spolsky Jumped the Shark? (also linked above). Jeff Atwood wrote Has Joel Spolsky Jumped the Shark? (yes, the same title, right down to the capitalization, but no, not the same essay). Oddly, though the biggest problem with the Language Wars essay is the inherent contradictions and bizarre daycoder, pointy-haired boss tone of Joel's arguments, people are mostly focusing on the notion that Wasabi is a tremendously bad idea. In their zeal to discredit Joel's technical decisions, they are often getting the analysis wrong on some key points (though not all of them are doing so, of course).
Here's what I've figured out about Wasabi, with some commentary:
The major win for Wasabi seems to be that it is a unified development language that is used to write code that will ultimately become executable scripts in any of several different other languages without having to write another line of code once the Wasabi is written. The difficulties appear to arise in figuring out how the hell you can get closures, lambdas, and functional syntax to compile to VBScript, Javascript, and PHP on command, particularly without hamstringing your language design to the point where it would be painful to use. You'd probably have much better luck just writing a cross-language compiler between the three, and let your programmers use whichever of the three they prefer. In cases where you prefer client-executed Javascript with a server-executed back-end as a fallback in case the browser isn't going to execute your code, though, this is not a poorly conceived approach to solving your duplication of effort problems.
This entry at SOB isn't meant to draw any final conclusions. That's up to you (or me, if I post on the subject again, perhaps). It does draw some intermediate conclusions, but I have a hard time imagining those conclusions being avoided by any kind of reasonable analysis. It's just a paint-by-number of the Wasabi landscape, as viewed from where I'm sitting.
All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License