Home > Uncategorized > Loving and hating Rails

Loving and hating Rails

December 24th, 2007

I’m actually trying to get the grasp of Ruby, but I have a hard time liking it. It’s mostly about people — Ruby itself seems a nice language, but Rails’ community is getting on my nerves. I haven’t seen many things that made me go “WTF?!?”, which could be attributed to pure Ruby, most go to Rails.

Let me give you just one example.

Every now and then I’ve tried to find some information on deploying Ruby and its “gems” system-wide. Apart from me hating the whole concept of “gems”, which rather defeats the whole package management of Linux and MacOS X, it seems to be possible, but at a very high price. Ruby fanboys like their local repositories of “vendor” code. Look at this:

But I highly recommend to freeze
rails (and any other gems you use) in vendor/.

Firstly, your app works with these versions correctly. Can you guarantee
that if a sysadmin decides to upgrade some gems (or downgrade one for
another app?) that your application still works as expected.
[...]
I think freezing all that stuff is just great to do. As far as I know
there are no performance downsides to this.

These people seem to have no clue about security. They don’t have a clue about why package management is good. All they care about is their MacBook, their TextMate und sliding down their Rails (oh, shiny!) Apart from wasting a lot of disk space for all of their “freezing”, there are two main things that piss me off at this stage.

First, it’s the inability to keep their own API stable. Either that, or you shouldn’t be using gems, which are in alpha on production servers. It doesn’t bother Rails advocates enough, it seems. Rails is now at 2.0 and there is still no indication there is any kind of stability. Every other product cares about their users and tries to keep all 1.x version compatible and break the APIs only at 2.x. At Rails the policy appears to be “minor version: minor breakage, major version: major breakage”.

Second problem is the administrator job, which can become a nightmare with Rails. Guys, have you ever heard of a thing called “Security”? Imagine a critical security error in one of Rails versions. A good administrator has to worry about upgrading all of available web servers and guess which servers he won’t be able to upgrade properly? Right, Rails ones, since there might be thousands of separate virtual servers with separate Ruby and gems collections. I don’t envy them. I am actually with Debian on this, who issued a position paper on RubyGems.

Rails community pisses many potential developers and administrators off. They make things easy for the developer, but not to others. I’ll continue to learn Ruby and to get a sense of Rails, but I don’t actually expect to like it a lot. Maybe after I’ve managed to install some Rails application without “frozen” gems — but this could actually take a long time.

  1. phil
    February 4th, 2008 at 11:43 | #1

    Just found your post, and it’s exactly what I’m thinking of Rails. While I really love Ruby as a language and enjoy the simplicity of Rails when developing with it I hate the versioning problems and the lacking ability to make a clean system wide setup.

  1. No trackbacks yet.