llイベント2014 ll diver「帰ってきただめ自慢」rust枠

22
LL Diver 帰ってきただめ自慢 Rust枠

Upload: tetsuharu-ohzeki

Post on 24-May-2015

1.034 views

Category:

Technology


1 download

DESCRIPTION

http://ll.jus.or.jp/2014/

TRANSCRIPT

Page 1: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

LL Diver 帰ってきただめ自慢 Rust枠

Page 2: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

注意事項• 本スライドは、公開にあたり、私が当日酒の勢いで話した内容を思い出しつつ補足を追加しています。

• 「筆者としてはこういう気持ちで言っていたつもりだった」という趣旨を(思い出しつつ)補足していますが、当日、私が口に出した言葉を撤回する意図はありません。

Page 3: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

About Me• Tetsuharu OHZEKI (@saneyuki_s)

• Rust Samurai でググれ

• (註:ゆるふわRust勉強会の幹事やってます)

• Mozilla Committer

• Servo Developer

Page 4: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

Rust

• 強い静的型付け・コンパイル有り

• 並列・安全・システムプログラミング

• C++生まれHaskell育ちアクターモデルはだいたい友達

Page 5: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

RustはLL?

Page 6: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

RustはLL?

LLVM使うから LLに決まってる

Page 7: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

Rustのダメな所

Page 8: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

Rustのダメな所

無い (言語には)

Page 9: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

補足

• 言語的に面倒・冗長な所は愛嬌です

Page 10: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

Rustのダメな所

エコシステム

Page 11: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

補足

• 以後、エコシステムとか関連ツールがひどいという話をします

Page 12: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

Rustのダメな所

並列が売りなのにコンパイラはシングルスレッド

Page 13: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

補足

• コンパイラがシングルスレッドで動く箇所があるのは仕方が無いのだが、並行を重視するRustに引っ掛けたネタなのでマジレスしないで貰いたい

Page 14: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

Rustのダメな所

ライブラリが全部Nightlyでビルドされてる(リビジョンは別)

Page 15: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

補足• ここでいうライブラリ=3rdパーティ製のもの

• Rust-CIという、Rust nightlyの更新に併せてCIが回るグレートな仕組みをライブラリ作者は使う事が出来るのだが、このCIがコケても即時修正されるかはライブラリ作者次第

• Rust-CI通ったリビジョンが安定版なので、ライブラリごとにRustのコンパイルが通る事が保証されているリビジョンが完全にバラバラであるため、まずこの違いを吸収するのがプロダクション投入への第一歩

• ちなみにRustのマイルストーンリリースごとにtagを切るような殊勝な人は滅多に居ません

Page 16: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

Rustのダメな所

ビルドツールはGNU Make

Page 17: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

補足• 現在のRustに、go buildのような便利ツールは無い。あるにはあるが(Cargo)、unstableです

• なので、みんなGNU Makeとかシェルスクリプトでrustcを使う

• Rustで書かれた満足な2大プロジェクトである、Rust CompilerはGYP使うし、Servoはautoconf 2.13を使うしで、富豪 or レガシー。良い塩梅のビルド方法が文化的に確率されているわけではない

• Rust用のCMake設定をMLに投稿した人はいるが、ライセンス的にも、2014年の言語としても、CMakeの設定くらいRustが標準で配布してほしいという思いはある

Page 18: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

シングルスレッド性能はC++の方が

速いに決まってんだろ!

Page 19: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

補足• 常識的に考えて、Clangに対して過去に投入された・今後されるであろうリソース量を考えれば、C/C++にシングルスレッド性能で勝てる可能性は無い(互角すらも厳しいのではないか)

• Rustのゴールはシングルスレッドで世界最高の性能を叩き出す事ではなく、並行・並列プログラミングを、システム領域での使用に耐えうるだけの高効率性を伴った上で安全に開発できること

• なので、シングルスレッド性能を求めたければ、RustではなくC/C++書くのが正攻法であるし、もっと速度が欲しければアセンブラを書くか、ハードウェアをアップグレードするしかない

Page 20: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

あなたとRUST 今すぐダウンロード

無料Rustのダウンロード

Page 21: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠

補足

•Get it Now!!!!!!!!!!

Page 22: LLイベント2014 LL Diver「帰ってきただめ自慢」Rust枠