I will start with a bold statement: there has never been a better time to use “Ruby on Rails”. Recently, we have witnessed two major releases of the Ruby programming language and a web development framework, which we know of as Ruby on Rails (versions 2.0 and 4.0, respectively).
However, there is always a temptation to stick with the existing versions because of the risks and fears associated with new releases. All these risks have associated costs, so project stakeholders may think that it can be too expensive to choose new releases of Ruby on Rails 4.0 and Ruby 2.0. New releases usually need “polishing”, and often contain bugs. Also, as with any new tools, the developers need to learn how to use them, and to feel comfortable with them, so as to be able to use them efficiently. I will discuss this in more detail later in the article.
Loving to use the Ruby programming language can make you a little biased towards a particular technology stack. It’s easy to go on and on about what you love doing in your everyday work: programming with Ruby. So, in order to make myself more credible, let me start by appealing to an authority. I think it is safe to assume, that the name of Jeff Atwood rings a bell with my readers. If you don’t know, he is a successful programmer, co-founder of “Stackoverflow” and a great blogger. He publically claims that he loves .NET, yet he also adds that “like any pragmatic programmer, he picks the appropriate tool for the job”.
In a previously linked blog article, he answered the question: “why Ruby”? As a very seasoned software developer and entrepreneur, Jeff obviously had to tackle the problem of “choosing the right tool for the job”, when he decided to start something new, after leaving his successful Stackoverflow project. I am glad he shared his thoughts on this matter.
So, the agenda of this article is, first to highlight Jeff’s needs and concerns, which led him eventually to pick Ruby, as the base for his next great project - Discourse. Secondly, I plan to do a walk-through of some fascinating changes and refinements, which come with Ruby on Rails 4.0 and Ruby 2.0. These changes have impacted positively on the overall performance, security and quality of the products built with this aforementioned technology stack.
Finally I will try to pull a “Jeff Atwood” and attempt to create an example list of B2B projects, where the Ruby on Rails 4.0 and Ruby 2.0 combo is a perfect fit – and I will explain why.
As a developer, with some experience under my belt, I can tell you that the savings you can make by sticking with old versions, are nothing when compared to the alternative situation where your project drifts further and further away from new software developments. When this happens, it becomes more and more difficult (and expensive) to catch up with currently supported versions of libraries and gems. The proper attitude towards programming language / framework developments, is to treat each new version as an investment. This will not only pay off dividends in the future, but, if not undertaken, may literally stop your project at some future point of its development.
I believe Ruby on Rails, and Ruby have the best of both worlds. Ruby on Rails has stability and maturity, which comes from having been around for seven years now. The Ruby programming language has just had it’s 20th anniversary.
When Jeff Atwood says: “Ruby isn’t cool any more. Yeah, you heard me. It’s not cool to write Ruby code any more”, what I believe Jeff Atwood is really saying is that “some established, less sexy technologies with a long track record of production and serious usage cases, may be an appropriate solution”. We should not just jump onto a technology bandwagon simply because of the hype around it. Ruby on Rails, or Ruby itself, have not emerged “recently”. They both have a long lasting track record of real production usage. They have proven themselves as the technology stack used to create many well known projects, such as Twitter, LinkedIn, Github and the like.
A second factor is the fast development of the framework, with new features and enhancements continually flowing in, thanks to the vibrant user community. This is something which I believe couldn’t be achieved by a more commercially based stack backed by a big company like Oracle, which stands behind Java.
As promised in my agenda, let me share some thoughts about the new and exciting features of Ruby on Rails 4.0 and Ruby 2.0. We will start with Ruby, as it’s a base and often an enabler for fantastic things you can do with Rails.