Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rust 2018とは? 〜安定した進化の真の意味〜
Search
コン
August 01, 2018
Programming
3
2.2k
Rust 2018とは? 〜安定した進化の真の意味〜
コン
August 01, 2018
Tweet
Share
More Decks by コン
See All by コン
Rust's secret sauce
golddranks
1
1.1k
Lifetime tricks for streaming & zero-allocation parsing!
golddranks
1
530
shinjuku.rs #2: ターミナル遊び
golddranks
1
990
サーバーレスRust〜AWS LambdaとRustのマリアージュ〜
golddranks
0
2.1k
Other Decks in Programming
See All in Programming
CSC305 Summer Lecture 12
javiergs
PRO
0
130
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
18
9.8k
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
4
1.9k
TDD 実践ミニトーク
contour_gara
1
290
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
linyows
0
110
為你自己學 Python - 冷知識篇
eddie
1
340
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
560
AWS発のAIエディタKiroを使ってみた
iriikeita
1
170
旅行プランAIエージェント開発の裏側
ippo012
2
860
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
18
9.9k
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
430
Featured
See All Featured
Docker and Python
trallard
45
3.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Producing Creativity
orderedlist
PRO
347
40k
Building Adaptive Systems
keathley
43
2.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
910
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Making Projects Easy
brettharned
117
6.4k
Fireside Chat
paigeccino
39
3.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
A Modern Web Designer's Workflow
chriscoyier
696
190k
Transcript
RUST 2018とは? 〜 安定した進化の真の意味 〜 コンティオ プル @GolDDranks
Rustのブログのバズワードを解読しよう!
「Stability as a Deliverable」 商品化された安定性? パッケージされた安定性? 保証された安定性?
「Stability as a Deliverable」 安定性も我々が提供している機能の内の一つ
「Stability without Stagnation」 マンネリ化をせずに! とどまらずに! 常に進化していく! でも、安定性を保つ
コンパイラの更新をさり気なく ◦更新が無難なほど、 みんなが新しいバージョンに移動してくれる ◦みんなが早く新しいバージョンに 移動してくれたら新規機能を早く ◦開発していける ◦エコシステムで導入できる
どうやって? ◦一ヶ月半ごとに、新リリース! → 新機能を焦らずに。(また次があるから) ◦機能を追加しても交換性を絶対に保証する! ◦Craterというツールで全エコシステムを検査
このやり方だと、限りがある ① tryというキーワードを追加するとしよう → tryという変数名や関数名が壊れてしまう ② 言語がだんだん進化していっても、 全体像がわかりにくい
交換性を守りながら、なんとかしたい! ◦じゃー、言語の基礎的な仕組みを変えなくても、 表面的にシンタックスだけ変えれば?
「RUST 2018」へ
Rust 2018(2018/12/6、v1.31) ◦Cargo.tomlで「edition = ‘2018’」設定すれば使える ◦一番重要なこととして、「Rust 2015」と交換性が100% ◦依存しても、依存されても、 Rust 2015と2018を混ぜてリンクすることが出来る
◦cargo fixで自動的なコードマイグレーション
何が違うのか? ◦https://rust-lang-nursery.github.io/edition-guide/ を参考に!
何が違うのか? ◦主な変更 ◦モジュールシステムの簡単化 ◦async / await(非同期IOのシンタックス) ◦ライフタイムの簡単化(Non lexical lifetimes) ◦Trait
objectとTraitを明示的に区別する(dyn Trait)
「Rustはこんなに進化してきたか!」 と人に気づかせるのもポイント!
進化していくからエキサイティング! でも交換性があるから実用的。
ご清聴ありがとうございました 詳細はhttps://rust-lang- nursery.github.io/edition-guide/まで Twitter: @GolDDranks