What Rails got Right

While getting updated on Rails 3.1 with the latest Manning book on the subject and the thought struck me that where Rails has been the most succesful has been creating a new vocabulary.

A DSL for CRUD Web applications

More than just providing an MVC structure, Rails has created a DSL for Web programming, which expresses most of the common CRUD operations in a few concise lines. The con is that there is a learning curve, but in exchange you get to think in terms of these operations really fast, and begin to type code very fluidly. It also contributes to building the common language of the Rails community.

Enforcing conventions through tools

In Rails there is a generator or a bundled command for everything, from creating files (rails generate) to updating dependencies (bundle). This is more than a convenience: ensures that conventions are respected while relieving the programmer of the burden of enforcement.

Code sharing and conversations between become simple.

Community building

Despite occasional complaints of juvenile behaviour, the Rails community is impressive. It is well known that going through the same motions every day will build a repertoire of common references and in-jokes. So I wonder if the relative rigidity of Rails is not part of the secret here.

Spreading beyond the core community

The proof of the strength of Rails in creating new vocabulary and conventions is that many of these have seeped thorugh in the Node.js and even in the larger web design world (http://compass-style.org/).

In conclusion, the very way Rails is structured as a piece of software has pro bably been instrumental in shaping an original programmers' culture, something that other equally competent frameworks such as Django lack.