Brian's Waste of Time

Sun, 20 Mar 2005

The Rails Hype

I love Ruby, and quite like RoR, that's pretty well known =) The flavor of a lot of the hype annoys me (though less than it does my friend Geert), as one of the things I have liked for the last several years is the openness and pragmatism of the Ruby community. I think a lot of the bad attitudes we're seeing related to Rails, and Java bashing in that community, come from the PHP community, more than the Ruby community. It sounds like the noise the PHP community has been making for years, and if you poke at it, it seems it is even a good number of the same folks!

A lot of folks in the Java tribe see Rails as an assault against Java, but there is another group who are having a similar reaction, and that is the PHP community. An awfully lot of prominent Railsers stepped in from the PHP side of the fence, rather than the Java side. This includes David himself, who had left the Java camp for the PHP camp a while back.

An interesting way to view this is looking at platforms instead languages or frameworks, Disruptive Innovation Graph and see the Rail craze as the intersection point where a disruptive technology (LAMP) starts biting into the market of the dominant product (Java). To borrow a graph from Clayton Christiansen, what has been the world of PHP and LAMP, which provides low-end dynamic sites and applications to people who would not otherwise be served by the dominant technology (Java), or for whom Java way overshoots requirements.

In the past, the market served by LAMP has been of little interest to mainstream Java developers -- as Dain puts its, the market for $10,000,000 applications is much more interesting than $10,000 applications. Java developers have been chasing the needs of their best customers, the people with $10,000,000 projects, and doing a fantastic job of it. The bottom of the market is better served by simpler, more agile systems, however.

Mr. Christiansen pointed out, years ago, that the rate of improvement for the disruptive technology eventually pushes it up-market enough that it competes, and usually supplants the dominant players. The best example here is the old PC and minicomputer story, which we are all very familiar with. Minicomputers still serve the high end market they narrowed their aim on, but they are fringe, not the dominant player.

Ruby on Rails, solves an identical problem as PHP -- it provides a very rapid, very inexpensive to develop and deploy, optimized for the common cases, solution for internet application development. It specifically ignores the big-ticket items (XA, MQ, etc) which big Java solutions are optimized for dealing with (because this is what the best customers have needed).

Interestingly, this anology only holds up when it is viewed as an extension of LAMP. It isn't, really, as right now setting up a solid Rails deployment platform is almost as complicated as setting up a Java one. Rails under CGI is a joke, you really want FastCGI to set this up, and setting up FastCGI is easy for folks with systems admin experience, but quite a stretch for the typical PHP developer who relies on the ISP or hosting company to keep Apache and PHP properly configured. On the other hand, it does work under CGI, if with degraded performance, and reasonably priced hosting optimized for Rails is easy to find -- and is priced more in line with more common PHP priced hosting than typical Java hosting. I think the anology works, personally.

Rails may represent the point where LAMP starts biting into the markets mostly served by Java. I doubt it has yet, in terms of contracts and dollars, but the people who do the work on those contracts, and make those dollars, are paying attention, and are impressed by what they are seeing. It is a short jump to seeing the lower end of the Java-served market (single database, web interface only (including SOAP and REST)) market get sucked out. Java will still be best served by playing to the needs of the high end. There is a ton of money to be made there. The low-end is starting to having it belly ripped open, and the blood is in the water, as RoR makes headway into the Java market.

Heck, even calling it a Java market isn't accurate. The market is "customers needing highly integrated, complex, multi-interface applications tailored to their specific needs." The tools aimed at the "customers need web applications tailored to their specific needs" are cutting into the first. Rails (not Ruby) is the tool which is plunging the deepest right now, but PHP, Python based tools (Zope etc), and Perl (the grandaddy of it all (as the father of Ruby (mated to Smalltalk) and Python (mated to, er, Guido), and PHP (mated to the Apache Web Server))). Rails isn't a Ruby framework, so much as a FLAPR (FreeBSD, lighttpd or Apache, PostgreSQL, Ruby) (Flapper!) framework. I think that model of thinking about Rails is valid.

The other thesis this is predicated upon is that you can model development tools using theories designed to model business and markets. You'll have to judge that on your own. I haven't done the formal research to find the facts, that would support this idea, but it feels right with what I have seen, and fits the theories well =)

2 writebacks [/src/ruby] permanent link