Ruby on Rails Proves It Deserves the Hype

Document Sample
Ruby on Rails Proves It Deserves the Hype Powered By Docstoc
					Ruby on Rails Proves it Deserves the Hype

With the multitude of programming languages out there such as Fortran, Java, C++ and
C#, you may wonder why Ruby on Rails has suddenly become such a hot topic in the
development world. Created in the late 1990's by an individual in Japan, the Ruby
programming language had a cult following but never reached top-tier status. In 2004, a
company called 37 Signals released a Web programming framework called Rails, which
was originally developed for their own in-house projects. Rails was written using the
Ruby programming language. It is the combination of Ruby and Rails together that has
generated notable excitement in the development community, and the emerging language
and application framework is proving to be a game-changer to the world of Web
application development.

Ruby on Rails' Impact on Productivity
Rails is an integrated framework that utilizes the dynamic nature of the object-oriented
Ruby programming language. Rails developers emphasize features of the framework for
productivity rather than tools, and they take a common approach to Web architecture that
should satisfy the needs of a large portion of the Web application projects in the wild.

As Rails was developed, the innovators of the framework realized that there were a
multitude of features inherent to the framework that could benefit all Web applications.
Rails is an extremely productive framework for database-backed Web applications. It is
different from other frameworks in that it preaches convention over configuration.
Typically, if you were building a computer program, you had to start from scratch and
rely heavily on the skills and experience of the team's architect to develop and adhere to
standards of writing good software. Rails primarily uses conventions to avoid
configuration when possible, resulting in time saving and enhanced productivity. In a
study by IBM, Rails applications needed a fraction of the configuration code of Java
counterparts, often by a factor of ten or more.1 Where the programmer must specify
configuration, Rails usually relies on Ruby programming language to provide
configuration. The strategy saves developers many lines of code and simplifies the code
that does need to be written. By taking mundane but essential decisions away from the
developer, productivity increases substantially because more time and attention is spent
satisfying the customer's requirements rather than the technical plumbing that can burden
most projects.

Ruby on Rails is known for its ability to build Web applications quickly and with ease.
For first-time users of Java, it could take about five to ten days to build a moderately
useful Web application that will communicate with a database using accepted Java Web
best-practices such as separating business logic, from display logic (commonly referred
to as Model-View-Controller). With no prior training on Ruby on Rails, it takes about
one day to accomplish the same goal using the Ruby programming language. In several
more days, it is possible to build a relatively complete Web application with Ruby on
In Java, a developer has countless decisions to make about how to proceed when
communicating with a database. Should I use JDBC? Should I use an Object-Relational-
Mapping (ORM) library, and, if I use an ORM, which one should I choose? TopLink?
Hibernate? JDO? Do I need to use EJB2 or EJB3? Rails has an ORM database layer built
into its framework called ActiveRecord. Another useful feature of Rails is scaffolding --
Similar to how a building under construction uses scaffolding to assist in the construction
of the final structure, Rails can generate code called scaffolding that can be used to
quickly put up functional Web pages that talk to a database and allow you to add, delete
and change information quickly and with very little coding. As previously mentioned, in
other languages you have to select naming conventions and define the general structure
of the file system, while Rails utilizes conventions and the Ruby programming language
so that all of that is provided for you. Managers will appreciate the fact that Rails
minimizes configuration and encourages standardization. This feature enables
programming skills to be more portable. Rails developers can move from one project to
another with ease, since standards common to all development projects, such as naming
conventions, directory structures, unit-test frameworks, and interface templates, are
already decided, with working samples always available.

Another feature of Ruby on Rails that enhances developer productivity is the rapid
feedback loop. The feedback loop is the amount of time between making a change in
code and seeing the results in the execution of your application on the screen. In Rails,
you get nearly-instant feedback as you code. There is no compile or packaging phase
needed. You can immediately load a browser page to see the results of your changes.
Managers should take note of this feature, because with enhanced productivity comes
improved client satisfaction. Say you are in a meeting with a client, and they have some
edits that they would like for you to incorporate into their Web application. With Ruby on
Rails, you can make changes promptly and see the results immediately, improving the
overall client experience.

It is important to note that introducing a radically different framework such as Ruby on
Rails can be detrimental to a company's development, testing, and production
infrastructure. For example, Rails applications are installed differently than common
development platforms such as Java or Microsoft's .NET. Operations managers need to
understand how to deploy it effectively.

But Rails acceptance is already being witnessed in large companies such as IBM,
Microsoft, Apple, and Sun Microsystems. Sun Microsystems supports a project called
JRuby that enables Ruby applications to run in a Java Virtual Machine. Efforts like
JRuby will make it easier for companies to transition and adapt to Ruby on Rails since it
will become a part of a familiar structure. Apple Computer has announced that Ruby on
Rails will be included in the next release of its flagship operating system, OS X 10.5
(Leopard). And, even Microsoft has included Ruby programming language support in its
newest rich-Internet framework, Silverlight. The world's largest technical publisher,
O'Reilly Media, has even acknowledged Ruby's rapid growth and now considers it a
major language with triple digit growth between 2006 to 2007

A common question regarding Ruby on Rails relates to its performance relative to its
peers. Some companies claim that Ruby on Rails does not perform as well as comparable
systems. Comments such as these must be looked at objectively and balanced against
productivity gains. Managers then need to make the decision of whether it is cheaper to
hire people or purchase additional hardware, and chances are they will find that
purchasing more hardware makes better financial sense.

People are paying more and more attention to Ruby on Rails, and for good reason. With
the advent of the Rails framework, the Ruby programming language is making its way
towards the top. By focusing on convention over configuration, Ruby on Rails is
lowering the barriers of entry to programming and positively impacting employee
productivity—ultimately proving that all of the hype is true and well-deserved.

About the Author
Francis Wong is an independent consultant and senior technical trainer for WestLake
Training and Development ( He has developed
software applications for many well-known companies such as AOL, Hitachi,
FannieMae, and Marriott for over 19 years. Wong has also developed online and on-site
technical training for programmers and managers and delivered courses throughout the
United States as well as Bangalore, India. He can be reached through Westlake or
contacted directly at
 "Crossing borders: What's the secret sauce in Ruby on Rails?,"
cb05096.html?S_TACT=105AGX02&S_CMP=EDU; Bruce Tate; May 9, 2006.

Shared By:
Tags: white, paper