Rust 2018とは? 〜安定した進化の真の意味〜
by
コン
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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