一覧 最終更新 HOME ログイン

freedomcat.com

RubyKaigi 2018 KeyNote by Matz @仙台国際センター 2018.05.31

名は体を表す

ことわざ「名は体を表す」

名づけ大事。
1.振る舞いに対する名前
2.プロジェクトに対する名前

メソッドの名前の悪い例
yield_self

def yeild_selfs

yeld selfs

end
メソッド名と中身がほぼ同じ→このメソッドを使って何をしたいかがはっきりしない。

ましな名前として
then
に変更
then { |s| "(" + s +") {

メソッド名は意図するような良い名前が必要。

True Names ネイティブアメリカン。すべてのものには真実の名前がある。
真実の名前を知っていてると支配できる。
自分の真の名前はだれにも教えないという文化があった。
支配の有無はともかく、名前は重要でパワーをもつことを意味している。

プロジェクトの名前において、名前は重要。
コミュニティにおいては、求心力になったりしている。

もし、自分がこの言語に「Ruby」という名前をつけなければ
このコミュニティはこうならなかったのではないか。
広く多い人に使われず、RubyKaigiは開催されず、仙台に今日、多くの人が集まらなかった。
わたしがこの言語に「Ruby」と名付けたのは先見の明があった!

But it was 1993.
before Google。石器時代。

もし、今、新言語作り、名前を付けるならRubyという名前をつけない。
たぶん、宝石のRubyの方がたくさんでてくる。グーグラビリティが低いから。

プログラミング言語やOSSで悪いのは
「Go」
これ、Googleからくるというのがねぇw

Swift。ソフトウェアでなくても、Swiftってたくさんある。

金持ちのスポンサーがいれば問題ないってことですね。

しかし、我々が始める時、金持ちのスポンサーはいないので、グーグラビリティは意識するの大事。
単語を組み合わせるのとか。Ruby on Rails。
他の原語で
Streem

Jpyterもある。スペルをいじり、グーグラビリティの高い名前を作る。

変な単語を選ぶ。
Hanami
Nokogiri
Kaminari
何やってるかが分からない欠点はあるが、グーグラビリティは高い。

メソッド名、クラス名、プロジェクト名、名前重要。

To be a good programmer , youhave to be sensstive to names.

2.「時は金なり」

Time is Value 実際は、「時は価値である」
時間は平等なので、すべての人は24時間与えられている。
残念ながらだいたい、無駄遣いしている。
眠るのは仕方ない。
やることはたくさんあるが。
何から順番にするかは重要な選択。

わたしたちの優先順位、どういう人かを決定づける。
Splatoon
Movies
Comics
Programming
...

時間を有効に使うことは大切。
プログラミングにおける時間の使い方。
ソフトウェア開発、圧倒的に長い。いかに短い時間でいかに価値のあるソフトウェア、コードを書くか。
Rubyは時間を有効活用する傾向がある。

Ruby Helps Us Become Productive

Powerful
Concise
Flexible

Rubyがパワフルなのは
Lot of useful Methods
たくさんのメソッドがあって、やりたいことがだいたい備えられてる。
あなたが文字列についてやりたいことはだいたいできるよ。と。

Lot of Libraries,Frameworks

Lot of Firendly Mentors
ほとんどの人にとってどの言語を選ぶかは質問をするとき応えてくれる人がそばにいるのが一番良い言語。
今、Rubyコミュニティは成長していて、たくさん聞ける人がある。

Simple Syntax シンプルな文法

Abusable Syntax

Rubyを英語っぽく書く気持ちは分からないが、やろうとすればできる。
Trickというイベントが開催される。
見てもわからないが3日目に表彰があるのでぜひ見てください。

No Types Description
Compact Program

Paul Graham 簡潔さは力なり エッセイ
一番最初のプログラミング言語が1995年代に生まれてからたくさんの原語が出てきた。

Paul Grahamはマクロを使って圧縮したがる。
Ruby はメタプログラミング。DDLを使ったり、DSLを使うアプローチをとる人がたくさんいる。
All Programs are Small Enough to Grasp

理想はコンフリクト起きないでほしい。

現実世界は複雑なので、言語も複雑に。

So We Ned More Help from Tools


Rubocop (るぼこっぷ)

好みはともかく、Toolsによってプログラミングスタイルをチェックするというのは、有効なアプローチ。

静的にコード解析する、型解析するアプローチもある。
Yusuke Endo
Soutaro Matusumoto
静的な型チェックを行う発表をする。

Peformance
Ruby遅い。有名。原因は1.8以前、効率の悪いインタプリタだった。
1.9、ヤールという名前のインタプリタになって改善された。

JIT Compiler Ruby 2.6から。組み込まれてる。

Ruby2.6は将来、中間表現を追加し、より高速なバージョンも開発されてる。

Takashi Kokubun
Vladmir makalov
が発表

Concurrent Ruby
最近はマルチコアなCPUが増えている。1台のマシンに複数コアがあるのが普通。
RubyのJILの1度に1個のコアしか動かせないのはデメリット。

パフォーマンスだすには複数コア対応したい。

Ruby の並列実行帰納を追加する処理がでてきた。
Koichi Sasada →発表
Eric Wong
がパフォーマンス改善にコミット、飛行機乗りたくなくて来ない。

Because time is Money
Rubyのパフォーマンスが3倍になったりすると、クラウドで必要なホストの数が1/3になるのは極端だが減らせる。

サービス運営のお金が少ない。
パフォーマンスの改善はお金に繋がる。

Beacuse Only Paranoid Survives

3.「塞翁が馬」中国の故事

年寄りが良い馬持ってる。
ある時、馬が逃げる。
周りの人「残念だね」
歳より「まだわからん」
何日かたったら馬が良い野生馬を連れてきた
周りの人「良かったね」
年寄り「分からない」
年寄りの息子が落馬して骨折。
周りの人「残念だね」
年寄り「分からない」
戦争がおこる。息子は骨折してたので徴兵を免れる。
めでたし。

1995 Ruby
What's Ruby?

名古屋の公開講座でRubyについて解説する会。
大学へ「宝石の鑑定でも教えてもらえるのか?」という問い合わせあった。

「Ruby知ってますよ!でも使ってません」がっかり。

2004 Rails、
2005 話題になった
2010 Rubyすごい言われるようになった。カンファレンスその時期。スポンサーもその時期。

Ruby is Great!

2013以降、興奮が冷めてきて、安定的。

Ruby is Dead.
遅いから。
ブラウザで実行できない。
最近の言語みたいに静的な**がないから
毎年、Rubyは死んでる。

何度でも蘇るさ。

一喜一憂するのはどうかな。
価値を提供し続けるの大事。

「ゆく河の流れは絶えずして、しかももとの水にあらず」
少しずつ変化している。

互換性大事。
Ruby3の話。こんなこと変えたい、あんなこと変えたい。
何年もコミュニティ減退するのはしたくない。

Python2,3で何年もギャップがあり、Python3よかったのに、Python2をみんな使う問題。
Python3が出たのは10年以上前。
新しいバージョン出してから、10年以上古いバージョンをメンテしつづけるの、
コミュニティに届けられない事態がおこる。

いろんな言語コミュニティがあり、コミュニティが分断されるということがおこる。それは残念なこと。

今後、Ruby3が出たとして、分断を生みたくないし、もし、分断が生じたらその期間は短くしたい。

だからこそ、互換性重要。

わたしたちは変化を止めてはいけない。

生産性を高めるために、さまざまなアプローチをして、すべてが成功するわけではないが、
改善し続ける必要がある。

毎年、Rubyは死んだといわれると不安になる。
心配するのはやめて、前に進み続けるの重要。

We Will Be More Productive

Rubyはいろんなものを生産的に価値を生み出すことができるが
残念ながらRubyを使って複雑な領域、そこでもRubyが役立つように機能を提供したい。

その結果、生産的にソフトウェアを開発できる。

この発表でもできるように、お願いしてやってもらうもの、自発的にでてくるもの、あって、自発的なものを取り込むこともしてきた。

松田さんすごいのは、自分が作ったものを自分で発表する機会を提供した。

Rubyの未来について、重要なプロダクトがこの3日間で発表される。

わたし自身はRubyをCで開発することしてない。ちょっとメソッド追加が5年ぶりくらいに。

誰がRubyを開発しているか。コミッタ―たち。

コミュニティにこんな風にRuby治すと良いという提案。

コミュニティがRubyを成長させてる。

どういう名前をつけるかの最終決定権はわたしにあるが、どういうアイディア、機能を盛り込むかはコミュニティがどんんどん発信してくれるので、取り込んでる。

Rubyはわたしがみなさんに提供するものではなく、
コミュニティが与える提案やサジェスチョンを、取捨選択して、提供するものになっている。

3日間、Rubyがこうよくなるということを考える時間だと良いなぁ。

隣の人たちと話し合ってもっとRubyがよくなってほしい。
それがRubyKaigiという場です。

このキーノートは以下のスポンサーの提供でおおくりします。(割愛)

今日はいてるジーンズはZOZOスーツで採寸して作りました。

QA

ない。ではおしまい。