Drupal VS Ruby on Rails

Published on
Sep 11, 2010

When it's time to choose a language or framework or platform to develop a new website, you can't pass by Drupal or Ruby on Rails (RoR). Both are open source cutting edge 'mechanisms' for creating real beasts. Yet, only one must be chosen, and it's not a simple decision. Non open source platforms are left unnoticed, since they cannot be competent enough, not until now anyway. Other open source platforms like Django etc, are safely ignored as well (and pardon for that!) since they all try to mimic what was initially invented in Ruby On Rails. Wordpress and Joomla are left aside too, since the former is a very powerful tool, but very robust one and has somewhat limited functionalities, and the latter looses somewhat in configurability to Drupal.

But back to our beloved two. It would be simpler if you could have a taste from working with each of them. But if you're looking for an advise, then probably you didn't work with both, or you're just curious. The author himself is inclined to Drupal, but this opinion is very subjective, and full explaining basis is provided beneath.

Let's examine the first steps of working with each system. For most of us PHP is part of the Web. It was there since the birth of the Internet, and so experienced programmers all familiar with. It's a very easy language to learn, it's like a Swiss Army knife - you have all the needed instruments. Yeah, it's not 'elegant' or beautiful, but it does what's expected. RoR on the other hand is before all a Ruby language. It's elegant, it's beautiful, it's more readable, but it requires time to get familiar - to get closer. Ruby was developed by a Japanese guy, and as it is with Japanese products - it cannot be imperfect, it is perfect - but you need time to get closer to it - to learn it. It took me a year or so of my free from work time to have enough control over RoR and to build the YummyFoodies - an easy food blog. The concepts learnt from RoR are invaluable - MVC, ActiveRecord, Automated Testing - and this is just a tip of an iceberg, which is being slowly replicated to Drupal as well.

The actual success behind Drupal is that it's already a working machine. And if you want it to be a blog - you got it. If you want it to be a portal - you got it. You got whatever you want by simply configuring and changing here and there. And your writing and thinking is minimized to a slim stream and focused only on 'what do I need to be done' instead of additional 'how is this going to be done' which is the case with RoR. The amount of modules or 'plugins' in Drupal is immense. Virtually everything you could think of - is already written by someone - just take it and utilize. You are even implicitly encouraged to extend and give back to the community - cause if you don't then someone else will do just that ;-)

Drupal is a kind of an aх. It will cut anything, not caring about elegance. And elegance is important when talking about optimization, and optimization is important when you have plenty of visitors. Elegance is like the Japanese Yanagiba knife which cuts beautifully any slim cut you want. So if this is already a working and fully loaded website with tens of thousands visits daily, then consider using RoR. But in most cases this is not so. Definitely no one can predict that big traffic for his idea on paper before proved opposite by fact.

And here's the critical point. Building a Drupal blog with different access permissions for multiple users requires just playing with configurations. Drupal is a blog. if you want it to be so. RoR on the other hand needs you to write code, to find and use some plugin/gem for permissions and utilize it. The official RoR tutorial shows how to write a simple blog in 10 minutes, but it's no way near what you get with Drupal without writing any line of code.

But both systems require time to learn. And from my experience the time is the same more or less. Another point - what Drupal lacks from RoR, get equal on the scales of proportion against what RoR lacks from Drupal. For example, Drupal 6 could have ActiveRecord and make programmer's life much easier. As an opposite, RoR could be a CMS and include 'it all' at once, like permissions, taxonomy and all the basic needs, so you wouldn't spend time on finding / learning about them.

Last bottom line of words. If you're a beginner or just lost, go Drupal. If you want a fast beast and you're ready to die for it and simply working horse is not good enough for ya, go RoR. Otherwise just stay with what you've got.