Ruby, Rails, Box, and Gosling
Today Don is talking about Gosling’s anti-scripting rant. When Gosling wrote this, I found it rather “interesting”, since I had just finished having a similar debate with David (inventor of Ruby on Rails), and Anders (architect of .NET and C# among other things). David and Anders are both from Denmark, so they decided to hang out when David was in town, and I got to join the spirited conversation for a couple of hours.
Basically, David argues that Ruby on Rails is appealing, specifically because it limits it’s scenarios to attack a very specific set of problems. Attempting to address the last 20% of potential scenarios would complicate the platform by 80% — essentially this is the argument. David was quite eager to say, “if RoR doesn’t meet someone’s specific scalability, functionality, or whatever neeed — they should just use something else.” David argued that .NET has become too bloated and too complex, in an attempt to please too many masters.
This was striking to me, because Anders is famous within the company for “protecting the purity of the golden platform”. That is, Anders will fight tooth and nail to keep stuff *out* of the platform, if he feels that it disrupts the elegance or consistency. I recall many past frustrations trying to get Anders to approve my particular XML APIs, when he seemed more concerned about elegance and purity than the number of customers I could bring to the table.
Of course, I grudgingly accepted and understood the reasoning — but the point here is that I always saw .NET as a glowing example of a Dane’s quest for elegance; so it was interesting to see Ruby positioned as an opposite. David clearly hasn’t looked at a lot of Win32 code (or Linux code, for that matter).
The uber point is about specialization, though. When *Gosling* talks about specialization, I think he means something different than David, although I suspect that Gosling took his cues from hearing David speak or reading some of David’s writing. In fact, I think David is talking more about “willfully ignoring nice, but inessential features”. While Gosling is talking about “lacking essential features for many scenarios”. And it should be clear by now, where someone draws the line and where someone decides to spin, is rather subjective.