about photos bookshelf portfolio blog home
Begin main content

Java, Ruby on Rails and Buzzword compliance

There's this great article on O'Reilly network's OnJava site titled Ruby the Rival, ie. Rival to Java. It's a Java site, so you expect the article to relate the article to Java. In fact in that light, the article is very compelling - real Java people (some ex-Sun) moving to Ruby on Rails? Now that is a story.

The real heart of it in my opinioin though, is eloquently summed up by this comment from James Duncan Davidson - author of the Java Servlet API.

... I think that's the real win from the recent attention on Ruby on Rails and the breakaway from viewing the world with Java-colored glasses. It's not that Ruby on Rails is going to be the next Java. Far from it. It's that Ruby on Rails helps to break this idea that there is "One True Way." There's not. There are many different ways to solve a problem. And really, none of them is the clear-cut winner. There's just places where one solution has advantages.

Hooray! Yes, Java is best of breed for some things (eg. cross platform sand-boxed gui's), but so is Ruby (Rails web apps). And so, for that matter is Perl (system glue, reporting); Objective-C (many things - if only Yellow Box was still available); etc.

It is an unfortunately popular belief that there can be a single language/framework that suits all (or even most) problem domains. If developers really believe that, why do their applications nearly always contain two languages? How's that? How about Java+SQL? or Perl+JavaScript? or PHP+ActionScript? The truth is that languages/frameworks tend to model some real world problems better than others.

Hilbert's Universal algorithm is unsolveable. Einstein wasn't able to find his Theory of everything. It's probably not possible to create a universal programming language that is best suited for all problem domains.

Perhaps the obscene difference in LOC (lines of code) between equivalent J2EE (Java) web-apps and equivalent RoR (Ruby on Rails) applications will be a clear way to explain these facts to business stakeholders. In case your particluar business stakeholders need an analogy, Davidson offers this:

It's like the structures that we work, eat, and live in. Some structures are best built with concrete and steel. Others with masonry. And yet others are best built with timber. Nobody has jumped up and said "All buildings must be built with bricks!" And there's a good reason for that. It'd be stupid. In a similar vein, not all web applications should be built with Ruby on Rails or Django or J2EE or Perl. There's a multitude of tools for any particular job. And there are new ones waiting to be discovered. The trick is determining the best one.

Will the days of buzzword-compliance one day be behind us? Perhaps we are entering a time of cool-compliance.

What irritates me is that in the "applet" space that Java invented, you look at Flash(plus Flex/Laszlo) and it crushes applets in both "cool" (get me to a good user experience quickly) and "powerful" (I get data binding/SOAP/XML-RPC/etc. for free). The fact that the "powerful" side of that isn't in the core JRE immediately kills the usefulness of applets, and if anyone can show me an applet that looks anywhere near as good as the Laszlo Dashboard demo in a similar number of lines of code, I might have a coronary on the spot. "Cool" counts for a lot, too.

Back in the day, an "Enterprise" executive would get back to his office from a trip and show you the in-flight magazine advertisment for Cisco routers, Java webstart or whatever, and ask "why aren't we using this - everyone else is". Now it's more like "My iPod is easy to use, and it looks great. Why doesn't our intranet work like an iPod".

While any form of artificial compliance is bad, I would much prefer being directed to be compliant with cool than the latest buzzword :)

02:17 PM, 22 Nov 2005 by Mark Aufflick Permalink | Comments (0)

XML

Blog Categories

software (4)
  ..heads up 'tunes (4)

Notifications

Icon of Envelope Request notifications

Syndication Feed

XML

Recent Comments

  1. Mark Aufflick: all good ideas
  2. Unregistered Visitor: Excellent!
  3. Mark Aufflick: Hey thanks
  4. Unregistered Visitor: Fantastic entry
  5. Mark Aufflick: Bah - dashboard widgets
  6. Unregistered Visitor: Nice
  7. Mark Aufflick: elegant maths (as opposed to elegant rabbit)
  8. Unregistered Visitor: Does that really matter?
  9. Mark Aufflick: Inspiration
  10. Unregistered Visitor: Perhaps...