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
麻雀点数計算問題生成タスクから学ぶ Single Agentの限界と Agentic Workflowの底力
po3rin
5
2k
半自動E2Eで手っ取り早くリグレッションテストを効率化しよう
beryu
6
2.3k
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
23
11k
Breaking Up with Big ViewModels — Without Breaking Your Architecture (droidcon Berlin 2025)
steliosf
PRO
1
270
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
160
Repenser les filtres API Platform: une nouvelle syntaxe
vinceamstoutz
2
150
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
250
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
960
ポスターセッション: 「まっすぐ行って、右!」って言ってラズパイカーを動かしたい 〜生成AI × Raspberry Pi Pico × Gradioの試作メモ〜
komofr
0
750
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
290
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
0
200
AccessorySetupKitで実現するシームレスなペアリング体験 / Seamless pairing with AccessorySetupKit
nekowen
0
200
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
We Have a Design System, Now What?
morganepeng
53
7.8k
KATA
mclloyd
32
14k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Visualization
eitanlees
148
16k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
880
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
3k
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