We write about Ruby on Rails, React.js, React Native, remote work, open source, engineering and design.
RubyKaigi is happening at Sendai, Japan from 31st May to 2nd June. It is perhaps the only conference where one can find almost all the core Ruby team members in attendance.
This is Prathamesh. I bring you live details about what is happening at the Kaigi over the next three days. If you are at the conference please come and say "Hi" to me.
RubyKaigi started with Matz's keynote. He used lot of proverbs applying them to the Ruby language and software development.
He talked about one of the hardest problems in programming - naming with an example of
Matz added alias
then to the
yield_self method yesterday. He also discussed about
googlability of the names.
Ironically, Ruby was named in 1993 which was before Google had started.
Matz also touched upon JIT option being introduced in Ruby 2.6 and guild as the ways the language continues to improve in performance and concurrency. There is a talk on Guild by Koichi Sasada on second day of RubyKaigi which will have further details about it.
Matz ended the keynote talking about the need of maintaining backward compatibility and not running into the situation like Ruby 1.9 or Python 3 where the compatibility was not maintained. He also stressed upon the community aspect of the Ruby language and its importance in the success of Ruby.
Thibaut Barrère gave a talk on Kiba - a data processing ETL framework for Ruby. He discussed about the design decisions that went into the version 1 and how it evolved to version 2 which was recently released.
Kiba provides programmatic API which can be used in the background jobs instead of shelling out. It also has support for multistep batch processing.
Thibaut also explained how it can be used for data migration, reusing the components and big rewrites. He observed that the performance has been gradually increasing with each Ruby release over the years.
The slides for this talk can be found here.
Next I attended talk from Anton Davydov on architecture patterns in Hanami apps. He discussed about the problems typical Rails applications face and how abstractions can address those issues. He explained how Hanami tries to achieve business logic isolation, avoid global state, sequential logic and test coverage. Functional callable objects, containers, dry-containers, dry-inject and event sourcing are some of the abstractions that can be used in Hanami apps that help in achieving this.
The last session of the day was lightning talks.
The talk on
Rib(wordplay on IRB) was an interesting one. Rib is yet another interactive Ruby shell but lightweight compared to IRB and pry. It has some nice features like auto indent, multiline history, filtering of callers. It can also
beep when the console starts, so you know it is time to get back to work.
I liked another talk where
had worked on improving the performance of JSON gem.
He achieved this by using CRuby API wherever applicable and avoiding heavy calls like
Check these two
requests for benchmark and more discussions.
Bozhidar Batsov gave a talk on Rubocop project and how it has evolved over the years. There was also a talk on Karafka - event driven architecture in Ruby. This talk was a good precursor to the Hanami talk where event driven architecture was mentioned again.
Other talks from day one ranged from memory management, playing with Ruby syntax, code highlighter, deep learning, C extensions to Rubygems.
That's all for the day one. Looking forward to the day two already!