---
title: "RubyKaigi 2018 Day one"
description:
  "Ground report of Day one from Sendai, Japan where RubyKaigi 2018 is happening"
canonical_url: "https://www.bigbinary.com/blog/rubykaigi-2018-day-one"
markdown_url: "https://www.bigbinary.com/blog/rubykaigi-2018-day-one.md"
---

# RubyKaigi 2018 Day one

Ground report of Day one from Sendai, Japan where RubyKaigi 2018 is happening

- Author: Prathamesh Sonpatki
- Published: May 31, 2018
- Categories: Ruby

[RubyKaigi](http://rubykaigi.org/2018) 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](https://twitter.com/_cha1tanya). 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.

### Matz's keynote

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 `yield_self`. Matz added alias `then` to the `yield_self` method
[yesterday](https://github.com/ruby/ruby/commit/d53ee008911b5c3b22cff1566a9ef7e7d4cbe183).
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](https://www.ruby-lang.org/en/news/2018/02/24/ruby-2-6-0-preview1-released/)
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.

### ETL processing in Ruby using Kiba

[Thibaut Barrère](https://twitter.com/thibaut_barrere) gave a talk on
[Kiba](https://www.kiba-etl.org) - 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](https://speakerdeck.com/thbar/kiba-etl-v2-rubykaigi-2018).

### Architecture of Hanami applications

Next I attended talk from [Anton Davydov](https://twitter.com/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.

### Lightning talks

The last session of the day was lightning talks.

The talk on [Rib](https://github.com/godfat/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 [Watson](https://github.com/Watson1978) had worked on
improving the performance of JSON gem. He achieved this by using CRuby API
wherever applicable and avoiding heavy calls like `rbfuncall`. Check these two
[pull](https://github.com/flori/json/pull/346/)
[requests](https://github.com/flori/json/pull/345) for benchmark and more
discussions.

Apart from these talks, there were lot of other talks as well which I could not
attend.
[Stripe team](http://rubykaigi.org/2018/presentations/DarkDimius.html#may31) is
building a [type checker for Ruby](https://sorbet.run) which looks very
interesting and is extremely fast.

[Bozhidar Batsov](http://rubykaigi.org/2018/presentations/bbatsov.html#may31)
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](http://rubykaigi.org/2018/schedule#may31) 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!

## Links

- [Human page](https://www.bigbinary.com/blog/rubykaigi-2018-day-one)
