Hello! We are preparing for
RailsClub 2017 and traditionally talk with our favorite speakers. Today's hero is the man who got
Ruby Hero Russia last year -
Anton Davydov . Anton is an open-source enthusiast and one of the
core developers of the Ruby framework
Hanami .
Waldemar Duletsky asked him about his work and views on Ruby development.
What are you working on now?I work in a healthcare startup that can improve the lives of so many people in the USA. Unfortunately, I cannot tell the details about the product, because I signed the NDA.
If we talk about OpenSource projects, now we are finalizing the version of Hanami 1.1. Also,
Sergey and I are creating a library for
Event Sourcing in
Hanami . It already works without a global state, makes subscribe & broadcast for events, supports multiple adapters and makes it easy to add your own. In the future, she will have a lot of cool features: retrai, building a tree of events and documentation of events out of the box.
')
In Ruby, something similar is done using the Wisper gem ...Yes, he is very similar. But Wisper implements pub / sub in the memory of one instance only. And we want to allow the developer to choose how to handle such messages: in one instance or zaskeylitsya on several.
And how will new adapters be added?It is enough to cut them into a
container . Now we have in-memory and Redis adapters that we can play with. In the future, Kafka, RabbitMQ and possibly PostgreSQL will appear.
How do you see the development of Hanami in the next four years?Now there is a monopoly in the form of Rails. I would like to see a worthy alternative in Hanami. This will allow all frameworks to evolve. Hanami is already solving business problems, and many developers are inspired by this tool. Hopefully in the future we will be able to change the view of Ruby as a dying language and popularize new ideas.
Do you think Hanami will be able to become mainstream in the future?Over the past year, I have seen significant changes in attitudes towards the framework and its ecosystem. This is noticeable on the schedule of downloading gems, the frequency of the appearance of posts, the mention at conferences. A year ago, when Hanami talked about it, people twisted their fingers at their heads, and now they come up and say that they like this framework and they already use it.
Why do you think Rails became a kind of standard in Ruby development?I think there are several reasons for this. First, everyone was tired of verbose Java and PHP frameworks, it was required to create a simple and working solution. Secondly, the framework allows you to quickly launch products that would take weeks or even months to create in other languages. For many, this was a breath of fresh air, and Rails quickly gained popularity.
Now, apart from Rails, there is not a single full-fledged MVC framework. There are Sinatra and other http-frameworks, but they do not allow to take one team and start working on business tasks.
What do you think are the challenges facing the Ruby community?Many of my friends and acquaintances say or say that they are too bored in Ruby. They do the same thing from day to day, which in turn kills motivation. Therefore, many developers are beginning to learn other languages and technologies. I see this as a problem. People lack something radically new, some ideas that will allow them to look at their work differently.
It is important not to stop and offer conceptually new solutions. Now guys from
dry /
rom are doing it. But unfortunately, any new approach —
not only in Ruby — is almost always misunderstood. On the one hand, some criticality should take place, but unfortunately, this kills the motivation to move on and grow as a community.
How do you generally see the path of a Ruby developer?This question is difficult to answer unequivocally. In my opinion, a good developer is interested in the capabilities of different languages and systems. In this case, the specialist himself decides what is good for him and what is not, and in the future he can choose what is really useful and what approaches can be used in his work.
What gem, in your opinion, can serve as an example of an ideal code?I would definitely not show on the Ruby core :). I can’t say that I write good code, I don’t always like it, so it’s hard to talk about such ephemeral notions as quality and beauty of the code. It seems to me that the best gems are those that simply solve existing problems and do not create new ones.
How do you learn something new about Ruby? Do you read blogs or use other sources?I like link aggregators like Reddit. I also use RSS. This allows you to get acquainted with different points of view on the same problem.
For example, an article recently appeared on why Hanami is bad. And there was, in fact, exactly one point: the call method was magically invoked in the framework. Most of the community unanimously tried to explain that this is normal: excessive clarity sometimes hurts. It is very interesting to read such things - you start to look at your work from a different angle.
I also have my own
telegram channel , and its subscribers often send me interesting links.
I remember that you made a platform for joint work on OSS Board OpenSource projects. Are you still doing this project?Yes, I continue to do it now. I think I didn’t push the
OSS Board well enough. It is very difficult to find people who will create tasks there and carry them out, especially if the task is a little more difficult than making changes to the form. The main problem of the project is to find specialists who can add a well-described task, because you need to monitor, update and communicate with developers, and this is very hard work. But still there are people who help, for which I am very grateful to them.
What do you consider your main achievement in your career?On one of the pull request in Rails, I received over 80 comments with questions about each line. I could not finish it, but in the end it became easier to relate to such things.
I also finished the project in
Google Summer of Code . There, a lot of people surrender in the first month, even more in the second, and only a few reach the end.
And what was this project?A plugin for Sidekiq that shows statistics on all tasks. But, unfortunately, there is not enough time, and I abandoned it, although it is a rather demanded library.
What are your main achievements in life?I was not afraid to speak for the first time in my life in English at the
EuRuKo-2016 conference in Sofia in front of an audience of 700 people. It is easier to make a report in Russian, because this is your native language. And when you don't know English very well and never spoke on it, it’s very exciting.
On which of the OpenSource-developers should be equal?Looking at what other developers are doing is definitely worth it. They generate and implement interesting ideas that can be helped to develop or take note. But first you need to focus on yourself and not compare yourself with others.
What are you going to tell about at the conference and why is it worth listening to?I'll tell you about the experience. For the last year and a half, I have been working not only with the framework, but also with its ecosystem. To some extent, I could be called developer advocate hanes of the framework. Therefore, in the report I will try to tell why this work is needed, what mistakes I made and how to take this experience and put it on another framework or technology.
All questions you can ask Anton at the conference.
Come! There will be a lot of interesting things.
And you can share this article with English-speaking friends on
Hype.Codes .
See you!