Last weekend I had the opportunity to attend RubyRussia 2019. In this post I will give a brief description of some of the great talks as well as some interesting the things the speakers mentioned.
About the conference
RubyRussia is the main conference in Russia focused on the Ruby programming language. This year it celebrated its 10th anniversary with around 800 attendees. The event took place in Moscow. The organizers gathered speakers from all different backgrounds and countries (Russia, of course, Germany, Spain, Bulgaria, Czech Republic, Serbia, United States, United Kingdom) to spread their knowledge and share their experience with the Ruby community.
The future of Ruby3
The conference started with a warm welcome from the organizers, followed by the speech of Yukihiro Matsumoto, creator of Ruby. He talked about the improvements that will come with Ruby3, in regards of static analysis, performance, and concurrency. It will be released in December 2020.
Ruby3: no type annotations compromise #RubyRussia pic.twitter.com/SdbpuWozXl
— Vladimir Dementyev (@palkan_tula) September 28, 2019
Zeitwerk: A new code loader
The next talk was done by Xavier Noria about Zeitwerk, a more efficient code loader for Ruby that was developed by him, and which will be introduced with Rails 6. He talked about the limitations of the old classic engine of loading things, technical aspects of the implementation of Zeitwerk, and how to use it in non-rails projects. With Zeitwerk you no longer need to worry about require statements. As an example, he showed how Zeitwerk was used by nanoc (a static-site generator), and they were able to delete many require calls thanks to this. A nice thing about Zeitwerk is that it’s an independent gem (separate from Rails), so you can use it as a dependency in any project.
Speeding up Initial Rendering of Rails Pages with render_async
In this talk, Nikola Đuza exposed render_async, which is a gem that uses Rails and Javascript to load partials asynchronously, and was meant to solve problems related to slow page loading time. He presented some code examples on how to use this gem.
.@nikolalsvk at #RubyRussia pic.twitter.com/f17GeOzkZi
— Mariam (@maryiam) September 28, 2019
Among other talks (where also slides and more info are available) were “Ruby network workflow: REST, JSON, GraphQL or gRPC?” by Grigory Petrov, “JIT compiler improvements in Ruby 2.7” by Takashi Kokubun, “Break, a debugger in plain Ruby” by Genadi Samokovarov, “Going functional with algebraic effects” by Nikita Shilnikov, “Testing Microservices the Right Way” by Tatiana Shepeleva, Solving architectural problems with OOP in pictures by Ivan Nemytchenko. You can check the rest of the talks on the conference website.
If — The Vodka of Ruby
Nick Sutterer, creator of trailblazer, wrapped up the conference with this talk, where he covered some techniques on how to prevent ending up with messy code due to excessive usage of “if” statements. He didn’t mean we should never use “if’s” but pointed out that its over-usage often makes software harder to understand and maintain.
My impression
This experience made very clear to me that Ruby is not dead or close to being, but continues to progress while still being a fun language, backed by a large community that makes it stronger every day. Being my first time in Moscow, I enjoyed not only the conference but also the city and its beautiful architecture. Well organized event and great location.