Over the past decade, we have witnessed a number of breakthrough technologies emerge on the horizon. Ruby on Rails (RoR) is one such technology that has raised the bar for application development. Originally extracted by the Danish programmer David Heinemeier Hansson, RoR has matched wits with other popular programming languages. But RoR took the programming world by storm when Apple announced that it would ship RoR with Mac OS X v10.5 Leopard. Ever since that day, RoR has not looked back!
RoR – Technical Grouping
What is interesting about RoR is its technical grouping. Like the name suggests, RoR is a combination of Ruby – an object oriented scripting language and Rails – a web application development framework. This technical combination has spawned a number of web applications that deliver at an enterprise level. RoR has breathed agility, speed, and dependability in enterprise applications and enhanced their return on investment.
Principle Base of RoR
Convention over Configuration
Convention over configuration is also referred to as ‘coding by convention’ by the programming community. The phrase indicates that a developer has to only specify unconventional aspects of an application in RoR. The RoR framework has its own common application settings. Developers have to define only those settings that differ from the common ones. Let’s assume your model has a class called ‘purchase’. The corresponding database table will have “purchases” as its default name. But if you try to rename it as “material purchased” then it means you are deviating from the convention for which you need to write a code.
Don’t Repeat Yourself
RoR’s Don’t Repeat Yourself or DRY principle prevents code repetition and duplication. It ensures that information is retrieved across multi-tiered application architectures without code redundancy. RoR’s grouping logic makes this possible. When a developer modifies one element in the application, he does not have to go and modify all the related elements individually. The logical grouping of elements in RoR takes care of that. Additionally, the related elements change uniformly while still staying in sync.
Application Designing in RoR
Model View Controller (MVC) designing pattern dominates the RoR application development field. MVC is so highly preferred because of its ability to support rapid development of medium and large sized applications. As the name suggests, MVC has three fundamental components:
(1) Model: This is the data and the business logic
(2) View: Presentation of data to the viewers
(3) Controller: The code that facilitates interaction between models and views.
MVC’s biggest advantage is its enforcing nature. If the model of an application dictates that a field should have a certain number of characters or a certain value, then developers can enforce this at the model level where database and logic reside and have it implemented across the architecture. They don’t need to go on checking values at every single place. Quite a relief for your development team, isn’t it?
RoR Applications & Scaling
A development team can address the issue of application scaling at multiple levels like language performance, framework efficiency, architecture agility, system, etc in RoR. Developers can identify frequently requested and performance sensitive actions and scale them seamlessly in RoR. But what really steals the show here is RoR’s ability to support application scaling at web level as well as enterprise level. Whether it’s a web RoR application or enterprise RoR application, developers can scale it to accommodate several hundred users.
RoR & Data Storage
RoR applications have massive database support to optimize productivity. They can be supported by database servers like MySQL, PostgreSQL, SQL Server, DB2, and Oracle. The good thing about RoR applications is that they can draw strength from their individual technology components. Ruby uses model-programming paradigm and Rails uses scaffolding programming to infuse flexibility in database driven applications. The advantages of data collection, visualization, and distribution at enterprise level afford competitive edge to RoR.
RoR & CMS
RoR can also attribute some of its immense popularity to its content management system (CMS). A developer can design destination sites with page elements like RSS, Atom, label, overlay, API clouds, etc. RoR developers can use the framework’s CMS to develop multilingual support for applications, news release sections, template hosting features, etc. This CMS further allows RoR developers to integrate features like image cropping and resizing, design editors, blogs, etc to make the application interactive and exciting for users.
RoR Fan Club
Tom Mornini, CTO and co-founder of Engine Yard recently contributed an excellent piece on RoR in Business Insider. Mornini quoted Bill Abel, vice president and director of digital development, Luckie & Company stating, “We chose Ruby on Rails because it allows us to develop websites dramatically faster. We finished the first release of the Bayer Advanced website in 2 months – a 50% reduction in development time. Rails is a complete 180 to traditional app development; it’s very structured and the built-in hooks made our transition much easier. The Rails test-driven development model has helped us achieve development efficiencies, so we can build websites more quickly and deliver a much more reliable product.”
The Business Insider piece further quotes Thor Muller, CTO and co-founder of Get Satisfaction state, “Ruby on Rails offers more than just pure speed. We know it is faster to develop an initial working product in Rails, so prototyping in Rails made a lot of sense for us. As we worked more with Rails, we realized it was also ideal for our work style and the types of personalities we wanted developing our product – particularly because our established developers like the elegance of the Ruby language and Rails framework.”
It is evident that RoR is gaining steam going forward in 2011. RoR fans are becoming more verbal with their appreciation of the framework. On the framework side, RoR is more open than ever and easier to set up, install, update, and adapt to different hosting environments. Let’s see what the next year or two holds in store for RoR.