What are the Benefits of Ruby on Rails? After Two Decades of Programming, I Use Rails

I believe that most clients know their options and yet they still decide to go with Rails.

I’ll explain what makes Rails beneficial enough to be considered as a plethora of projects and needs.

Benefits of Ruby

Ruby somehow enables programmers in a special kind of way that is so hard to explain to the ‘unwashed masses’. Let me illustrate with some monkey patching:

“1”.to_i

#=> 1

classString

def to_i

raise’foobar’

end

end

“1”.to_i

#=>RuntimeError: foobar

A particular error would be easy to spot, but can get much more sinister:

classString

defto_i

self.to_f – 1.13

end

end

“2”.to_i

#=> 0.8700000000000001

An error has occurred in the String class that could be wrapped into and obscured by layer upon layer of complexity.

In five years of using Ruby, I’ve had zero problems with this behavior. it is just like driving cars at 60 MPH in opposite directions separated only by a thin white line in the middle of the road. In practice, both work remarkably well.

 

Pragmatism

Pragmatism produces elegant solutions and encourages/inspires the Ruby on Rails development community.

Rail is more than just ‘convention over configuration’; I am talking about the whole pragmatic mindset that is highly valued within and permeates through the Rails community.

 

Expressiveness

Rail uses an internal DSL, extending Ruby with its own semantics. Constructing a DSL is always dangerous as you are effectively developing a new language, since it is internal:

classUser<ActiveRecord::Base

validates_numericality_of:years_of_experience,

:allow_blank =>true

acts_as_taggable

acts_as_taggable_on:certificates, :expertise_kinds

validates_presence_of:first_name, :last_name, :email

has_many:translations

has_attached_file:avatar, :styles => {:small =>”240×240>”}

has_attached_file:cv

The Rails DSL is just a smart naming and inherent usage of Ruby’s excellent syntax.

 

Community

Rails have an army of committers that make sure it stays in tip-top condition. It feels like the maintainers (still) truly care and want people to use Ruby on Rails and understand its benefits.

Ruby stands with its package manager, Ruby Gems and its claim is very impressive. The synergy between a cool language, pragmatic web framework, and superb community gives Rails a result that is much better than the sum of its parts.
Maturity

This is a good thing when it comes to choosing a technology stack: you want something proven. We recently wrote a piece talking about the wide variety of Ruby interpreters and runtimes that are now available.

 

Marketing

1. Compared to the competition, the Rails site looks good.

2. Rails’ first screen cast was simply a breath taking. The only reason we know about Java is the possibility of running a Java Applet in the browser.

This isn’t even about vanity; it’s about engaging as many smart people as you can to put water into the mill.

 

(Not) Reinventing the Wheel

Rails are (as they say) ‘batteries included’. In practice, if you let go of your fears, it does seem to work.

 

Conclusion

Rails is suitable for both state-of-the-art public websites that compete with Single Page JavaScript applications, and complex enterprise core system applications that usually look a bit ‘uglier’ (with a more generic, lower fidelity UI), but compensate this blemish with a ton of complicated business rules and logic. You will have at your finger tips an arsenal that implements the brightest ideas in computer programming.