Saturday, March 11, 2006

Barbarians at the Gate?

I think Gosling is in total denial about Java losing ground with a large class of problems and developers. Some of the top Java evangelists are turning to Ruby because they feel ignored and to some extent betrayed.

His comment about Ruby being just a scripting language that generates
web pages without power in the application domain shows a lack of
understanding of Ruby as a provider for DSLs. If he'd ever actually looked at any Rails code surely he would see this. ERB, embedded ruby, is what actually generates web pages (from rhtml templates) in Rails. Rails itself is a DSL with ORM, cross-cutting concerns, and business logic written in Ruby. Ruby's power to create DSLs shows that Ruby is the anti-thesis of a specialized language (as Gosling claims) and it's one of the reasons DHH wrote Rails in Ruby.

PHP's main problems are much like Perl's: bolted on OO lacking DSL
capability. And it's grown too organically to be consistent and
manageable. Ruby has the advantage that the language has borrowed
concepts from the best of Smalltalk, Python, Lisp, etc. and the
community has been small and smart. It's found a pleasant balance
between Python's rigidity and Perl's TMTOWTDI ("There's More Than One Way To Do It").

And Gosling's comment about complexity reveals that he may not subscribe to Einstein's maxim: "Make everything as simple as possible, but not simpler." Perhaps Gosling's version would be "Make everything as difficult as possible, even the simple things."

Instead of fiddling while the city burns, Java would be better served by leaders who took these realities to heart and talked about how they are going to address them.

I can understand why they want to protect their language's persona, but if they really want to keep their customer base, I think they should "get real" and take some advice from the guys at 37signals about being forthright and responsive: admitting your faults to customers and fixing them as soon as possible.

Take it from someone who spent almost 3 years in technical support and training, this is how you build lasting customer loyalty. Through acceptance that you are not perfect, the desire to improve, and an honest willingness to help your client. Not through denial and neglect.


Post a Comment

Links to this post:

Create a Link

<< Home