Rails is a Ghetto?

Just noticed Zed Shaw’s soon to be infamous rant on Rails and the Rails community. As a little background, Zed Shaw is of course the creator of Mongrel, the web server that has become the staple deployment apparatus for Rails.

Zed’s rant is long and boisterous; typically, I view such ranting with a healthy dose of skepticism. However, some of what he says in the post makes a little too much sense to shrug off as just malevolent lashing-out.

I jumped on the Rails bandwagon mid-last-year, and to me, it became a salvation of sorts. I experienced a programming environment that simultaneously gave me power to create and joy in development. Often those two things are toss ups, where one need either be limited or lulled into a near comatose state.

However, as I’ve worked with Rails more, I’ve realized that while it may have charted new frontier (being one of the first enterprise-level web frameworks for the common man), it is not the end all be all that many see it as.

Lately, I’ve begun development on a project at work that was slated to be developed in Django. This meant that I had to take a break from Rails and learn a new framework, a new language at that since I was not familiar with Python previously. Coming from Rails, I had a slight bias to Django from the start. For the most part, the two kids play nice, but every so often someone would post on the virtues of one of the two over the other. Django, in particular, seemed a bit of an upstart to me, with users and even the creators themselves often making grandiose claims of its superiority.

Initially, I found myself recoiling from many of Django’s “ways”. URLconfs made me want to kick someone’s ass. It was not until I got to creating templates in Django that it began to earn some respect in my eyes, but the clencher was the first time I tried to implement some AJAX.

Back when I was working on the TipDish project with the group from Startup Weekend Houston, I remember the hell I went through trying to implement AJAX in Rails. For some reason, I had a real mental with it. I knew how to do what I was trying to do outside of Rails, but I just couldn’t seem to get it working the Rails way inside Rails. I devoted two full nights of scouring the web and lurking in IRC before I found the answers I needed.

Django, I was sure, would be worse, knowing that documentation is more sparse for Django than Rails. I anticipated an even more hellish encounter with this framework, and at first, I seemed to receive it. I searched online for information to little avail. I found many references to Dojo and its imminent inclusion in Django. I looked at Dojo and cried. (As an aside in case I happen to the catch the notice of anyone on the Django development team: *please*, if you’re going to package a javascript framework, let it be anything but Dojo.)

Then, a miraculous light of entered my mind, complete with angels strumming on harps. I realized I was free. I could pick whatever javascript framework I wanted, or none at all. I could do it anyway I liked. I was not restricted into using built in functions or special code. And that’s when Django suddenly took on a whole new light for me. Here was something that did just what it was supposed to do: take care of all the cruft, so I don’t have to. After that, it get’s out of the way and let’s you do your thing.

Rails, for all it’s beauty, is controlling. It wants you to do things its way. Indeed, many times, I felt as if I was learning a new language just from the framework. Rails is training wheels. Even those that use it and swear by it seem to rewrite most of it as their apps grow, leaving very little Rails left to Rails. As Zed points out in his rant, the name itself admits to this; you’re supposed to stay on the “rails”.

Now, all this is not to say that I’m rejecting Rails now. I believe it will stay in my arsenal for quite some while, and I also believe it does have a lot of merit to itself. What I am saying is that the honeymoon period is over and I’m no longer star-struck in love with Rails. I’m also saying that the drastic shift of Zed Shaw against the Rails community (while probably not to be unexpected from Zed), should still be seen as an omen of sorts. There does seem to be a little too much “headiness” in the Rails community, where some people seem to feel they are just too damn smart to coexist with the rest of us. It’s not representative of the entire community, but it’s there, and it should be dealt with.

That said, check out Zed’s rant. If nothing else, it makes an entertaining read. And, if you haven’t already, give Django a look. You can never have too many tools in your arsenal as a web developer and its got some real power.

  • Del.icio.us
  • Digg
  • Facebook
  • Google Bookmark
  • StumbleUpon
  • Technorati
  • Peter
    His rant is endlessly entertaining. Bravo.
  • The article is very informative as well as so creative. You have very great knowledge having this subject. So nice! It’s a great to see you here.

    Thanks!
blog comments powered by Disqus