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
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yusuke Hosonuma
November 09, 2016
Technology
760
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プログラミング言語Rust
Rustの紹介的な勉強会
Yusuke Hosonuma
November 09, 2016
More Decks by Yusuke Hosonuma
See All by Yusuke Hosonuma
KotlinTest で始める Property-based Testing/kotlintest-property-based-testing
yusukehosonuma
2
1.6k
Marzipan の正体は何だったのか そして SwiftUI の衝撃/wwdc19_marzipan_swiftui
yusukehosonuma
2
990
標準パッケージにおけるテストでの利用例から学ぶ testing / quick パッケージ/golang-testing-quick
yusukehosonuma
4
12k
Swift で ParameterizedTest をやってみた話/swift-parameterized-test
yusukehosonuma
4
2.3k
Property-based test beginning with SwiftCheck
yusukehosonuma
1
6.3k
XCTest(再)入門/reintroduction-to-xctest
yusukehosonuma
0
660
ソースコードから読み解く - Quick はどのように実装されているのか?/quick-code-reading
yusukehosonuma
7
11k
Swift 4.2 はどのような進化をしているのか/whats-new-swift42
yusukehosonuma
16
15k
HTTPモックライブラリ「Mockingjay」を使ってみた話/swift-mockingjay
yusukehosonuma
5
4.3k
Other Decks in Technology
See All in Technology
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
1.3k
第3回しろおびセキュリティスポンサーセッション
log0417
0
140
QAタスクをスキル化したいときに考えること
aomoriringo
0
180
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
2
620
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
180
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
460
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
5
980
AIQAのナレッジ構築について
qatonchan
1
160
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
Atlassian Cloudサポート業務でのAIエージェント活用事例
smt7174
0
410
OSPN.JPバージョンアップ作業進捗のご報告 / 20260801-osc26kyoto
akkiesoft
0
260
初めてのGitHub Actions / GitHub Actions at First
tooppoo
0
140
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
240
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
950
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
For a Future-Friendly Web
brad_frost
183
10k
Transcript
ϓϩάϥϛϯάݴޠ Rust
ࣗݾհ • Yusuke Hosonuma • https://github.com/YusukeHosonuma • Qiitaͨ·ʹॻ͍ͯΔΑɻ • ϚΠϯυϑϧωε࣮ફதɻ
Rustͬͯʁ
Rustͬͯʁ • Mozilla͕࡞ͬͨγεςϜϓϩάϥϛϯάݴޠ • ߴੑɺ҆શੑɺฒߦੑɺʹϑΥʔΧε • C/C++/GoͷΑ͏ʹγϯάϧόΠφϦग़ྗͰ͖Δ • Ϟμϯͳ֓೦ʢؔܕͱ͔ʣΛऔΓೖΕͯΔ •
Swift͕ӨڹΛड͚ͨݴޠͰ͋Δ
ߴʁ
ߴʁ • C/C++ͷΑ͏ͳθϩΦʔόʔϔουΛࢦ͢ • GCͳ͠ɺࢀরΧϯτͳ͠ɺͷϝϞϦཧ • Ϟμϯͳ֓೦Λαϙʔτͭͭ͠ɺΦʔόʔϔου ͕ݶΓͳ͘ൃੜ͠ͳ͍Α͏ʹߟ͑ΒΕͯΔ • ʮθϩίετநԽʯ(zero-cost
abstractions)
҆શʁ
҆શʁ • C/C++ͰϝϞϦؔ࿈ͷόά͕ઈ͑ͳ͍ • ະॳظԽ or ൣғ֎ͷྖҬʹΞΫηεͨ͠Γ • όοϑΝʔΦʔόʔϑϩʔ੬ऑੑͷѱເ •
RustͰίϯύΠϧ࣌ʹແޮͳϝϞϦΞΫηε͕ൃ ੜ͠ͳ͍͜ͱΛอূ͢Δ • ੩తܕ͚Ͱܕਪ͋Γ
ฒߦʁ
ฒߦʁ • Ұൠతʹฒߦϓϩάϥϛϯά͍͠ • ෳͷεϨου͕ಉ͡σʔλΛಉ࣌ʹಡΈॻ͖ ͠ͳ͍Α͏ʹࡉ৺ͷҙ͕ඞཁ • ࠶ݱੑͷ͍όάੜΈग़͍͢͠ • RustͰίϯύΠϧ࣌ʹσʔλڝ߹Λ͙Έ
͕͋Δ
࣮ʁ
࣮ʁ • Friends of Rust https://www.rust-lang.org/en-US/friends.html ↑࣮ϓϩμΫτʹRustΛ͍ͬͯΔ৫ • MozillaFirefoxͷϝσΟΞύʔβͰར༻
ˠ 10ԯਓҎ্͕ར༻͍ͯ͠Δͷʹɺ1݅Τϥʔ͕ ൃੜ͍ͯ͠ͳ͍ʢΒ͍͠ʣ • DropboxLINEͱ͍ͬͨେޚॴར༻͍ͯ͠Δ
Why Rust ?
Why Rust ? • C/C++ͷΑ͏ʹߴੑ͕ٻΊΒΕΔιϑτΣΞ ʢOS/υϥΠόͳͲʣʹ͍͍ͯΔ • C/C++ߴ͚ͩͲɺϝϞϦཧ҆શͰͳ͍͠ɺ ฒߦϓϩάϥϛϯά͍͠ •
ݱঢ়ͷʢGoݴޠҎ֎ͷʣϞμϯݴޠ͔ΒݟΔͱػೳ ऑ͍ʢ͖ͼ͠Ίʹݴ͑࣌Εʣ • ͦ͜ͰRustͰ͢Αʂ
ͭ·Γʁ
ͭ·Γʁ • ϙετC++Λࢦ͢ݴޠ • ߴɺ҆શɺฒྻɺʹϑΥʔΧεͨ͠ݴޠ • ࠷େͷڝ߹Dݴޠ
Hello Rust
Hello Rust fn main() { println!("Hello, world!"); // This is
macro }
ϑΟϘφονྻ
ϑΟϘφονྻ fn fib(n: u32) -> u32 { // Function definition
match n { // Pattern match 0 => 1, 1 => 1, _ => fib(n - 1) + fib(n - 2), // Recursive call } // not need `return` } fn main() { let fib5 = fib(5); // local variable (Immutable is default) println!("fib(5): {}", fib5); // `{}` is placeholder // => 8 }
Cargo(Χϧΰ)
Cargo(Χϧΰ) • Rustඪ४ͷϏϧυπʔϧ • ಉ࣌ʹύοέʔδϚωʔδϟͰ͋Δ • ͭ·ΓɺϏϧυɺϥΠϒϥϦͷμϯϩʔυɺ ґଘؔͷղܾɺΛશ෦Δ • ʮધՙʯͱ͍͏ҙຯ͕͋Δ
Rustͷ࢝Ίํ
Rustͷ࢝Ίํ • $ brew install rust • $ cargo new
hello --bin • $ cd ./hello • $ cargo run • > Hello, world!
Rust Samurai ͷಓ ʻࡶίϥͰѱ͔ͬͨͳ
Rust Samurai ͷಓ • ϓϩάϥϛϯάݴޠRustʢຊޠ༁ʣ https://rust-lang-ja.github.io/the-rust- programming-language-ja/1.6/book/ README.html • όʔδϣϯ1.6Ͱͪΐͬͱݹ͍͚Ͳ͔Γ͍͢
Rust Samurai ͷಓ • Rust by Example http://rustbyexample.com/index.html • αϯϓϧίʔυΛϕʔεʹֶͯ͠·͢ɻͨͩ͠
ӳޠɻ
Rust Samurai ͷಓ • APIϦϑΝϨϯε https://doc.rust-lang.org/std/ • ݕࡧػೳ͕ͳ͔ͳ͔༏लͰ͢ɻ
Join us?
Join us? • StackOverflowʹ͓͍ͯɺ2016ͷѪ͞ΕͯΔݴޠϥ ϯΩϯά1ҐΛ֫ಘ͍ͯ͠·͢ɻ • طʹηϧϑϗεςΟϯάʢࣗͰࣗΛίϯύΠϧʣ Λ࣮ݱ͍ͯ͠·͢ɻ • GoݴޠͷΑ͏ʹޙΖ६͕ແ͖ͯͯͨ͘͠ݴޠ
Ͱ͢ɻ • ࠷ۙʹͳͬͯར༻࣮͕֦େ͍ͯ͠·͢ɻ
Rust͍͍ͧʂ
Thanks!