What is Ruby on Rails?

Kasia Pryczek
27 January 2020

To put it very simply, Ruby on Rails is an open-source web framework written in the Ruby programming language. The so called ‘RoR’ aims to simplify the creation of web applications by generating default structures for code, application’s database and the web pages that will be served up to the client. It’s loved by developers for its readability, flexibility and constantly growing community support.

Why is Ruby on Rails popular now?

When everything happens at a fast pace, we are more often looking for quick solutions to meet the needs of the growing tech industry and to satisfy our clients. And so the development process speeds up, with great inventions like Ruby on Rails. Standardized formats provided by the framework, together with the rich collection of open-source code available within a huge Rails community, make developers’ jobs faster and more efficient. Hundreds of available libraries give many ready solutions for time consuming, repetitive tasks, eg. registration, login or third-party authentication, allowing developers to focus on more advanced application logic. 

Brief history

Ruby on Rails was created by David Heinemeier Hansson in 2003 during his work on a management tool for the company called Basecamp. The complexity of the project led him to invent a custom framework for his Ruby code. He decided not to keep it to himself, releasing it to the public instead. RoR was open sourced in 2004 but the real boost happened after Apple announced their support for it in 2006. It gave RoR enough recognition to quickly increase the number of interested developers and it’s been growing and evolving ever since, providing large support and free-of-charge third-party components.

MVC

What makes Ruby on Rails so readable, flexible and time-saving? First of all, the MVC pattern.

The Model-View-Controller architecture separates the logic of the application into three connected layers. The Model is responsible for the logic, the View represents the actual visual part of the application and the Controller creates connection between the other two. This pattern makes Rails application code clean and easy to maintain.

DRY

Another concept worth mentioning, that helps keep the code clean, is DRY (Don’t Repeat Yourself). It is used commonly in software development and it also sets the principles of Rails apps. Its goal is to reduce code repetitions and extract functionalities into smaller, reusable methods or files, in order to make it easier to understand, easier to maintain and easier to debug.

Automated testing

Rails provides many built-in functionalities, like automated testing tools. It produces tests schema while creating models, provides testing frameworks (eg. RSpec, MiniTest) and many making-life-easier libraries for generating test data. It all works together within a ready to use test environment. It makes test cases easier to write and execute and by holding test files in a readable schema and it helps to keep track of the growing application.

Default environments

Rails eliminates the need for developers to write configurations from scratch. It comes with a bunch of default, adjustable config files, among which we find configurations for the three most common environments: development, testing and production. In addition to these development stages, there is a possibility to define custom environments, like staging or beta, to better reflect the application’s life cycle and allow for the assignment of environment-specific variables.

Convention over configuration

Rails consists of many useful conventions. Their purpose is simply to reduce the number of decisions a developer needs to make, in order to speed up his work. David Heinemeier Hansson said in one of his interviews:

“Convention over configuration is the cornerstone of Rails and a principle I hold dear. Stop wasting time configuring things where the differences do not matter.”

One of the conventions that unifies all RoR projects is the naming convention - pluralization, capitalization and casing. It defines the differences in naming Models, Controllers, database tables and files, allowing Rails to handle mapping between models and database tables. In a simple example, a Comment object would be represented in a model named Comment (singular and capitalized), while its database table would be named comments (plural and lowercase); the controller would be named CommentsController (plural with each first letter capitalized) and the file holding its content would be separated with underscores, like so: comments_controller.rb. Rails allows developers to override these conventions, maintaining a flexible framework if needed.

Ruby gems

A variety of third-party code libraries are available for developers to include in their applications free of charge. They are open-sourced by the Rails community and are constantly evolving and growing in number. Ruby Gems cover many useful, often repetitive functionalities, which can be easily included with a single line of code. Among them you may find Devise, allowing for fast integration of an authentication functionality, ActiveAdmin, that implements a full-on admin panel, often a hidden functionality that consumes unnecessarily hours of coding or Rubocop, keeping your syntax clean and up-to-date, preventing small bugs and typos.

What is Ruby on Rails used for?

If you know Ruby on Rails, you can do both front-end and back-end. A single developer is able to deliver an end-to-end application and a vast number of available solutions allow to develop various types of applications, including e-commerce apps, social-media-like applications, fin-tech and live-streaming apps or data analytics platforms. The world’s biggest start-ups base their development on RoR and among them you may find Airbnb, Shopify, Couchsurfing, Kickstarter, Dribble and even the most popular version control service — GitHub. The number of businesses using Ruby on Rails is constantly increasing at a rapid pace.

Due to the huge impact on the framework from the expanding community, it seems obvious that Ruby on Rails will keep growing. After over 15 years of being in use, we can currently call it a mature framework and consider it stable, which means that it is well-tested and safe to use. It seems like a great solution for businesses focused on fast product delivery and it promises successful, hassle-free maintenance for years.

 

You may also like...

Development

Why do we use Gatsby and Strapi for building websites?

Static site generators (SSG) and headless content management systems (CMS) have been blowing up lately. They allow creating fast, performant and easy-to-manage websites. Moreover, the final prod...

Mateusz Wójcik
21 February 2020
About us

Onboard yourself. How to prepare for your first day at a new job?

After making the decision about changing your job, you’ve successfully passed the recruitment process, you know some things about the company, you’ve accepted the conditions and have...

Michalina Grzesiak
19 February 2020