@Cybrilla » August 16, 2011

Daily Archives: August 16, 2011

Development

What and Why of Rails?

Published by:

For the last few years, there is a lot of excitement going on about Rails among the web developers. Few months back, techies at Cybrilla have decided to give it a try and now Rails is the main development platform. I decided to blog the reasons behind it, so that it helps you to decide if you are planning to get your hands dirty with Rails.

What?

Rails is a web development framework based on Ruby Programming Language. It strictly follows MVC architecture and believes in ‘convention over configuration’ concept.

For developers with Java background: Rails is similar to struts / spring mvc etc.
For developers with PHP background: Rails is similar to CodeIgniter / Zend etc.
For developers with Python background: Rails is similar to django

Rails philosophy:
1. Convention Over Configuration – Every java developer has to face the problem of maintaining endless xml configuration files. Rails removes much of this pain by following certain conventions for file names, directory structures, database column names etc.
2. DRY: Don’t Repeat Yourself – Rails strongly believes that re-writing a same piece of code is a bad thing. Because so many implementation details are implied from a master source, making changes in Rails becomes straightforward and generally requires a change at a single location.
3. REST is the best pattern for web applications – Rails assumes that most of the web applications are/can-be organized around resources and therefore uses standard HTTP verbs extensively.

Why?

1. Conventions impose discipline in coding. This allows the developers to concentrate on the core application logic than on setting up the application, setting up the database, configuring database etc. mundane tasks.
2. Because of strong conventions, changes to applications are very cheap and therefore Rails is very strong in agile development space.
3. Great community of rails developers keep on building plugins which can be used for common tasks. This removes a lot of “plumbing” associated with building applications with other frameworks.

Above all, it’s fun developing in Rails, as everyday you get to see a new magic 😛