Last weekend I was at EuRuKo 2016 converence in Sofia, Bulgaria. The conf was really cool and it featured a diverse and interesting presentations. I'll share some notes on what caught my eye.
Matz opened the conference giving a presentation about the future of Ruby. Some interesting announcements include: Ruby 3x3 - Ruby 3 will be 3 times faster than Ruby 2; Global Interpreter Lock (GIL) will get replaced with another GIL (Guild Interpreter Lock) for better concurency abstraction; Adding static typing to Ruby is still on the radar of things.
Xavier Noria had a nice presentation on code readability, comparing different versions of similar code snippets and discussing which one reads better and why. Pretty straight forward stuff, but nonetheless a good presentation. One of the key points he put out there was having Empathy for the readers of your code: "Constantly think for the readers of your code. Not because of you. Because of them."
Andrew Radev had a good presentation on programming principles. He shared a funny story from a co-worker building a small gem with some native C extention that introduced tech debt to the project. He was making a good point that it's easier to ask for forgiveness than permission.
Terence Lee gave a presentation on Kafka and using it with Rails. I haven't used Kafka before, but I got a better idea about its distributed nature and how it compares with Redis pub-sub and how it could be a replacement for Sidekiq background processing by rolling out a custom solution with Kafka.
José Valim opened the second day with a great presentation on Elixir. He demoed Elixir tooling, the power of Erlang and how building applications in a functional language is conceptually different from object-oriented language. New concepts of applications, processes and supervisors and the benefits of Elixir for building fault-tolerant applications. I like that Elixir is doing things the right way and is cherry-picking good ideas from the predecessors.
Hiroshi Shibata gave a talk on how to begin developing Ruby core. Many links, directions and guides on the process. It's interesting how Ruby core team members want to make jokes on Matz. It's also interesting to see such presentation and watch Matz' reactions. I remember EuRuKo 2013 in Athens and Koichi Sasada doing the same thing.
Carina C. Zona gave a presentation on the consequences of insighful algorithms. Plenty real world examples of an emotional pain a web application can cause to humans. Discussing social and ethic aspects including examples of Google, Facebook and others popular websites.
André Arko gave a nice presentation on maintaining bundler and rubygems. Thoughts on why he founded Ruby Together NGO and the need for contributors to maintain the core libraries of the Ruby ecosystem. Exciting thing coming up will be the merge of bundler and rubygems.
Nick Sutterer closed the conference with a great talk on APIs and design flows. He did a good show and had valid points on why Rails should accomodate more layers and not isolate itself to the MVC paradigma and DHH's Rails doctrine. The example he focused most was getting model validations out of the model in another layer that will allow for multiple validations depending on the context vs the current singleton design. I do agree with his points but I don't want the solution to over-arcihtect things or introduce massive DSLs.