With an abundance of development frameworks available for use with a number programming languages, it can be difficult to determine what to use and when.
As the first part of our frameworks series, we thought no better place to start than one of our favorite frameworks, Ruby on Rails.
We use Ruby on Rails to build applications small and large for our clients; largely due to its ease of use and quick development time (but we’ll get into all of that later).
For now, let’s familiarize ourselves with what Rails is and how it can fit into your tool belt as a web developer.
What is Ruby on Rails?
Ruby on Rails is a development framework based on the Ruby programming language. Developed in 2004 by David Hansson for the project management tool Basecamp, Rails was soon made available as an open-source software.
Though originally met with mixed feelings by developers, Rails has withstood the test of time largely due to its ability to build full fledge web applications at a fraction of the time and cost of other frameworks.
Rails is built as an “opinionated software”, meaning that within the development community there exists a right way to accomplish most tasks, and any other methods should be avoided( if you’re familiar with other frameworks and languages, this may be a bit of a shock).
The benefit of this, however, is the ability to troubleshoot and debug easily.
Rails has a large community of active developers who are constantly updating the framework and supporting new developers.
With a strong community all following the same development conditions, solutions are easy to come by.
Who uses Rails?
Ruby on Rails is and has been used by a number of companies since its inception. Due to its rapid development time, Rails is a top choice for companies looking to develop cost effective MVP’s.
Among the most popular sites that were initially built with Rails are: Twitter, Soundcloud and Ask.fm.
Due to various reasons, they have since moved to different frameworks, though likely still contain various Rails components.
Nevertheless, Rails still maintains an impressive list of current users including: Shopify, GitHub, Hulu, Airbnb and Zendesk to name a few.
How does Ruby on Rails work?
Rails is a Model-View-Controller(MVC) development framework, which effectively separates an application into 3 main logical components. Each component is designed to handle a specific developmental aspect.
- Model — Directly manages the data, logic and rules of an application
- View — Any representation of information. In layman’s terms, what the end user sees and interacts with.
- Controller — Accepts input and converts it to commands for the model or view.
A huge perk of developing with Ruby as opposed to other languages is the vast library of Ruby Gems.
Ruby Gems are software packages or libraries that can easily be added to Ruby applications.
Using gems while developing a Ruby app allows for pieces of software to be included in your application without the need for extra hardcoding on your part.
A few of the most popular gems available are:
- Devise — A flexible authentication solution for Rails based on Warden(middleware that provides authentication for rack applications).
- ActiveStorage — Attach cloud and local files in Rails applications.
- Sidekiq — Simple, efficient background processing for Ruby.
Gems are available for download through RubyGems.org, the Ruby community’s gem hosting service. In addition to using gems to modify application functionality, experienced programmers can also develop and upload their own gems for the community. We’ll cover how to create and upload gems to RubyGems in a later post. Until then…
Stay tuned for Part 2, where we learn how to download Ruby and Rails to your machine. We’ll even start building our very own application!