ghammell'sBlog

What is Rails?

July 28, 2014

For the longest time, I had wondered what Rails was. All the devs and R&D people I worked near at my office would throw around the term 'Ruby on Rails', and I never really understood what that meant. I knew Ruby was a programming language, one that my company used pretty heavily. But I didn't get what the 'on rails' part was, or why we used it. Finally, I've taken the time to do some digging to further my understanding!

It's a framework!

A what? Basically, Rails is a web application framework that builds on the functionality of the Ruby programming language. Whereas the Ruby language itself is used as a general programming language, Rails combines Ruby, HTML, CSS, and JavaScript languages to enable you to create full web applications. I was surprised to learn that Rails is actually just a ruby library that can be installed through the command line. What this means is that Rails is just a package of preconceived files, methods and classes that can be used to extend the functionality of your Ruby code. I don't want to diminish the breadth of Rails though - it is an open source project with a multitude of contributors continuously improving it to enable the community to create even better web applications.

So why Rails?

One of the benefits to using Rails is that it is used within the context of the Ruby programming language, which many find to be a very streamlined, simple, efficient language to work with. And, with Ruby comes RubyGems. RubyGems is a package manager built into Ruby which enables you to download libraries and projects from anyone that loads them to the main Ruby website. Access to the code and functionallity created by others can streamline the process of developing a complex web application.

Beyond all that, though, many people prefer Rails over other application development frameworks because of the conventions used when working with Rails. There is an established set of 'rules' that the Rails community abides by when developing within the Rails framework. This makes it much easier to deconstruct an existing Rails project, enabling easier collaboration and more efficient recreation.

Alright, but how does it actually work?

If you've ever built a simple website, you know that the only essential component is HTML. If you like, you can include CSS to manage you're formatting, and even further you can add in some JavaScript to make your page a bit more dynamic. Rails uses Ruby to manipulate and assemble your HTML, CSS, and JavaScript files. It can boost your site from one that is static to one that is responsive, that takes inputs and produces outputs, that changes in format and content. It turns websites into web applications!


Copyright: Gary Hammell 2014