Rust 2018とは? 〜安定した進化の真の意味〜
by
コン
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
RUST 2018とは? 〜 安定した進化の真の意味 〜 コンティオ プル @GolDDranks
Slide 2
Slide 2 text
Rustのブログのバズワードを解読しよう!
Slide 3
Slide 3 text
「Stability as a Deliverable」 商品化された安定性? パッケージされた安定性? 保証された安定性?
Slide 4
Slide 4 text
「Stability as a Deliverable」 安定性も我々が提供している機能の内の一つ
Slide 5
Slide 5 text
「Stability without Stagnation」 マンネリ化をせずに! とどまらずに! 常に進化していく! でも、安定性を保つ
Slide 6
Slide 6 text
コンパイラの更新をさり気なく ◦更新が無難なほど、 みんなが新しいバージョンに移動してくれる ◦みんなが早く新しいバージョンに 移動してくれたら新規機能を早く ◦開発していける ◦エコシステムで導入できる
Slide 7
Slide 7 text
どうやって? ◦一ヶ月半ごとに、新リリース! → 新機能を焦らずに。(また次があるから) ◦機能を追加しても交換性を絶対に保証する! ◦Craterというツールで全エコシステムを検査
Slide 8
Slide 8 text
このやり方だと、限りがある ① tryというキーワードを追加するとしよう → tryという変数名や関数名が壊れてしまう ② 言語がだんだん進化していっても、 全体像がわかりにくい
Slide 9
Slide 9 text
交換性を守りながら、なんとかしたい! ◦じゃー、言語の基礎的な仕組みを変えなくても、 表面的にシンタックスだけ変えれば?
Slide 10
Slide 10 text
「RUST 2018」へ
Slide 11
Slide 11 text
Rust 2018(2018/12/6、v1.31) ◦Cargo.tomlで「edition = ‘2018’」設定すれば使える ◦一番重要なこととして、「Rust 2015」と交換性が100% ◦依存しても、依存されても、 Rust 2015と2018を混ぜてリンクすることが出来る ◦cargo fixで自動的なコードマイグレーション
Slide 12
Slide 12 text
何が違うのか? ◦https://rust-lang-nursery.github.io/edition-guide/ を参考に!
Slide 13
Slide 13 text
何が違うのか? ◦主な変更 ◦モジュールシステムの簡単化 ◦async / await(非同期IOのシンタックス) ◦ライフタイムの簡単化(Non lexical lifetimes) ◦Trait objectとTraitを明示的に区別する(dyn Trait)
Slide 14
Slide 14 text
「Rustはこんなに進化してきたか!」 と人に気づかせるのもポイント!
Slide 15
Slide 15 text
進化していくからエキサイティング! でも交換性があるから実用的。
Slide 16
Slide 16 text
ご清聴ありがとうございました 詳細はhttps://rust-lang- nursery.github.io/edition-guide/まで Twitter: @GolDDranks