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!

Related Posts
  • Code
    Web Development
    How to Use New Relic With PHP & WordPressRelic retina preview
    Today we will look at how to monitor a PHP application using New Relic. More specifically we will set up a basic WordPress installation and get some performance data about it, in the New Relic dashboards.Read More…
  • Code
    An Introduction To Deploying WordPress with MinaImage400
    As a PHP application, WordPress is usually deployed by a very old method: uploading files via FTP. We have some deployment tools, but they often requires some type of Ruby skill. For example, one popular, powerful tool is Capistrano, but it's also very heavy with many Ruby/Rails related features. I also think that it's little bit tricky to install Capistrano for a PHP developer without any Ruby knowledge. So what options do we have as WordPress developers? In this tutorial, I will introduce you Mina: A small, light tool aims to fast deployment and server automation.Read More…
  • Code
    Creative Coding
    Using WordPress for Web Application Development: A ReviewApplication foundation 400
    Over the past few months, we've been taking a look at all of the features and aspects that make WordPress a potential foundation for application development. In fact, we've spent roughly 15 articles talking about all that WordPress offers. And though we'll be reviewing each of the points in this email, perhaps the biggest thing to take away that building web applications using WordPress is different than using many of the popular frameworks that are currently available namely because WordPress isn't a framework.Read More…
  • Code
    Tools & Tips
    Check Out Atom, GitHub's New Development EditorAtom wide retina preview
    It's been awhile since we've seen any updates in the editor space. The last big splash was made by Sublime Text which took the web development community by storm, especially once Package Control came around to serve as the package manager for the editor.Read More…
  • Code
    JavaScript & AJAX
    Setting Up JSHintJshint wide retina preview
    Regardless of the language you're programming in, we always want to try to produce clean, concise, and correct code. This is a sign of a good programmer and it lets you know your apps are running properly. Linting helps with this by analyzing your code and highlighting common issues regarding syntax and coding conventions based on best practices.Read More…
  • Code
    Why Rails?Why rails
    Your choice, when learning a new framework, is an incredibly important one. It takes countless hours and effort to become proficient and learn all the best practices - even for experienced developers. That's why it's necessary to understand the peculiarities of a framework as early as possible, in order to determine if it's the right solution for the problem that you're trying to solve. In this article, I'll cover many of the key areas of the Ruby on Rails framework, and why I feel that it's an excellent choice for web developers.Read More…