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
Python、ときどきRust
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
abenben
August 29, 2020
Technology
4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Python、ときどきRust
2020年8月29日の「Python JP 2020」で発表したスライドです。
https://pycon.jp/2020/timetable/?id=203945
abenben
August 29, 2020
More Decks by abenben
See All by abenben
ハーネスエンジニアリング
abenben
0
750
なぜ私たちは「かわり合えない」のか?
abenben
1
120
AIにはできない〜限界と可能性を正しく理解し、未来を共創する〜
abenben
0
150
知能とはなにか ヒトとAIのあいだ〜人間の脳と生成AIの現実シミュレーションの比較
abenben
0
190
生成AI時代のPythonセキュリティとガバナンス
abenben
0
340
GeminiとNotebookLMによる金融実務の業務革新
abenben
1
490
伝わるコードレビュー
abenben
2
690
GX推進による好循環な地域金融
abenben
1
220
Web3概略:手早く把握
abenben
2
1.8k
Other Decks in Technology
See All in Technology
事業価値と Engineering 2026年度版
recruitengineers
PRO
51
25k
AI・HPC開発を支えるGPU環境の新しい選択肢 液冷GPUシステム「AquSys」の取り組み
gpuunite_official
0
100
ブラウザ研修 2026
recruitengineers
PRO
7
1.2k
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
300
関東Kaggler会発表資料
takoi
1
260
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
9
3.1k
LanceDB入門
mocobeta
9
600
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
230
2027年のMetricKit
kantacky
0
100
小粒でもパワフルなJS Runtime Antjsについて
comamoca
0
110
AIのためのEthernet技術動向 (SerDes)
markunet
1
220
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
How to build a perfect <img>
jonoalderson
1
5.9k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Become a Pro
speakerdeck
PRO
31
6.2k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Deep Space Network (abreviated)
tonyrice
0
260
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
440
Unsuck your backbone
ammeep
672
58k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
Abbi's Birthday
coloredviolet
3
9.4k
Transcript
1ZUIPOɺ ͱ͖Ͳ͖ 3VTU 1Z$PO+1ʢʣ Ѩ෦Ұʢ͋ΜΜʣ
n ւಓʢখʣੜ·Ε n *OTUJUVUJPOGPSB(MPCBM4PDJFUZʢ*(4ʣגࣜձࣾ ্੮ݚڀһ n ϏδωεϞσϧΠϊϕʔγϣϯڠձʢ#.*"ʣ ೝఆδϡχΞίϯαϧλϯτ n ࣗࢄࣾձϑΥʔϥϜ
%"4'ʣձһ ࣄ ɾڭҭɺ)3͚ϒϩοΫνΣʔϯͷݚڀ։ൃ ͍ΖΜͳ׆ಈ ɾاۀؒίϛϡχέʔλʔɺδΣωϨʔλʔ ɾίϛϡχςΟӡӦ ʢ4UBSU1ZUIPO$MVCɺGJOQZɺ 76$"-BCPɺ ۚ༥ΤϯδχΞཆίϛϡχςΟɺ 95FDI +"84ɺ'JO+"84ɺGPVOE *5QSPKFDUɺദͷ༿ˍͭ͘ϏοτίΠϯʣ ɾΠϕϯτͷاը ɾ*5ؔ࿈ॻ੶ͷࣥචɺ༁ɺमɺࠪಡ 5XJUUFSɿ!BCFOCFO (JU)VCɿ!BCFOCFO ϒϩά OPUFhttps://note.com/abenben ͓·͑୭Α
ςΫϊϩδʔͱਓʑͱͷܨ͕ΓͰࣾձ՝Λղܾ͍ͨ͠ https://www3.nhk.or.jp/news/html/20200816/k10012569481000.html
ҙࣄ߲ ຊࢿྉͷ༰શͯஶऀݸਓʹؼ͢ΔͷͰ͋Γɺॴଐ͢ΔػؔͷݟղΛөͨ͠ͷͰ͋Γ·ͤΜɻ
ϒϩοΫνΣʔϯͰ 3VTUͷ͕ߴ·͍ͬͯΔ Ϟνϕʔγϣϯ wେ͖ͳΠʔαϦΞϜͷߟҊऀ ϰΟλϦοΫɾϒςϦϯ͕1ZUIPOJTUBͰ͋Δɻ イーサリアム wϰΟλϦοΫ͕ߟҊͨ͠εϚʔτίϯτϥΫτʮ7ZQFSʯɺ1ZUIPOͰ࣮͞ Ε͍͕ͯͨॏେͳ͕͓͖ͯ3VTUʹҠߦ͞Ε͍ͯΔɻ スマートコントラクト w-JCSBʢϦϒϥʣ
4PMBOBʢιϥφʣͳͲͷεϚʔτίϯτϥΫτ3VTUϕʔε Ͱ࣮ɾ։ൃ͞Ε͍ͯΔɻ パブリックブロックチェーン
ࠓͷ͓ • 1ZUIPOݴޠ༷ʹ͍ͭͯ • 3VTUʹ͍ͭͯ • 1ZUIPO㱻3VTUؒͰͷݺͼग़͠ʹ͍ͭͯ • ੑೳʹ͍ͭͯ
1ZUIPOݴޠ༷ʹ͍ͭͯ
l1ZUIPOzݴޠ༷ • 1ZUIPOݴޠ༷ͷ͜ͱͰɺ͍Ζ͍ΖͳϓϩάϥϛϯάݴޠͰ ࣮͞Ε͍ͯΔɻ • ීஈɺΈΜͳ͕ͬͯΔͷɺ$ݴޠͰ࣮͞Εͨ$1ZUIPOͰ͋Δɻ • ͦΕҎ֎ʹɺෳͷݴޠͰ࣮͞Ε͍ͯΔɻ $1ZUIPO $ݴޠͰ࣮ɺΈΜͳ͕ͬͯΔͷ͜Ε
+ZUIPO KBWBͷ+7. *SPO1ZUIPO /&5'SBNFXPSLPS.POP 1Z1Z શʹ1ZUIPOͰॻ͔Εͨ1ZUIPOͷ࣮ .JDSP1ZUIPO ͜Ε$ݴޠͰ࣮͞Ε͍ͯΔ͕ɺ1ZUIPOϓϩάϥϛϯ άݴޠΛίϯύΫτ͔ͭޮతʹ࣮ͨ͠ͷ $-1ZUIPO $PNNPO-JTQͰ࣮ ͦͷଞ
1ZUIPOάϧʔݴޠ 1ZUIPOʮखଓ͖ʯͱʮखଓ͖ʯΛͭͳ͛Δ ކ͚ʢάϧʔɿ(MVFʣݴޠͱͯ͠ར༻͞Εͨͷ͕ɺ ਓؾେ͖ͳൃలʹܨ͕͍ͬͯΔɻ
1ZUIPOΛߴԽ͢Δํ๏
3VTUʹ͍ͭͯ
ʹϦϦʔε͞Εͨ ΘΓͱ৽͍͠ϓϩάϥϛϯάݴޠ .P[JMMB"84ɺ .JDSPTPGU"[VSFͳͲ͕ࢧԉ ҆શͳϓϩάϥϛϯάݴޠ ͱͯ͠ 3VTUͱ
࿈ଓͰ࠷Ѫ͞Εͨݴޠ https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages
3VTUͷಛ https://www.rust-lang.org/ja w3VTUඇৗʹߴͰϝϞϦޮ͕ߴ͘ϥϯλΠϜΨϕʔδίϨΫλ͕ͳ͍ ͨΊɺύϑΥʔϚϯεॏࢹͷαʔϏεΛ࣮Ͱ͖·͢͠ɺࠐΈػث্Ͱ࣮ ߦͨ͠Γଞͷݴޠͱͷௐ؆୯ʹͰ͖·͢ɻ ύϑΥʔϚϯε w3VTUͷ๛͔ͳܕγεςϜͱॴ༗ݖϞσϧʹΑΓϝϞϦ҆શੑͱεϨου҆શ ੑ͕อূ͞Ε·͢ɻ͞Βʹ༷ʑͳछྨͷόάΛίϯύΠϧ࣌ʹഉআ͢Δ͜ͱ ͕ՄೳͰ͢ɻ ৴པੑ
w3VTUʹ༏ΕͨυΩϡϝϯτɺ༗༻ͳΤϥʔϝοηʔδΛඋ͍͍͑ͨ͢ ίϯύΠϥɺ͓Αͼ౷߹͞ΕͨύοέʔδϚωʔδϟͱϏϧυπʔϧɺଟ ͷΤσΟλʹରԠ͢ΔεϚʔτͳࣗಈิͱܕݕࠪػೳɺࣗಈϑΥʔϚολ ͱ͍ͬͨҰྲྀͷπʔϧ܈͕ଟ͘ἧ͍ͬͯ·͢ɻ ੜ࢈ੑ
ύϑΥʔϚϯεͱϝϞϦ҆શੑͷؔ ύϑΥʔϚϯε ϝϞϦηʔϑ ΄ͱΜͲͷϓϩάϥϛϯάݴޠɺύϑΥʔϚϯεͱϝϞϦ҆શੑʢϝϞϦηʔϑʣ͕ τϨʔυΦϑؔʹͳ͍ͬͯΔɻ γεςϜ͕ࣗಈͰෆཁͳ ϝϞϦΛ͔͖ूΊΔɻ ΨϕʔδίϨΫγϣϯͳͲ ϝϞϦϓϩάϥϚ͕ શΛ࣋ͬͯཧ͢Δɻ
3VTUͰɺʢʹϝϞϦʣͷॴ༗ݖΛ Ҡಈͤ͞Δ͜ͱͰɺϝϞϦͷ҆શੑΛ֬อ͢Δɻ
ʢ͓·͚ʣ3VTUͷհಈը https://keens.github.io/slide/anzennagengorust/ https://youtu.be/t9C11A_lLwY?t=2864 ˣ͜ͷಈըͷεϥΠυ κeen (きーん) さん 実践Rust⼊⾨
3VTUͷΠϯετʔϧ https://rustup.rs/
3VTUͷݱ࣌ͷ࠷৽όʔδϣϯ IUUQTCMPHSVTUMBOHPSH
74$PEF͔Β͏ʹ IUUQTNBSLFUQMBDFWJTVBMTUVEJPDPNJUFNT JUFN/BNF WBEJNDOWTDPEFMMEC IUUQTNBSLFUQMBDFWJTVBMTUVEJPDPNJUFNT JUFN/BNF SVTUMBOHSVTU 3VTUϓϩάϥϜΛσόοάʹ $PEF--%#͕ඞཁ コードの補完やリファクタリングに
はRust拡張機能が必要 ˞8JOEPXTͷ߹ɺ.47$ͷσόοΨ͑ΔͷͰʮ$$ ֦ுػೳʯͷΠϯετʔϧ͓નΊ͠·͢ɻ
1ZUIPO㱻3VTUؒͰͷ ݺͼग़͠ʹ͍ͭͯ
3VTUͷ''*πʔϧ ʢଟݴޠؔΠϯλϑΣʔεʣ CJOEHFO $ͷϔομʔϑΝΠϧ͔Β''*ʹඞཁͳ3VTUͷόΠϯσΟϯ άίʔυΛࣗಈੜ͢Δɻ$ ͱͷόΠϯσΟϯάίʔυ ࣗಈੜͰ͖Δʢݱ࣌Ͱ੍ݶ͕ଟ͍ʣɻ 1Z0 1UZUIPOҎ্ʹର͢ΔόΠϯσΟϯάɻ1ZUIPO͔Β 3VTUؔΛݺͼग़ͨ͠Γɺٯʹ3VTU͔Β1ZIPOͷؔΛݺ
ͼग़ͨ͠ΓͰ͖Δɻ SVTUDQZUIPO 1UZUIPOҎ্ʹର͢ΔόΠϯσΟϯάɻ1Z0ͱಉ༷ʹ 1ZUIPO͔Β3VTUؔΛݺͼग़ͨ͠Γɺٯʹ3VTU͔Β 1ZIPOͷؔΛݺͼग़ͨ͠ΓͰ͖Δɻ /FPO 3VTUͰ/PEFKTϞδϡʔϧΛ࡞͢ΔͨΊͷόΠϯσΟϯ άɻ/PEFKT͔Β3VTUͷؔΛݺͼग़ͤΔɻ 3VSV 3VTUͰ3VCZͷ֦ுػೳΛ࡞͢ΔͨΊͷόΠϯσΟϯάɻ 3VCZ͔Β3VTUͷؔΛݺͼग़ͤΔɻ 3VTUMFS 3VTUͰ&SMBOHͷ/*'ʢ/BUJWF*NQMFNFOUFE'VODUJPOʣΛ ࡞͢ΔͨΊͷόΠϯσΟϯάɻ&SMBOH͔Β3VTUͷؔΛ ݺͼग़ͤΔɻ&MJYJS͔ΒͰ༻Մೳɻ ࢀߟʮ࣮ફ 3VTUೖʯ ''*ʢଟݴޠؔΠϯλϑΣʔεʣΛ௨ͯ͡ɺଞͷݴޠͱ࿈ܞ͕Մೳɻ 3VTUʹ($ͳͲͷෳࡶͳϥϯλΠϜ͕ͳ͍ͷͰɺ1ZUIPO 3VCZͳͲ͔Β ؆୯ʹݺͼग़ͤΔɻ
1Z0 3VTU͔Β1ZUIPOΛݺͼग़ͨ͠Γɺ1ZUIPO͔Β 3VTUΛݺͼग़ͩͤΔϥΠϒϥϦ ݱ࣌Ͱͷ࠷৽൛WFS IUUQTHJUIVCDPN1Z0QZP
3VTUͷ։ൃϓϩδΣΫτ࡞ํ๏ ࣮ߦϑΝΠϧΛ࡞ΔϓϩδΣΫτΛ࡞͢Δɻ $BSHPUPNMΛमਖ਼ʢ1Z0ϥΠϒϥϦΛར༻͢ΔΑ͏ʹઃఆʣ͢Δɻ ্هͷίϚϯυͷΑͬͯϫʔΫεϖʔεઃఆϑΝΠϧʢ$BSHPUPNMʣͱ ϝΠϯؔʢNBJOSTʣϑΝΠϧͷεέϧτϯ͕ࣗಈੜ͞ΕΔͷͰ ΤσΟλͰमਖ਼Λߦ͏ɻ
3VTUϝΠϯؔͷ४උ ʢ3VTU͔Β1ZUIPOͷݺͼग़͠ʣ ɽϝΠϯؔʢNBJOSTʣΛमਖ਼͢Δɻ 3VTU͔Βࣗ࡞ͨ͠1ZUIPOؔΛݺͼग़͢αϯϓϧίʔυ ʲz͓·͡ͳ͍zͱ ࢥͬͯԼ͍͞ʳ ࣗ࡞ͨ͠1ZUIPO ίʔυ͕୳ͤΔΑ ͏ʹΧϨϯτϑΥ ϧμʹύεΛ௨͢ɻ
ࣗ࡞ͨ͠ 1ZUIPOؔΛ ݺͼग़͢ɻ
࣮ߦʢ3VTU͔Β1ZUIPOͷݺͼग़͠ʣ 3VTUͷϝΠϯؔΛ࣮ߦ͢ΔʢϦϦʔε൛Ͱ͔࣮͠ߦͰ͖ͳ͍ͷͰҙʂʣ 1ZUIPOίʔυͷ४උ ݺͼग़͞ΕΔ1ZUIPOίʔυΛϓϩδΣΫτͷΧϨϯτύεʹ४උ͢Δɻ https://github.com/abenben/rust-test02 ˣίʔυҎԼ63-ͷ(JU)VCʹ͋Γ·͢ɻ
3VTU͔Β1ZUIPOΛݺͼग़͢ϝϦοτ • 1ZUIPOͷϥΠϒϥϦ͕͑Δɻ • 1ZUIPOͰॻ͍ͨػցֶशͷ ϩδοΫͳͲΛݺͼग़ͤΔɻ
3VTUͷ։ൃϓϩδΣΫτ࡞ํ๏ ʢϥΠϒϥϦ࡞࣌ʣ ࣮ߦϑΝΠϧΛ࡞ΔϓϩδΣΫτΛ࡞͢Δɻ $BSHPUPNMΛमਖ਼ʢ1Z0ϥΠϒϥϦΛར༻͢ΔΑ͏ʹઃఆʣ͢Δɻ ্هͷίϚϯυͷΑͬͯϫʔΫεϖʔεઃఆϑΝΠϧʢ$BSHPUPNMʣͱ ϥΠϒϥϦؔʢMJCSTʣϑΝΠϧͷεέϧτϯ͕ࣗಈੜ͞ΕΔͷͰ ΤσΟλͰमਖ਼Λߦ͏ɻ ϥΠϒϥϦΛ࡞Δͱ͖MJCΛ͚ͭΔ ϥΠϒϥϦΛ࡞Δ
߹ʹඞཁͳઃఆ ϥΠϒϥϦͷݺͼग़ ํʹҙ ʢNBJO࣌ͱҟͳΔʣ
ϥΠϒϥϦ४උ ʢ1ZUIPO͔Β3VTUͷݺͼग़͠ʣ ɽϥΠϒϥϦؔʢMJCSTʣΛमਖ਼͢Δɻ 1ZUIPO͔Βݺͼग़͢3VTUؔͷαϯϓϧίʔυ Ҿແ͠ɺΓແ͠ ͕Ҿɺ͕Γ จࣈྻ͕Ҿɺ͕Γ
ϥΠϒϥϦ४උ ʢ1ZUIPO͔Β3VTUͷݺͼग़͠ʣ ʢଓ͖ʣ ྻͱ͕Ҿɺ ྻ͕Γ λϓϧʢཁૉʣͱ͕Ҿɺ ͭͷ͕Γ
࣮ߦʢ1ZUIPO͔Β3VTUͷݺͼग़͠ʣ https://github.com/abenben/rust-test01 ˣίʔυҎԼ63-ͷ(JU)VCʹ͋Γ·͢ɻ 3VTUͷϥΠϒϥϦʢ˞ҙɿNBDPTͷ߹ʣΛੜ͢Δ 1ZUIPOͷϝΠϯؔΛ࣮ߦ͢Δ 1ZUIPOίʔυʢNBJOQZʣͷ४උ 3VTUؔΛݺͼग़͢1ZUIPOίʔυΛϓϩδΣΫτͷΧϨϯτύεʹ࡞͢Δɻ
1ZUIPO͔Β3VTUΛݺͼग़͢ϝϦοτ • ॲཧͷߴԽ͕Ͱ͖Δɻ • $$ Ͱ࡞ΔΑΓ ϝϞϦηʔϑͳϥΠϒϥϦ͕࡞ΕΔɻ ʢੜ࢈ੑߴ͍ʣ
ੑೳʹ͍ͭͯ
ੑೳൺֱͷ४උ +VQZUFSΛͬͯ1ZUIPOͱ$ZIUPOɺ +*5 /VNCB ɺ3VTUΛ·ͱΊͯܭଌ͢Δɻ ·ͣΠϯετʔϧʂ
ੑೳൺֱ GPSจʣ QZUIPO $ZUIPO 3VTU 3VTU͕ܻҧ͍ʹૣ͔ͬͨʂ https://github.com/abenben/jupyter_rust1/blob/master/Jupyter_Rust_Cython_Python.ipynb ˣίʔυҎԼ63-ͷ(JU)VCʹ͋Γ·͢ɻ +*5ίϯύΠϥʢ/VNCBʣ ࣌ؒ
QZUIPO T $ZUIPO T +*5 /VNCB T 3VTU T ܭଌ݁Ռ ϚγϯεϖοΫ
ʢ͓·͚ʣ+VQZUFS͔Β؆୯ʹ࿈ܞ
·ͱΊ • 3VTUɺϝϞϦηʔϑͱੑೳͷτϨʔυΦϑؔ Λଧͪഁͬͯ͘ΕΔɻ • 1ZUIPO㱻3VTUؒͷݺͼग़͠εϜʔζͰ͋Δɻ ʢҰ෦ɺ͓·͡ͳ͍͕ඞཁXʣ • 1ZUIPOɺࠓޙάϧʔݴޠʢ㲈࢘ྩౝʣͱͯ͠ ൃల͠ଓ͚Δɻ
˞ࠓճઆ໌͠·ͤΜͰ͕ͨ͠ɺ 3VTUฒྻԽඇಉظ*0Λ͏͜ͱͰɺ͞ΒʹϚοϋʹͳΓ·͢ʂ
͓·͚ʢએʣ 4UBSU1ZUIPO$MVCʢ݄Ͱ։࠵ʂʣͰͬͯ·ʔ͢ʂʂ IUUQTTUBSUQZUIPODPOOQBTTDPN