Ruby On Rails, Nitro, Django, Seaside?
For most Ruby developers, Rails is the only web development framework in town. But that doesn’t mean that it always will be. In fact, if Ruby continues to attract developers at its current rate, it would be almost unthinkable that Rails will remain unchallenged by other frameworks.
There are already some other Ruby frameworks such as Nitro, Iowa and Wee. No doubt, over time, others will emerge - some will be ‘cross platform’, others may be dedicated to specific platforms or implementations of Ruby running on, say the Java VM (for JRuby perhaps) or the .NET CLR (for Microsoft’s IronRuby). There have even been rumours that CodeGear (the developer offshoot of Borland) might be thinking of creating their own custom ‘visual class library’ (‘VCL For Ruby’?) to go alongside their ‘VCL For PHP’ - though that may depend on whether or not they managed to make a success of their PHP VCL.
Maybe it would make sense either to interface Ruby with existing frameworks or to create new frameworks modelled on those used by other languages. Or then again, maybe Rails will simply remain the de facto standard for Ruby web development. It obviously has a clear head start over any would-be competitors. But in today’s fast-moving, Internet-driven world of software development, I’m not inclined to place any bets on whether or not, five years from now, that will still be the case.
I must admit that I have very little experience of using web frameworks other than Rails. I have used CodeIgniter a bit and it seems very competent; but it is so Rails-like that I can’t see why (other than the choice of programming language) someone might wish to use it in preference to Rails.
Out of the whole mass of frameworks the one that interests me most is Seaside. This seems to have adopted quite a different strategy from Rails and who’s to say which, in the long-term, might be the better of the two? I hope to take a closer look at Seaside when (if) I have some more spare time later in the year. Incidentally, Seaside is already attracting attention among Ruby users. The Wee framework was inspired by Seaside and so is another framework named Borges. It looks as though Seaside and Rails are the two frameworks that others seek to emulate. There is even a framework called Lift which claims to provide the best of Seaside, Rails and Django using the Scala programming language on the Java Virtual Machine! (Yikes! This is getting too much for me to take in all in one go...)
For an interesting, and challenging, comparison of Seaside and Rails (I quote: “Rails is better than everything.... except Seaside), try Giles Bowkett’s screencast: Seaside and Rails (The 2007 Goto): http://vimeo.com/clip:174586
For a comparative background on Seaside v Rails see...
Rails v Seaside: http://onsmalltalk.com/programming/smalltalk/rails-vs-seaside/
DHH Responds to Stateful Web Applications Row: http://www.infoq.com/news/2007/04/no-compromise-stateful-row
Heresy and turtles (all the way down) with Avi Bryant: (creator of Seaside)http://blog.caboo.se/articles/2007/4/8/heresy-and-turtles-all-the-way-down-with-avi-bryant
Implementing Seaside concepts in Rails on Rails?: http://www.infoq.com/news/2007/04/giles-bowkett-rails-seaside
HREF Considered Harmful (Avi Bryant’s Blog): http://smallthought.com/avi/
In the meantime, if anyone has experience of using any of the web frameworks I’ve mentioned or any others which I haven’t, I’d be keen to know how - in actual use - they compare with Rails. If you have any views on the matter, please leave them as comments here or head over to the Forum if you want to discuss them at greater length.