From this article, we are going to talk about one of the most unknown technical aspects for the general public but at the same time more fascinating, web programming languages. Who else or who has heard less about HTML (which is already in its fifth version ), the language in which any web page is written, but names and acronyms such as PHP, jQuery, ASP, JSP, etc., will surely sound to Chinese in the ears of those who are not familiar with the world of web programming.
That is why we wanted to publicize some of the web programming languages that are giving more talk or will speak very soon. I think it is fair to start Ruby On Rails a language (well, it is not) that could be put at the head of the programming languages that have achieved more followers in their relatively few years of life.
What exactly is Ruby On Rails
Ruby On Rails, as I mentioned, is not a programming language but the union of a programming language (Ruby) and a framework (Rails), that is, a set of tools that establish a kind of virtual mechanism that moves all scheduled web application. Using a simple simile it can be said that Rails is a road network, with highways, secondary roads, etc., and Ruby is the map of a route through the said road network.
The Ruby On Rails base is established by the MVC (Controller View Model) paradigm, let’s see what it consists of. There are three elements of this paradigm. First, we have the model that becomes a database in which all the data to be handled is stored. For example, if we are talking about an online store, the model would be the set of data that is stored on the items sold, customers and orders. The model is still there so that it can be consulted or modified by whoever is necessary. These actions are done from sight.
The view is simply what you see when entering a programmed website using Ruby On Rails, that is, the set of pages within the same website. Using the example of the online store, a part of the view would be the page that shows the characteristics of an item for sale, another would be the page with the form with the details of the order we are making and so on until all the possibilities of the Web.
The element that communicates the view with the model is the controller and is the key part of Rails’ operation. Going back to the example of the road network one could say that the controller is the signposts that tell us which direction to take on our trip. The controller is not visible to the naked eye by a user who browses the web page, it is the programmer’s task to model the controller in tune with their needs and also according to the model.
Let’s give a complete example of how Ruby on Rails works. We enter the online store of the example, here we are showing part of the view in the form of a welcome page. It must be said that the view is not programmed in HTML, but Rails is responsible for transforming its language into HTML so that any browser can interpret it without problems. Once we find the item that we want to buy, we will click on the button indicated for it, at that moment the controller is receiving the “buy” request (or as the programmer has called it) and will go to the model to update the stock of the item. Once this is done, the controller can redirect the user to a different page where he is thanked for the purchase, or to any other.
Rails is a web development framework, focused on giving the developer the necessary tools to implement applications quickly, Rails is based on a series of programming philosophies/techniques that guide the developer when doing tasks: the Rails way of so they release him from making decisions that really have no impact, and focus on development, on the specific business logic. Ruby on Rails is not a programming language in itself, but the union of Ruby, which is a language, and the Rails framework. Let’s talk a little about the history of these two elements separately.
How it Originated
The Ruby programming language is the work of Yukihiro Matsumoto, known as ‘Matz’, a practically self-taught Japanese programmer, although he graduated in information science from Tsubuka University. Matsumoto began working at Ruby in 1993 and showed the first version of it in 1995. Ruby has a syntax similar to Pearl, another programming language. Ruby’s name was coined by the similarities with this, Pearl.
When defining Ruby, Matz set a goal to create a programming language that was friendly to the programmer, instead of focusing on the hardware needs of the machine that makes the language work. This is a great advantage for everyone because if a programmer is comfortable and has little trouble with a programming language, he will be more productive with it, he will finish his work sooner and the product will be ready much sooner.
The story behind Rails is the one that completes the entire Ruby On Rails creation process. David Heinemeier Hansson, a Danish programmer, created Ruby On Rails after working at Basecamp, a very famous project control tool. The first version of Ruby on Rails came to light in December 2005, the last version (2.2) did it in November last year.
After Ruby On Rails, there is a very simple philosophy, that of avoiding repeating code unnecessarily, which makes it very difficult to maintain the code before possible changes, something that unfortunately is our daily bread in the programming guild. Also, Ruby On Rails is unique saving time during programming, as it has several conventions that are applied automatically without the programmer having to do anything. For example, if in the Model of our program we create a “telephone” model, Rails will automatically create the table in the database with the name “telephones” (although the name can be set manually), and from there all direct interaction with this table it will not be the task of the programmer, but of Rails.
Here are the most important points of this framework and how they impact the way you work with Rails:
Traditionally, projects have to define a series of configurations in addition to configuration code, for example in the Django framework, routes must be explicitly defined. Instead, Rails has a convention system that avoids that tedious work, since the framework is responsible for doing so only thanks to the power of the configuration convention.
Rails give you a defined stack of tools that work together to do all the tasks that a typical web application requires.
As Rails already provides a stack, its entire community has shared knowledge of errors and solutions, so you have the support and peace of mind of knowing that there are people who have or have had the same problems as you and are willing to help you.
This does not mean that you cannot change the stack, only that it is not required and that by default you already have at your disposal a complete stack of solutions.
Optimized for programmer happiness
Rails inherit Ruby’s philosophy of making the programmer happy, of allowing him to create expressive code that explains himself and is beautiful to the eyes of the programmer, this philosophy is adopted through APIs that make development easier and more comprehensive.
For example, the inclusion of Array#fifth(being able to access position number 5 of the memory) is not something efficient, but simple to understand and program, collaterally making it easier to maintain
One of the interesting things about Rails and something controversial is the number of improvements that it introduces to the Ruby programming language, Rails not only brings a great API for the web, it also comes loaded with many improvements for the language itself.
It is said controversial because it does so through a technique called monkey patching, which in simple terms adds functionality directly in the language, so that for the programmer it is like using a feature taken out of the language, when in fact it was added by Rails.
Rails have powerful tools to test our application:
Rspec: is a tool that allows BDD (Behavior-Driven Development) to be done in Rails using a simple syntax.
FactoryGirl: It is a tool that allows you to easily generate test information.
Stubs: allows you to test your application without relying on external services, it serves to emulate the behavior of an object within the system (such as an object that controls the third-party API) allowing decoupling the tests.
You can even use Webmock to directly disable the internet connection of the tests and avoid unnecessary calls.
DRY – Don’t Repeat Yourself
One of the most important philosophies of the framework is Don’t Repeat Yourself, in simple terms it means: not having to repeat yourself.
For programmers who come from other frameworks, it will be very attractive to know that Rails cares a lot about this, having this principle directly in the heart of the framework means fewer headaches, less code and more opportunities to be productive. If you are running a business and wants to adopt Ruby on Rails for backend engineering of your mobile app, I think you will not regret the decision as it is cost effective and also provides an unmatched agile development process.