On March 25, the University of Internet professions "
Netology " together with the community of ruby-developers
Moscow.rb held a meeting on alternative solutions in the world of Ruby. We find out whether there is a non-trivial Ruby and something other than "rails", and also why love this programming language.

Closed "chamber" mitap with traditional afterparty attracted a little more than fifty developers. Three reports and one direct speech of the founder of the ruby-community Anton Davydov. Initially, it was planned to have a warm tube atmosphere in which you can communicate and at the same time find out how popular the Ruby programming language is and is important for the Russian IT community.
')
Nikita Shilnikov told about the ROM library and the Hanami framework.

“Now I prefer to collect my stack in projects, it allows me to better understand how parts of the application interact with each other. The framework should remain open to modification and not assume “too much”. And Hanami was immediately developed with this calculation, and over time it became more and more open.
When I was asked: “why should we use ROM, and not take Elixir and Phoenix”, I realized that for me personally, learning a new programming language is always a relatively easy way to master new approaches. I can use them further in my work in any language. Therefore, we must say "yes" to the study of new languages. My goal is to create an environment for Ruby that will not force you to change the stack just because it is “no longer fashionable”.
As usual, to learn a language, it is best to write some small application or library, this will allow you to look at the tool from different angles, get to know it better and start working on commercial projects.
If we talk about ROM, this is a library that is designed to solve the problem of working with the data storage layer. ROM is not ORM. Just like the Ecto library for Elixir is also not an ORM. In general, ROM and Ecto are very similar. The task that the ROM solves is the separation of the business logic of the application from the method of data storage.
Speaking about the basic principles of ROM, it is important to note the following:
- There is no global state in ROM. This is a big plus for the developer: it is possible to control where the local state is forwarded.
- In ROM, almost everything is not mutable and there is no public API, which leads to a state change. Instead, the API simply returns a new object. This greatly reduces the number of bugs.
- In ROM, higher-level abstractions are built based on an explicit API. If you need something very custom, then you can certainly find extension points to solve a specific problem.
- And one more principle of CQRS is various interfaces for reading data and for their recording. Instead of running everything in two directions, there is one way to read the data and another to write. It's simple. ”

Anton Davydov, one of the founders of Moscow.rb, spoke about the language from his point of view:
“Ruby for me is a great tool that allows you to get the most out of my developer experience and pump skills. This language has one of the most developed communities in which both a novice developer and an experienced programmer will find support and understanding.
There are many alternative solutions in Ruby that have no analogues in any other language. Everyone is familiar with the Ruby on Rails framework, but there is also the Hanami framework, the ROM, Dry and Trailblazer libraries.
About 2 years ago I worked in a small company where no team building and other unofficial events took place. As a result, you seem to live in an information vacuum: you have no one to share your experience with and get advice, all professional communication takes place mostly online. I decided that many developers might face such a problem, especially those who work remotely. He created the website and twitter
Moscow.rb and began to conduct drinkcaps in different bars. The project turned out to be successful: the meetings have been going on for 2 years already, for some it even helped to find a job.
Many people think that programmers are such gloomy, isolated guys who sit in their ivory tower and do not want to communicate with others. In fact, success in development depends largely on communication. Communication creates an environment in which technology develops and ideas are born. When there is a healthy community around technology, it is easier for new developers to get help, and for experienced developers to get better, get feedback.
Many have heard about the guys from Evrone: they organize
Rails Club , hold meetings in the Rambler. I try to occupy a more niche position: I am doing chamber events, where I can talk with well-known developers in a comfortable atmosphere and discuss pressing issues. On some meetings, participants have the opportunity to express themselves as a speaker, to understand whether it is interesting to grow in this direction and speak at conferences.
If we talk about goals, I realized that I was just pleased to create something. I want to create a cool environment of like-minded people, a healthy atmosphere of mutual assistance, in which new ideas will be born and everyone can develop professionally.
I am the core developer of Hanami, and for me it was a matter of honor to launch a project based on this technology. Alternative solutions in the community are still wary of, so I decided to show by my own example how it works. ”

Mitap showed that everyone was tired of “rails” - a well-known framework, which many people associate with the language itself. But what really is Ruby and why love him?
Ruby appeared back in 1993, and the first official version was rolled out a couple of years later. The creator of the language Yukihiro Matsumoto was an enthusiast of programming since his student days, but the idea of creating his own tool came to him much later. Ruby was created to write simple and understandable applications, because Yukihiro was a fan of the PLO, so it is not surprising that the main focus was not on the speed of the programs, but on the readability of the code. The language has a multithreading implementation independent of the operating system, strict dynamic typing, garbage collector and many other features.
So
why love Ruby?
- The code can be read. Even out loud if you really want it.
- Ruby is the case when a language is both simple and complex at the same time.
- If you are the programmer who likes OOP, Ruby is definitely your choice.
- Looking for a mistake? No, did not hear. You will find it in the first lines of the code if it is a curve.
- Integration tests may well be in Russian. If foreign languages don't work out for you, love Ruby.
- It is said that the ruby community is one of the friendliest in the world. And forums including.
- Libraries for working with text, data and massive are very powerful. And their brevity and clarity cause boundless love. By the way, there are quite a lot of libraries and they are relevant - this is good.
- Speed of writing code: start a project, enter into the library Gemfile, then you will have to set up and everything - the first part is ready. Yes, it is the first part.
Is that enough to love Ruby? It seems to us that yes. If you think otherwise or want to support our love for this object-oriented language, then welcome to the comments.