Technology is not the first thing we talk about with our clients. We talk about business, ideas, and problems that we can help to solve. But when we understand the problem, when user stories are clear and wireframes are ready – we start writing the code. In most of the cases it’s Ruby code.
Here I will try to explain what Ruby on Rails is for people who do not have programming experience to help them understand the tool we use to build web applications.
Rails is an open-source framework. That means that all the code is open for modifications by any developer in the world. But it doesn’t mean that Ruby on Rails has a completely independent life; there is a team of core contributors who control the quality of all the new functionality in official releases.
There are other web frameworks written in Ruby, for example Sinatra. There are also a lot of other similar frameworks for other programming languages. You may have heard about Django for Python, Hibernate for Java, and CakePHP or Symphony for PHP. All of them can be used for creating web applications.
It is also important to understand the difference between frameworks and platforms. For example, WordPress is a platform that can be used to launch a blog without writing a line of code. At the same time, there are a lot of existing modules, and it is also possible to write plugins for WordPress using PHP. Plugins allow using WordPress to build web applications as well, although, in many cases, this is not practical. On the other hand, frameworks are empty by default in terms of functionality. A new project in Rails has no business logic – developers build it on top of the Rails infrastructure from scratch.
Is it possible to build web app without Rails using just Ruby? Yes, it is. In fact it is possible to build a web app in any programming language without any framework. The reason why Rails was created is to automate routine work. Web apps share many of the same basic modules, so all those common things were combined and packed into Rails, making development speed one of the core advantages of using Rails. However it’s not the only advantage. Check my previous post to learn why Rails is a great choice for building a Minimum Viable Product.