---
title: 【Ltech#0】RubyKaigi2018報告会 はじめてのRuby Kaigi~ CrubyだけがRubyじゃない~
tags:  #lifull #tech #ruby #rubykaigi #半蔵門 #麹町 #勉強会 #ltech  
author: [株式会社LIFULL](https://convert.docswell.com/user/LIFULL)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PLE1L992EG.jpg?width=480
description: 2018/06/05（火）開催 Ltech#0  RubyKaigi2018報告会講演スライド 登壇者：長崎 信博  はじめてのRuby Kaigi ~ CrubyだけがRubyじゃない~
published: June 08, 18
canonical: https://convert.docswell.com/s/LIFULL/5QE6J5-%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AERubyKaigi-Cruby%E3%81%A0%E3%81%91%E3%81%8CRuby%E3%81%98%E3%82%83%E3%81%AA%E3%81%84
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PLE1L992EG.jpg)

はじめてのRUBY KAIGI
~ CRUBYだけがRUBYじゃない~
1
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 2

![Page Image](https://bcdn.docswell.com/page/8GEWVQQ2J2.jpg)

自己紹介
chisso@Qiita
LIFULL HOME’S事業本部
分譲マンション事業部UXユニット開発グループ
2014年に株式会社LIFULL入社し、社歴＝エンジニア歴。
サービス開発に合わせて技術はなんでも手を出します。
Ruby (on Rails) , Golang, Javascript, PHPあたりを書きます。
エンジニアとしてカンファレンスへの参加は今回が初めて。
対外的なイベントでの発表も今回が初めて。
2
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 3

![Page Image](https://bcdn.docswell.com/page/W47Z4WW4J3.jpg)

RubyKaigi 2018
2018/5/31 〜 2018/6/2
@宮城県仙台市 仙台国際センター
http://rubykaigi.org/2018/venue
3
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 4

![Page Image](https://bcdn.docswell.com/page/KYJ63GGGJV.jpg)

RubyKaigi 2018
• 3会場で同時進行
• 日本語/英語の公演がほぼ1:1
• これを3日間
http://rubykaigi.org/2018/schedule
4
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 5

![Page Image](https://bcdn.docswell.com/page/5GJ5LVVX74.jpg)

RubyKaigi 2018
days.first (左)
https://photos.google.com/share/AF1QipONYGO6fp08hZKobTa8gZfORg8CS-63TV-USXUZkKFpmQV-cMVIR4mUN95g5dNCw?key=aG5GLVZQZHRfdXRyU29tZUpNTkc0NnhBUzNfX2xR
days.second (右)
https://photos.google.com/share/AF1QipM2rfjEQeloDMI6qaibgo_MxyHw5ufoWcfQ1RVPcoOIrEOeahmiHBuveObhI5jFtg?key=aUstaEJyV3BuclFvZD
FZd2JkVXBxbm5kVHRlV0lB
5
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 6

![Page Image](https://bcdn.docswell.com/page/V9E2L33QJR.jpg)

スポンサーブース
days.first (左上)
https://photos.google.com/share/AF1QipONYGO6fp08hZKobTa8gZfORg8CS-63TVUSXUZkKFpmQV-cMVIR4mUN95g5dNCw?key=aG5GLVZQZHRfdXRyU29tZUpNTkc0NnhBUzNfX2xR
days.third (左下・右)
https://photos.google.com/share/AF1QipP5DE4XOmGpYG9fcCC5omz6rDUXFKvMZ
gKTj7DhyvA6kbKZzkSSEMWsxOKwkK57dQ?key=SEtfOFg2b3IwZEtoNFlydjlxdnpUX2F
pVF9VcmN3
6
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 7

![Page Image](https://bcdn.docswell.com/page/5D7YQ11YJM.jpg)

スポンサーブース
days.first (左上)
https://photos.google.com/share/AF1QipONYGO6fp08hZKobTa8gZfORg8CS63TV-USXUZkKFpmQV-cMVIR4mUN95g5dNCw?key=aG5GLVZQZHRfdXRyU29tZUpNTkc0NnhBUzNfX2xR
days.third (左下・右)
https://photos.google.com/share/AF1QipP5DE4XOmGpYG9fcCC5omz6rDUX
FKvMZgKTj7DhyvA6kbKZzkSSEMWsxOKwkK57dQ?key=SEtfOFg2b3IwZEtoNFl
ydjlxdnpUX2FpVF9VcmN3
7
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 8

![Page Image](https://bcdn.docswell.com/page/2VENK22RE8.jpg)

Keynote by Matz
名は体を表す
プログラミングは実体がなく概念
名前をつけないといけない
振る舞いに対する名前
クラス、メソッド、変数などの概念
なにをしているかよりなにがしたいか
yeild_self -&gt; then (feature 14594)
https://github.com/ruby/ruby/commit/d53ee008911b5c3b22cff1566a9ef7e7d4cbe183
プロジェクトに対する名前
コミュニティの旗印、求心力
Rubyという名前をつけなければ何も起きなかった
https://photos.google.com/share/AF1QipONYGO6fp08hZKobTa8g
ZfORg8CS-63TV-USXUZkKFpmQV-cMVIR4mUN95g5dNCw?key=aG5GLVZQZHRfdXRyU29tZUpNTkc0NnhBUzNfX2xR
8
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GY79V11ZE3.jpg)

Keynote by Matz
• 時は金なり
• 開発時間
いかに早くするか
• 実行時間
パフォーマンス
1.8以前はインタプリタの影響でおそかった。2.6からはJIT compiler
並列実行
GVLが制約になってきた -&gt; Ruby 3x3
• 塞翁が馬
• いいこともあれば悪いこともある
1995 ~ 2004 Rubyってなに？
2005 ~ 2012 Railsが公開されて、使われるようになりもてはやされる
2013 ~ 2018 安定期、Rubyは死んだ
• 一喜一憂せずに価値を提供し続ける
互換性は重要。Ruby 3で1.9の悲劇を繰り返したくない。
移行が進まず、コミュニティが停滞・分断する。
両方のバージョンをメンテしなくてはいけなくなる。
9
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 10

![Page Image](https://bcdn.docswell.com/page/5G78P43Y7D.jpg)

Keynote by Matz
Q: Ruby 3には型宣言が入るのか？
A: Rubyのコードの中に型宣言がはいることはない
（Matzの意思）
確かに、静的な型解析があったほうが嬉しいこと
は多い。
遠い将来、静的な型チェックは行われるが
書く必要がない世界が来るんじゃないか。
型アノテーションが古くなる未来が来ると思ってる
https://twitter.com/yukihiro_matz/status/1002821853772050433
10
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 11

![Page Image](https://bcdn.docswell.com/page/ML7L16V97R.jpg)

コード懇親会 By Speeさん
Rubyは楽しくプログラミングできることを大事にしているプログラミング言語です。みなさ
んも、いつもRubyで楽しくプログラミングしているはずです。だったら、いつものようにコー
ドを書きながら懇親すると楽しそうじゃないですか！
http://tech.speee.jp/entry/2018/06/02/154701
• 好きなテーマを選んでチーム形成
• チームごとに開発
11
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 12

![Page Image](https://bcdn.docswell.com/page/54EMW5GV7W.jpg)

Ovto / Opal – Rubyでフロントエンド
NaCl (ネットワーク応用通信研究所)の原さん（@yhara）と同卓した縁でOvtoのハンズオン
Rubyで書けるシンプルなクライアントサイドWebフレームワークを作った
https://qiita.com/yhara/items/07eeb2c165e35964db76
特徴
Rubyで書ける
Redux風のAPI (Virtual DOM＋シングルステート)
実装が短い(lib/以下の合計が721行)
バックグラウンドにあるのは、
OpalによるRuby -&gt; Javascriptへのコンパイル
12
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/ZPERY3ZW79.jpg)

Truffle Ruby
Parallel and Thread-Safe Ruby at High-Speed
with TruffleRuby
3日目のkeynote
Truffle Rubyとは？
-&gt; JRubyのfork。JVM上で動く。
Truffle Rubyを使うことで
1. Rubyは高速化可能
2. 安全に複数コアで並列処理が可能
https://photos.google.com/share/AF1QipP5DE4XOmGpYG9fcCC5omz6rDUXFKv
MZgKTj7DhyvA6kbKZzkSSEMWsxOKwkK57dQ/photo/AF1QipNe1qoxPF7J7sAYQcOwxSk4ZFB3Metr_S2Woes?key=SEtfOFg2b3IwZEtoNFlydjlxdnpUX2FpVF9Vc
mN3
13
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/NP7XG49VJX.jpg)

Truffle Ruby
https://speakerdeck.com/eregon/parallel-and-thread-safe-ruby-at-high-speed-with-truffleruby
Rubyは高速化可能
• インライン化と定数の畳込みを行うことで劇的に高速化する
• マイクロベンチマークではCRubyに比較し32倍以上高速
• MJITでは、Rubyに対する知識が不足して、インライン化してよいのかどうかなど判断
できない
安全に複数コアで並列処理が可能(WIP)
• CRuby, JRubyの並行処理には課題がある
• Mutex#synchronize忘れたり
• Collection（ArrayやHash, Object）をオーバーヘッドなしにthread-safeにする
• 複数スレッドからアクセスされる場合のみ同期オブジェクトにする
14
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 15

![Page Image](https://bcdn.docswell.com/page/637K4ZP5JD.jpg)

mruby
mrubyとは
省メモリ版のRuby実装。組み込みやすい。
RubyGemsに似たmrbgemsがあり、ビルド時に設定してコンパイル。
How happy they became with H2O/mruby, and the future of HTTP
Design pattern for embedding mruby into middleware
https://photos.google.com/share/AF1QipP5DE4XOmGpYG9fcCC5omz6rDUXFKvMZgKTj7DhyvA6kbKZzkSSEMWsxOKwkK57dQ/phot
o/AF1QipNe1qoxPF7J7sAY-QcOwxSk4ZFB3Metr_S2Woes?key=SEtfOFg2b3IwZEtoNFlydjlxdnpUX2FpVF9VcmN3
15
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4LJ3LDX1E5.jpg)

mruby
How happy they became with H2O/mruby
https://www.slideshare.net/ichitonagata/how-happy-they-became-with-h2omruby-and-thefuture-of-http
• nginxのconfファイルって
• リーダブルじゃない
• 変数などを使ってリクエストごとに処理を分けたりしにくい
• H2Oにmrubyを組み込む
• Rubyのコードとして動的処理を実装
• デバッグしやすい！
16
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


# Page. 17

![Page Image](https://bcdn.docswell.com/page/V8JDNP2KEG.jpg)

まとめ
• はじめてのRubyKaigi
• 会場はきれい。ランチもコーヒーも出て至れり尽くせり。
• スポンサーブースでいろいろもらえて楽しい
• Rubyの未来をみんなで考える場
• コミュニティのために「集まる」
• 普段利用しているだけだと知れないことに触れられる
• コアすぎてわからない辛さはあるが、自分の位置を知れてよかった
• CRuby以外のアプローチ
• Truffle Rubyの可能性
• mrubyでかゆいところに手が届きそう
17
© LIFULL Co.,Ltd.
本書の無断転載、複製を固く禁じます。


