Before you find out the answer of this question, you need to know what this conceptual structure means. So:
What is Ruby on Rails?
Ruby on Rails is an open-source framework, written in Ruby, used for developing web applications. You develop a lot of programs, and then you realize that you rewrite the same code many times for most of the applications, and you need to customize only in some places. Well, what is a framework good for? It contains all the pieces, which need to be rewritten by the programmer, but it also allows you to customize using the code.
When do you use it?
When you need to develop fast a web application. It is suitable from this point of view because it offers a lot of freedom, this meaning that the programmer doesn’t have to waste his time with insignificant details. Adding or changing app functionalities is easy and fast. The Ruby on Rails community is large here in Romania. Help can be easily found, so programmers like it a lot.
Moreover, Ruby on Rails is intuitive and easy to learn. After you work with it for a period, you ask yourself, as a programmer, ‘why don’t other languages work the same?’. Ruby and Rails were created to make the programmer happy, literally. The quickness and the ease of making changes allow a dynamic development of an app, and that’s why they make the programmer pleased.
Other similar platforms
Similar programs are .NET and Django. For .NET you need the license for Windows, but Ruby on Rails is free. It works on Linux, which is free, and everything is open-source. You only have to start programming. Django is open-source; it is a little more difficult, and the community isn’t as active as it is with Rails. I think that the most important thing with Ruby on Rails is the community, which is developing new applications continuously, and it helps a lot.
Don’t Repeat Yourself!
Convention over configuration, CRUD, REST, and others are among the principles that help the programmers to develop using Rails. Many OOP languages include Don’t Repeat Yourself. It aims the uniqueness of information. I mean, a piece of code with a result, found in one place and reused whenever it is needed. When a subsequent modification on logic is needed, it will be made in that one place. You have to make a lot of changes if you don’t consider this principle, and this could lead to errors or inconsistencies in the application.
I expect a semantic programming in the next 10 years. Programmers won’t be setting their wits to work at all. Everything will be like a fluent language. At the moment, they’re working on such technology. The idea is that the solution needs to be implemented in one field, and after it flourishes as a unique function which brings something new, the world will want to use it. It’s the moment that makes the programmer or the system engineer realize that we need such technology. If it wasn’t for Rails framework to be created, Ruby could have been a very nice programming language, without anyone hearing about it.