Tempted by Rails

22 10 2005

rails_logo_remix.gifI’m really starting to think that I need to freshen my development skills. Even after many years of programming, becoming more and more of an architect (whatever that means) does not imply that one should stop coding or learning new languages and techniques.

One of the most intriguing new languages is of course Ruby and its amazing (according to most observers) Rails web application framework. Being reassured that such a simple technology is not simplistic and can compete with complex J2EE servers in terms of scalability and reliability is comforting:

Jon Tirsen: “For a production management system of this caliber in J2EE you would pay hundreds of thousands of dollars and the cool thing is that SwitchTower actually has features not even the big iron appservers managed to implement. SwitchTower allows for pretty much complete 24/7 including completely seamless upgrades (and rollbacks) where the user wouldn’t even loose the session. How could the Rails team pull this off when companies like BEA and IBM never did regardless of how many millions of dollars and manyears of effort they’ve poured into their software?”

What is still holding me back is the fact that, by choosing Java for my next project, I am not just choosing a language and a platform, but also an incredible amount of libraries, frameworks and toolkits. For most problems you will be facing while developing a Java application, there is probably some library out there that solves it brilliantly, is Open Source and good quality too.

Case in point: I am a big fan of the “Search, Don’t Sort” approach and whenever I need to add a search feature to my apps (which happens almost always) I know I can use Lucene, which is real good. Or I can use Rome for reading and publishing RSS/Atom feeds, as I did recently. And having an RSS feed is the hallmark of any decent Web 2.0 (sorry, Joel) application, right? 😉

So, the only thing that worries me a little is: will I still be able to tap a comparable reservoir of code when I implement my next Web application with Ruby on Rails? Just wondering.

Update: later today, Brian McCallister announces:

David Balmain has released Ferret unto the world. Ferret is one of the most requested libraries I have seen for ruby — a native port (not a gcj and bindings!) of Lucene!




5 responses

22 10 2005
David Heinemeier Hansson

Please do come on over, Ugo. I had the same reservations switching from PHP(/Java) back in the day. Thinking that obviously a more popular platform would have more of what I needed. I was quite surprised to find that to be largely untrue. Ruby has come an incredibly long way over the past couple of years. And I’m of course doing mine to take it even further with Rails.

For your specific examples. I just spoke with Eric Hatcher at EuroOSCON – he’s the author of Lucene in Action – and he told me how he was building a Rails application that called Lucene over XML-RPC. Appeared to work very well.

Regarding, RSS, Rails is already more than adequately served to do this without adding dependencies on additional libraries. Have a look at the example code for a RSS feed (see under Builder) in the Action View docs.

But the specifics will of course always vary. Some tasks will have been solved best in Ruby, some in Java, some in PHP, some in Smalltalk. If you’re considering a specific project, try asking the lazy web how the library situation looks on Ruby for that problem (or how hard it would be to do by hand).

22 10 2005
Geert Bevin

Hi Ugo,

why don’t you try out some of the Java frameworks that have been working hard to simplify j2EE and web development. There has been a strong drive for this for many years, but people somehow don’t think that doing something simple in Java is possible. I invite you to check out RIFE (http://rifers.org), which has even been acknowledged as a good choice by Bruce Tate.
Rails is definitely a good choice if you like to switch everything ever and are 100% tired of anything Java related. I personally think that Java can be very agile when you pick the right technological back-end.

This blog post might be interesting from you when you try out RIFE, coming from other Java technologies:

We now also have a scaffolding solution, that is actually useful to build upon instead of having to customize generated code, more information here:

Best regards,


22 10 2005
Geert Bevin

I forgot to say that we have native support for RSS and Atom:

and we have a sub-project that provides a very easy to use database-backed queue for Lucene indexing:

We will integrate this with the core framework for the next version release.

22 10 2005
Nikolas Coukouma

For search, you might want to try Ruby/Odeum

23 10 2005
Sylvain Wallez

RoR is certainly cool, now I know that my BigCo customers will never accept it on their servers. Something I’ve been increasingly hooked to is JavaScript.

I learned through Cocoon’s flowscript that JavaScript is a “real” language, which has suffered from its use in browsers where people were fighting with DOM implementations rather than the language itself.

But since I started digging in Ajax libraries such as Dojo and Scriptaculous, I started to realize how really powerful JS is. Rhino is also a very well thought-out thing, and using more than its basic features to connect to Java code allows for very powerful things.

So Rails will certainly influence the way we write web applications and their supporting frameworks, but Ajax gurus and Rhino are likely to make these techniques widespread in the Java world.

JavaScript on the client, JavaScript on the server, why would the majority of people want to switch to another language?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: