Ruby on Rails Study Guide: The History of Rails

    Ruby on Rails Study Guide: The History of Rails

    Ruby on Rails – or simply, Rails – is an open source, rapid web development framework, with a continuous goal of maximizing developer happiness and productivity. Created nearly a decade ago, Rails today forms the backbone of many of the most popular applications on the web, and has an incredibly vibrant and passionate community. In this study quide segment, we’ll review the history of Ruby of Rails.

    Study Guides: When applying for a programming job, you’ll often be presented with a quiz that intends to determine your level of knowledge and experience in a given subject. The various articles in this series provide condensed solutions to the questions that you might expect to see on such tests.

    The Foundation of Rails

    Rails was created in 2003 by David Heinemeier Hansson, while working on the code base for Basecamp, a project management tool, by 37signals. David extracted Ruby on Rails and officially released it as open source code in July of 2004. Despite rapid iteration of the Rails code base throughout the years, it has stuck to three basic principles:

    • Ruby Programming Language
    • Model-View-Controller Architecture
    • Programmer Happiness

    The Ruby Programming Language

    Ruby on Rails is written in the programming language, Ruby, which was created by Yukihiro Matsumoto a.k.a. Matz in 1995. Matz created Ruby from some of his favorite programming languages, such as Lisp, Perl, and Ada, while placing significant emphasis on “trying to make Ruby natural, not simple.” David, himself, fell in love with Ruby upon first using it.

    A big part of what makes Ruby so special to work with is just how much expression you can pack into few lines of code.

    Eventually, there was a huge surge in Ruby’s popularity in the mid 2000s. Much of its success can be attributed to the popularity of Rails.

    Model-View-Controller Architecture

    Baked into the architecture of Rails is the software pattern, referred to as MVC (Model-View-Controller). This provides a clean isolation among the business logic in the Model, the user interface through the Views, as well as the processors handling all sorts of user requests in the Controller. This also makes for easier code maintenance.

    Programmer Happiness

    Rails heavily emphasizes “Convention over Configuration.”

    Rails was created with the goal of increasing programmers’ happiness and productivity levels. In short, with Rails you can get started with a full-stack web application by quickly creating pages, templates and even query functions. Rails heavily emphasizes “Convention over Configuration.” This means that a programmer only needs to specify and code out the non-standard parts of a program. Even though Rails comes with its own set of tools and settings, you’re certainly not limited to them. Developers are free to configure their apps however they wish, though adopting conventions is certainly recommended.


    A Look Back

    As we look back at the history of Rails, let’s review some of the more significant releases over the years.

    1. Rails 1.0 (Dec 2005) – Mostly polishing up and closing pending tickets from the first release along with the inclusion of Scriptaculous 1.5 and Prototype 1.4.
    2. Rails 1.2 (Jan 2007) – REST and generation HTTP appreciation
    3. Rails 2.0 (Dec 2007) – Better routing resources, multiview, HTTP basic authentication, cookie store sessions
    4. Rails 2.0 (Nov 2008) – i18n, thread safe, connection pool, Ruby 1.9, JRuby
    5. Rails 2.3 (Mar 2009) – Templates, Engines, Rack
    6. Rails 3.0 (Aug 2010) – New query engine, new router for controller, mailer controller, CRSF protection
    7. Rails 3.1 (Aug 2011) – jQuery, SASS, CoffeeScript, Sprockets with Assets Pipeline
    8. Rails 3.2 (Jan 2012) – Journey routing engine, faster development mode, automatic query explains, tagged loggin for multi-user application

    Over the years, Rails has indeed made it easier for beginners to dive into web development, as well as build large complex applications – some of which include Twitter (at one point), GitHub and, of course, 37signals’ very own Basecamp. Although it has often been criticized for performance and bloat, Rails continues its iterations along with an ever-growing developer community and a vibrant ecosystem.

    Rails is even offered by many hacker schools today, as part of their curriculum for web development.


    A Peek Ahead

    For updates on Rails’ development in the future, or even a deeper look back to learn how the various technologies were integrated in past versions, be sure to review the following links:

    1. Release Notes
    2. Documentation

    As we look ahead, the core team and many contributors are putting the finishing touches on Rails 4.0. Stay tuned to Nettuts+, where we’ll dig into everything that this new release has to offer!

    Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
    • Manters

      nice post bro :)

      • http://www.facebook.com/jesus.bejarano.948 Jesus Bejarano

        Apparently the author is a woman.

      • http://twitter.com/sayanee_ Sayanee

        thanks bro ;-)

        • Avelansh

          Yeah, really good article brah! (:

        • Alchemication

          Cheers bro

      • http://www.facebook.com/chriscubos Christopher John Cubos

        sis

    • Daniel

      btw, Twitter still using Rails for some components of their page and it’s serving 55% of the traffic of site.

    • Ian Simmons

      Thank you Sayanee,

      Is “study guides” something nettuts is going to start like sessions or is that just the way you wrote this article? I like the idea of having some short reads on different languages, frameworks, etc. like you did here with background info.

      I’m Just learning Ruby and Rails and I could write a application but am bad about focusing on the how-tos and tutorials so much that I don’t know much about the background. If I had to answer any of this in a interview I would fail.

      • http://twitter.com/sayanee_ Sayanee

        Hi Ian! Yes, lookout for other articles on Rails as we are approaching Rails 4.0 – my co-authors at Nettuts+ have lined up some Rails articles and they are to be released after this background article.

    • Harish

      why the name Rails was given to this framework??

    • Significan Me

      RoR is a pain in the ass. All those versions you have to keep in mind, and almost no back compatibility drew me away from RoR. You have version x.y.z, but your gems are at verzion a.b.c, so no cant do mate. I’ll rather stick to good ‘ol php and python.

      • Guest

        because ZF1 apps are compatible with ZF2 apps ? SF1 apps are compatible with SF2 apps ? because django API didnt not change over time ? give us a break , Change is great, breaking changes are necessary , If your app works dont upgrade its kernel , use then next version in the next project .we are computer scientists we are supposed to like change and tech improvement, we are not museum guides …

      • http://www.facebook.com/vinicius.gati Vinicius Gati

        man u so wrong kkkk

    • http://twitter.com/bradfordarner Brad Arner

      Great overview of Rails’ background. Well written.

      You all should really put together a list of great Rails resources. In the past, I did only front-end stuff but I recently decided to start delving into the world of back-end engineering. I decided to start with Rails. Of course, the problem is that there is an inevitable gap between the beginner level and the intermediate to advanced levels; intermediate to advance material is still just way too difficult. With Rails growing popularity it would be awesome if someone would start putting together a step-by-step (i.e. tutorial by tutorial, book by book) road map to becoming truly proficient in Rails. Engine Yard has a nice list of resources (https://blog.engineyard.com/2010/resources-for-getting-started-with-ruby-on-rails) but I think that a resource list based on level would be really helpful.

    • BrianFrichette

      Wow this article sucks. Take an honest look at the “content” provided in the meager collection of paragraphs, compare it to what is available on Wikipedia or a basic Google search. WTF.

    • http://www.facebook.com/KB9AGT Douglas G. Allen

      I saw your video on Rails. A little daunting is right. This should not be the way newcomers are introduced to Rails. Scaffold is quick and dirty but not the best approach to start. Rails has a new paradigm. TDD. And so with the default of SQLite3 now it is just so simple to create the Model first. Scaffold was the old way. Try something new. Otherwise the information to get started is very good but you should give time to see the links. I downloaded it though and watch it and watch it even though I started learning Rails the hard way back in 2007. Thanks for the nice clean work though. Rails is not just for Mac users. But RVM does NOT run on Window alas. But you can always load a Virtual System for Windows. Hey just look at Cloud Foundry. They advocate it. Thanks Sayanee B.

      • Ian Simmons

        or use Pik for windows rvm alternative

    • josemotanet

      A quickfix if you can, Sayanee: entry #4 regards Rails 2.2, not Rails 2.0. Also, about Rails 1.2, REST is the result of appreciating HTTP at its best.

      Other than that, it’s good to revisit the past in such a short manner.

    • viktor_tron

      a tad disappointing in depth i must say

    • http://www.blogger-archive.com/ salem shami

      goos post
      .
      thanx

      please viste my bloggr:

      http://www.blogger-archive.com