llイベント2014 ll diver「帰ってきただめ自慢」rust枠
DESCRIPTION
http://ll.jus.or.jp/2014/TRANSCRIPT
LL Diver 帰ってきただめ自慢 Rust枠
注意事項• 本スライドは、公開にあたり、私が当日酒の勢いで話した内容を思い出しつつ補足を追加しています。
• 「筆者としてはこういう気持ちで言っていたつもりだった」という趣旨を(思い出しつつ)補足していますが、当日、私が口に出した言葉を撤回する意図はありません。
About Me• Tetsuharu OHZEKI (@saneyuki_s)
• Rust Samurai でググれ
• (註:ゆるふわRust勉強会の幹事やってます)
• Mozilla Committer
• Servo Developer
Rust
• 強い静的型付け・コンパイル有り
• 並列・安全・システムプログラミング
• C++生まれHaskell育ちアクターモデルはだいたい友達
RustはLL?
RustはLL?
LLVM使うから LLに決まってる
Rustのダメな所
Rustのダメな所
無い (言語には)
補足
• 言語的に面倒・冗長な所は愛嬌です
Rustのダメな所
エコシステム
補足
• 以後、エコシステムとか関連ツールがひどいという話をします
Rustのダメな所
並列が売りなのにコンパイラはシングルスレッド
補足
• コンパイラがシングルスレッドで動く箇所があるのは仕方が無いのだが、並行を重視するRustに引っ掛けたネタなのでマジレスしないで貰いたい
Rustのダメな所
ライブラリが全部Nightlyでビルドされてる(リビジョンは別)
補足• ここでいうライブラリ=3rdパーティ製のもの
• Rust-CIという、Rust nightlyの更新に併せてCIが回るグレートな仕組みをライブラリ作者は使う事が出来るのだが、このCIがコケても即時修正されるかはライブラリ作者次第
• Rust-CI通ったリビジョンが安定版なので、ライブラリごとにRustのコンパイルが通る事が保証されているリビジョンが完全にバラバラであるため、まずこの違いを吸収するのがプロダクション投入への第一歩
• ちなみにRustのマイルストーンリリースごとにtagを切るような殊勝な人は滅多に居ません
Rustのダメな所
ビルドツールはGNU Make
補足• 現在のRustに、go buildのような便利ツールは無い。あるにはあるが(Cargo)、unstableです
• なので、みんなGNU Makeとかシェルスクリプトでrustcを使う
• Rustで書かれた満足な2大プロジェクトである、Rust CompilerはGYP使うし、Servoはautoconf 2.13を使うしで、富豪 or レガシー。良い塩梅のビルド方法が文化的に確率されているわけではない
• Rust用のCMake設定をMLに投稿した人はいるが、ライセンス的にも、2014年の言語としても、CMakeの設定くらいRustが標準で配布してほしいという思いはある
シングルスレッド性能はC++の方が
速いに決まってんだろ!
補足• 常識的に考えて、Clangに対して過去に投入された・今後されるであろうリソース量を考えれば、C/C++にシングルスレッド性能で勝てる可能性は無い(互角すらも厳しいのではないか)
• Rustのゴールはシングルスレッドで世界最高の性能を叩き出す事ではなく、並行・並列プログラミングを、システム領域での使用に耐えうるだけの高効率性を伴った上で安全に開発できること
• なので、シングルスレッド性能を求めたければ、RustではなくC/C++書くのが正攻法であるし、もっと速度が欲しければアセンブラを書くか、ハードウェアをアップグレードするしかない
あなたとRUST 今すぐダウンロード
無料Rustのダウンロード
補足
•Get it Now!!!!!!!!!!