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 | Short Link | Comments (0)

XML

Blog Categories

software (39)
..cocoa (21)
  ..heads up 'tunes (5)
..ruby (6)
..lisp (3)
..perl (4)
..openacs (1)
mac (20)
embedded (2)
..microprocessor (2)
  ..avr (1)
electronics (3)
design (1)
photography (25)
..black and white (6)
..A day in Sydney (18)
..The Daily Shoot (6)
food (2)
Book Review (2)

Notifications

Icon of Envelope Request notifications

Syndication Feed

XML

Recent Comments

  1. Unregistered Visitor: An other Script
  2. Unregistered Visitor: A message in there?
  3. Unregistered Visitor: using Amazon S3
  4. Unregistered Visitor: Thank you ! Thank you ! Thank you !
  5. Unregistered Visitor: Umbrello on leopard
  6. Unregistered Visitor: Script gor generate for library
  7. Unregistered Visitor: Similar but different
  8. Unregistered Visitor: Thanks for fixing my problem!
  9. Unregistered Visitor: Pop up once the category is been defined
  10. Unregistered Visitor: smal amendment