Euruko 2024 Conference in Sarajevo - a personal recap

23 Sep 2024 – Gdynia

September 11-13 I was in Sarajevo for my personal annual celebration of Ruby development – the Euruko conference that I’m attending since 2008 edition in Prague.

It was impossible to attend all the talks due to three (!) tracks of the conference. It was also my first time in Sarajevo so I deliberately chose talks that had an interesting abstract, skipped ones that I already attended and spent some time walking around Sarajevo and enjoying this city’s rich history and culture.

Radan Skorić posted a way more complete recap on his blog and I suggest you read his reflection together with mine. We attended different subsets of talks so you won’t waste time on repetitions.

“Simplify, Then Add Lightness” by my old friend and longtime partner Piotr Szotkowski had a title from Lotus Cars founder and a fun mix of general observations about writing good software with some personal recollections. Initial history lesson then evolved into a list of libraries, tools and approaches to simplify writing software. Mrujs, ActionCable, Hotwire, Turbo, Stimulus and Strada to begin with. Inspiring websites and approaches like Radical Simplicity and Amazing CTO. And more tools, like Unpoly on the frontend and LiteStack on the backend. Lots and lots of awesome things to check and learn, so that we can ship better software quicker and with smaller teams, while keeping it maintainable.

“Mechanical Sympathy” by Tim Kächele was a crunchy one, showing real differences even in Ruby code when some deeper knowledge on how the CPU operates gets applied, with cache hits and misses on even pretty simple looping. I need a recording and slides from this one because I don’t remember all of it.

“20 years of YARV” by Koichi Sasada brought back memories to my first ever Euruko in 2008, where Koichi had a second talk right after Matz’ keynote. Koichi has shown the history of YARV and its limitations, appreciated the improvements brought by YJIT and shared some plans for near-future exploration of another approach to a Ruby Virtual Machine. That last part about future was the most interesting!

Yuta Saito

“What you can do with Ruby on WebAssembly” by Yuta Saito was the best talk of the conference for me, the one that made it worth my while to buy tickets and travel. Yuta is the author of ruby.wasm. Talk started with a bit of background on what is WebAssembly and then listed existing out-of-browser runtimes like Wasmtime, WAMR and WasmKit. I knew there were out-of-browser WebAssembly runners, as one powers Shopify’s new extension engine, but I had no idea they’re so numerous and mature already (WASI support). Yuta then showed that ruby.wasm runs Rails (!) and to prove it he ran entire Mastodon in the browser (!). That was jaw-dropping. Yuta then showed some of the online tools based on ruby.wasm like play-ruby, RunRuby and Ruby-Next. I also liked the history of porting CRuby to WebAssembly, with Asyncify, compiling gems into wasm using VFS, cross-compiling C extensions with mkmf, prelinking the shared libraries. And then all the new stuff like WASM component model, WIT format being the main IDL for the component model. Crunchy, both deep and wide, engaging and fun – I really loved this talk and I suggest you watch the recording or at least go through the slides.

Yuta Saito

Yuta Saito

“Concurrency in Ruby: Threads, Fibers, and Ractors Demistified” by Magesh. He gave this talk already at RubyConfIndia 2023 but it was good to see it in person. Started from the basics, how does concurrency differ from parallelism. Then how threads work (“it gets messy”), how Fibers work with multiple examples. Magesh then went on to explain and show Ractors, Ruby’s latest (in version 3.0.0) addition to the parallelism – and that one was the best introduction to Ractors I ever saw. Totally worth the time.

“Friday opening keynote” by Dave Thomas was… kind of wierd. A history of languages and technologies that inspired Dave throughout the years and taught him something new, carried over to the next technology. It’s not exactly applicable to someone entering the field recently, but it was still interesting to see concepts introduced not only by Basic but then by Simula-67, APT (for CNC) and Macro-11 Assembler. It’s one of those talks that have a deeper meaning: it’s not about replicating a path, it’s about developing a mindset and keeping it fun to maintain one’s passion for programming.

Yuta Saito

“How does Lrama make the Ruby parser grammar G.O.A.T.” by Yudai Takada was an introduction to LRama, a new parser generator written in Ruby to replace Bison while still working on Bison-style grammar files. LRama and Prism are the duo introduced in Ruby 3.3.0 for better, more maintainable and future-proof parsing stack for further development of Ruby and language-conscious tooling. Good talk, engaging, rich in details, giving a good overview for someone with not much exposure to LRama and parser generators in general.

“Workshop: SQLite on Rails” by Stephen Margheim was absolutely awesome. I follow recent developments in SQLite in Rails since at DHH’s keynote at Rails World 2023 and read Stephen’s blog, so I expected it to be good, even for someone like me who already knows half of this stuff. And oh boy did Stephen deliver. This workshop was my second favourite part of the conference (right after Ruby WASM talk by Yuta). Stephen not only put the workshop app on Github but he even put the entire workshop script as markdown files within workshop directory, so that everyone can do the entire workshop on their own whenever they had to skip it or just couldn’t do a successful bundle install for the first hour due to overloaded hotel wifi (like yours truly). Clone this repository and do that workshop, it will level you up as Ruby/Rails developer, even if you won’t use SQLite in production in the near future.

Yuta Saito

“Friday closing keynote” by Matz was, as usual, a brief history of the Ruby language with overview of current work, future plans and visions. I’ve been attending Matz’ keynotes since Euruko 2008 and I can say that those keynotes are a good indication of where community is currently at in terms of optimism and outlooks for the future. Matz seems to have a lot of new energy after Ruby and Rails dip in popularity around 2015-2019 and I could clearly see that with YJIT, WASM support and developments like Prims+LRama Matz is very optimistic about the future of Ruby and its ecosystem.

I really enjoyed this Euruko. Some of the talks and workshops made the entire trip, including troubled return day (terrible rains and floods in central Europe), worth the hassle. Can’t wait for the next one, Euruko 2025 in Viana do Castelo, Portugal!

Sarajevo City Hall above: Sarajevo City Hall