Wednesday, October 03, 2007

More evidence that rails is fubared

Yes, rails has some nice features and cute tricks for building common functionality. However, the more time I spend working with it, the more I get the sense that many critical aspects of the library -- including rendering, logging, benchmarking, ORM -- are poorly constructed, difficult/confusing/impossible to configure ... and generally just fundamentally FUBARed.

Here's an example. I wanted to add some diagnostics to my app, but only if we're running with a certain log-level enabled. In Java, with commons.logging, I'd do this by checking 'if (LOGGER.isDebugEnabled()). "Ok," I figure, "rails has a reasonably full-featured logging infrastructure, there must be some way to do this..." So I google for 'rails logging configuration' and arrive at this page from the official Rails wiki:

http://wiki.rubyonrails.org/rails/pages/HowtoConfigureLogging/versions/62

Lo and behold, this "helpful" page is just SMEARED with markup from angry developers, complaining about how the rails-modified logger doesn't work as documented, as intended, or as they expect that it should.

More and more, my impression of rails is this: it's fine if you just want to throw together a small-scale website with attractive AJAX features. But if you intend to build an app that needs to be computationally intensive, or scalable, or support complex data-structures, trying to build it in rails is going to hurt more than it helps. So far, my experience has been best with SpringFramework MVC and a whole bunch of jakarta-commons support.

1 comment:

bitsucker said...

jeez... guess I was a bit bitter when I wrote this..?