楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー...

171
Powered by Rabbit 2.1.8 Second System Syndrome 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエーション Heroku まつもとゆきひろ Yukihiro "Matz" Matsumoto @yukihiro_matz

Transcript of 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー...

Page 1: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

Second System Syndrome

楽天技術研究所ネットワーク応用通信研究所

RubyアソシエーションHeroku

まつもとゆきひろYukihiro "Matz" Matsumoto

@yukihiro_matz

Page 2: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ソフトウェア開発Software development

Page 3: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ソフトウェア開発は難しいSoftware development is hard

Page 4: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

誤解もあるIt's often misunderstood

Page 5: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

設計してコーディングDesign then code

Page 6: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

間違いWrong!

Page 7: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ソフトウェア開発は設計であるSoftware development is designing

Page 8: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

間違った前提による困難さDifficult to work on false assumption

Page 9: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

設計=デザイン

Page 10: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

デザインは難しいDesign is hard

Page 11: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

何を作るべきか知らないWe don't know what we should make

Page 12: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Page 13: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

欲しがるものを作ってはいけないWe shouldn't make what they want

Page 14: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

顧客に何が欲しいか尋ねたら「速い馬」と答えたろう

ヘンリー・フォード

Page 15: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

生活を変えるものを作るMake what changes their lives

Page 16: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

存在しないものを創造するCreate something that have never existed

Page 17: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

デザインは決断であるDesign is decision

Page 18: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

決断は難しいDecision is hard

Page 19: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

未来はわからないからBecause the future is unknown

Page 20: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

状況が変化するからBecause the situation changes

Page 21: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

昔は良かったGood old days

Page 22: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

目的は明快だったThe target was clear

Page 23: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

数値計算Numerical calculation

Page 24: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

事務処理Business processing

Page 25: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

良き昔は過ぎ去ったGood old days have over

Page 26: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

今は解を求めてさまようNow we struggle to find the solution

Page 27: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

解はないかもしれないThe solution may be illusion

Page 28: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Ruby

Page 29: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Rubyを公開した時(1995年)When I released Ruby in 1995

Page 30: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

「スクリプト言語にオブジェクト指向は要らない」

Some said we don't need OO for scripting

Page 31: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

間違ってたBut they were wrong

Page 32: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

何が欲しいか聞かなかったI didn't ask them what they want

Page 33: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

私が未来で使いたいものを作ったI created what I wanted to see in the future

Page 34: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

わからない人もいたSome didn't understand what they saw

Page 35: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

気にしなかったI didn't care

Page 36: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

10年続けたI kept working for 10 years

Page 37: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

「当たり前」になったRuby became new normal

Page 38: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

未来の「当たり前」を作るCreate new normal

Page 39: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ソフトウェア開発の本質The essence of software development

Page 40: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

良いソフトウェアを作ったSuppose you have created the great software

Page 41: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

そこで終わりじゃないIt's not the end of your development

Page 42: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

未来はわからないからBecause the future is unknown

Page 43: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

状況が変化するからBecause the situation changes

Page 44: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

生まれた瞬間から古びるソフトウェアSoftware gets older soon after created

Page 45: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

変化する状況への対応We have to adapt to changing situation

Page 46: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

時間が経つにつれてAs time goes by

Page 47: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

システムはより大きく複雑にSystems will go bigger, more complex

Page 48: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

保守も難しくなるMore difficult to maintain

Page 49: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

複雑なシステムがイヤになった時When we become sick of complex systems

Page 50: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

セカンド・システム症候群が起きるSecond system syndrome will come

Page 51: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

セカンド・システム症候群Second system syndrome (SSS)

Page 52: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

廃棄再創造希求症候群Scrap and build syndrome

Page 53: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

症状Symptoms

Page 54: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

すべて捨てたい誘惑Temptation to throw away everything

Page 55: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ゼロから作り治したい誘惑Temptation to create everything from scratch

Page 56: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

もっと綺麗なシステムが作れるという幻想

Illution that we could create cleaner systems

Page 57: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

もっと高性能なシステムが作れるという幻想

Illution that we could create systems that performs better

Page 58: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

意思決定者を説得する熱意Enthusiasm to persuade the boss

Page 59: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

良いデザインへの強い熱意Strong enthusiasm for better design

Page 60: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

予想以上に困難なデザインDifficult design problems beyond expectation

Page 61: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

予想以上にかかる時間Delayed schedule beyond forecast

Page 62: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

予算を越える費用Development cost beyond budget

Page 63: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

怒る顧客Angry clients

Page 64: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

破綻するプロジェクトProject failure

Page 65: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

あ痛た、たOuch!!

Page 66: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

しょっちゅう起きるSSS happens all the time

Page 67: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

程度の違いこそあれwith different severity

Page 68: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

私の専門はプログラミング言語My expertise is programming languages

Page 69: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

言語も例外ではないLanguages are no exception

Page 70: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

むしろ言語では頻発するRather many languages suffer SSS

Page 71: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

言語は長生きだからBecause languages live longer

Page 72: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

普通のアプリよりもはるかにFar more than usual applications

Page 73: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Case 1

Page 74: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Perl5 vs Perl6

Page 75: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Perl6は2000年に開発開始Perl6 project started 2001

Page 76: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Perlの思想を引継ぐPerl6 inherit Perl philosophy

Page 77: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ゼロから実装Perl6 implementation from scratch

Page 78: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

新文法Totally new syntax

Page 79: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

新VMTotally new virtual machine

Page 80: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

15年後(2015年)15 years later (2015)

Page 81: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Perl6はまだないWe don't have Perl6 yet

Page 82: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

今年のクリスマス(予定)Finally this christmas (hopefully)

Page 83: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

普及には恐らくさらに何年もProbably need years to become widely used

Page 84: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

誤解しないで欲しいDon't get me wrong

Page 85: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Perlコミュニティを尊敬しているI respect Perl community

Page 86: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Perlコミュニティは賢いPerl people are smart

Page 87: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

そんな彼らも苦しむEven they suffer

Page 88: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

セカンドシステム症候群は恐ろしいSecond system syndrome is scary

Page 89: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Case 2

Page 90: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Python2 vs Python3

Page 91: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Python3000

Page 92: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Python3000設計方針Python3000 design policy

Page 93: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

古いやり方を捨て機能重複を減らす"reduce feature duplication by removing old ways of doing

things"

Page 94: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

西暦3000年までに出ればWish we could release it before A.D.3000

Page 95: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

何年も何年も議論Discussed for years

Page 96: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

2006年、Python3000開発開始Python3000 project started in 2006

Page 97: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

2008年、Python3.0公開Python3.0 was relased in 2006

Page 98: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

互換性問題Compatibility problems

Page 99: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

2015年になってもPython2がまだ使われている

In 2015, Python2 is still widely used

Page 100: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Python3を捨てようという人までSome even claimed to give up Python3

Page 101: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

最近Python3率が増えたようなRecently Python3 has adapted more widely

Page 102: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ようやくかFinally

Page 103: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

誤解しないで欲しいDon't get me wrong

Page 104: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Pythonコミュニティを尊敬しているI respect Python community

Page 105: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Pythonコミュニティは賢いPython people are smart

Page 106: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

そんな彼らも苦しむEven they suffer

Page 107: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

セカンドシステム症候群は恐ろしいSecond system syndrome is scary

Page 108: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Rubyも例外ではないRuby is no exception

Page 109: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Ruby1.8 vs Ruby1.9

Page 110: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

パフォーマンスPerformance

Page 111: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

多言語化Multilingualization (M17N)

Page 112: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

2000年構想開始The idea was born in 2000

Page 113: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

2004年プロジェクト開始The project started in 2004

Page 114: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

2007年1.9.0リリース1.9.0 was released in 2007

Page 115: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

互換性問題Compatibility problems

Page 116: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

普及に5年以上Took 5 or more years

Page 117: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

PythonよりマシWe've done better than Python3

Page 118: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

「あきらめよう」という人はいなかったNo one suggested to give up at least

Page 119: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

なにがよかったのかBut how?

Page 120: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

どうやってセカンドシステム症候群を克服するか

How can we overcome second system syndrome?

Page 121: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

1. 「全部捨てる」ことを避けたwe have never thrown away everything

Page 122: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ひとつずつ置き換えたWe have replaced one at a time

Page 123: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

文字列クラスReplaced string class

Page 124: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

仮想マシンReplaced Virtual machine

Page 125: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

オブジェクト表現Replaced object representation

Page 126: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

ガーベージコレクターReplaced garbage collector

Page 127: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

できるだけご完成を維持しつつKeep compatibility as much as possible

Page 128: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

移行パスを用意しつつPrepare migration path

Page 129: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

劇的な変化を試みないNever tried too drastic changes

Page 130: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

少しずつ変化するChanged step by step

Page 131: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

バージョンの幻想2. versioning illusion

Page 132: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

2.0 vs 3.0

Page 133: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

5.0 vs 6.0

Page 134: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

1.8 vs 1.9

Page 135: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

3. 移行のご褒美migration bait

Page 136: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

1.9以降の大きなメリットMoving 1.9 had huge benefit

Page 137: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

パフォーマンスPerformance

Page 138: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

動機付けMotivation

Page 139: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

セカンドシステム症候群対策の大原則

Rules of thumb of SSS

Page 140: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

「全部捨て」をしないDon't throw away everything

Page 141: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

一気にやりすぎないDon't push too hard

Page 142: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

やさしくPush softly

Page 143: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

着実にPush steady

Page 144: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

互換性Compatibility

Page 145: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

変化を止めないKeep moving forward

Page 146: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

2.0は(ほぼ)完全な互換性を維持2.0 had (almost) perfect compatibility

Page 147: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

しかし時が経つにつれBut as time goes by

Page 148: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

セカンドシステム症候群はまたやってくる

Second system syndrome comes again

Page 149: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Ruby 3.0

Page 150: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

我々は原則を忘れないBut we don't forget the rules

Page 151: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 「全部捨て」をしないDon't throw away everything

1.

一気にやりすぎないDon't push too hard

2.

やさしくPush softly

3.

着実にPush steady

4.

Page 152: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Ruby3構想中We started working on Ruby3.0

Page 153: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

状況が変化するからBecause the situation changes

Page 154: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

マルチコアMulti cores

Page 155: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

データスケーラビリティData scalability

Page 156: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

コードスケーラビリティCode scalability

Page 157: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

実験中By experimenting ideas

Page 158: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

なにも約束しないWe don't promise anything

Page 159: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

セカンドシステム症候群対策の大原則

Rules of thumb of SSS

Page 160: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 「全部捨て」をしないDon't throw away everything

1.

一気にやりすぎないDon't push too hard

2.

やさしくPush softly

3.

着実にPush steady

4.

Page 161: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Ruby3

Page 162: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

人とコンピューターの協同Man-machine collaboration

1.

パフォーマンスPerformance2.

コンカレンシーConcurrency3.

Page 163: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

より広い領域へToward broader domain

Page 164: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

より高い生産性More productive

Page 165: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

かなり高い互換性Yet keeping compatibility

Page 166: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Rubyが未来を作るRuby will create the future

Page 167: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Rubyコミュニティと一緒にAlong with Ruby community

Page 168: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

あなたと一緒にWith you

Page 169: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

みなさんと一緒にWith all of you

Page 170: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Happy Hacking!

Page 171: 楽天技術研究所 ネットワーク応用通信研究所 Rubyアソシエー …2015.rubyworld-conf.org/files/program/keynote-1.pdf · Perl5 vs Perl6. Powered by Rabbit 2.1.8

Powered by Rabbit 2.1.8

 

Thank you