Rails Rehashed: Chapter 1. Introduction to Ruby on Rails

I had started a Rails Exposed series back in 2014 when I was elbow-deep into managing my digital content management venture (maGNOma) and prototyping a career management platform (ProgessionalYou).  Back then, as I learned how to architect and develop Software as a Service (SaaS) platforms using Ruby on Rails (RoR – or simply put, Rails) – version 3 at that time, I became more and more of a converted of Rails’ simple approach and implementation of fundamental principles like: “not repeating the code”, Model View Controller (MVC), Object Relational Mapping (ORM).  As a bootstrapping entrepreneur, I was also pleasantly surprised by how well Rails aligned with the Agile, Lean Startup and a Minimal Viable Product (MVP) approach.

Many things have changed since then with the introduction of cloud enablement platforms and other cloud application development tools, increasing focus on security, scaled approach to application deployment through containerization and application management through DevOps.

While many things have changes, most of the foundational principles that made Rails such an appealing development framework to quickly scaffold and build dynamic web applications remain the same.  It is for this reason that Rails continues to be the development framework of choice for applications such as Airbnb, SoundCloud, Disney, Hulu, GitHub, and Shopify – as well for a range of freelancers, independent development shops, and start-ups.

Rails stands apart for its elegance, power, and integrated approach to web application development. Using Rails, even novice developers can build a full-stack web application without ever leaving the framework.  Rails also provides the flexibility of serving as a great back-end layer of an enhanced technology stack to build content rich front-end applications, mobile app or expose API for real time data access, content streaming and other micro services.

Over the years, Rails has matured.  It is now not plagued with problem and defects that come with some of the newer development technologies such as Node.js, React or Angular.  These are not only far more limited in capability but are also changing at a dizzying pace that is not conducive to sustaining a stable web application.  Compared to Rails, legacy Java development platforms such as J2EE or even Spring are far too complex for a more iterative approach of quickly scaffolding and prototyping a MVP. 

Rails creator  David Heinemeier Hansson once noted:

“Back then the complexity merchant of choice was J2EE, but the complaints are uncannily similar to those leveled against JavaScript today… The core premise of Rails remains in many ways as controversial today as it was when it premiered. That by formalizing conventions, eliminating valueless choices, and offering a full-stack framework that provides great defaults for anyone who wants to create a complete application, we can make dramatic strides of productivity.”

Rails does not only continue to mature, it continues to innovate.  For example, the Rails 6 release includes major new features for email routing, text formatting, parallel testing, and multiple-database support.  A big part of Rails 6 is being “scalable by default”, which means that Rails can easily scale to user growth and demands of a web application while maintaining rock-solid dependability.  It is for this reason the wildly popular developer platform GitHub, the hugely successful online store-builder Shopify, and the collaboration tools such as Basecamp are not only built on Rails; they work with pre-release versions of Rails.  This helps with new versions of Rails being vetted and thoroughly tested before general availability.

Amazon Web Services (AWS) also now facilitates a seamlessly integrated cloud development environment through Cloud9.  The resulting workspace environment comes preconfigured with most of the software needed for Ruby on Rails web development, including Ruby, RubyGems, and Git. The Rails cloud IDE environment will also seamlessly integrate with GitHub for full backup of code and easier collaboration.

Rails deployment ecosystem has also matured rapidly in the past few years, and now there are several great options. These include shared hosts or virtual private servers running Phusion Passenger (a module for the Apache and Nginx26 webservers), full-service deployment stacks from companies such as Engine Yard and Rails Machine, and cloud deployment services such as Engine Yard Cloud and Heroku.

The intent of this series is not to teach someone how to become a full stack Rails developer.  The posts that will be included in this series will serve as a quick reference guide to refresh or validate Rails development principles, basic Ruby expressions and commonly used Rails commands.  This is by no means an all-encompassing Rails learning guide and should not be considered to be one.  For more detailed sources to learn Rails development refer to:

In this series I will reference the above to as source material.  However there are many others that can be discovered on your own through a quick internet search.

Read: Chapter 2. Getting Started with Rails

Go back to: Rails Rehashed


One response to “Rails Rehashed: Chapter 1. Introduction to Ruby on Rails

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.