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
abenben
August 29, 2020
Technology
2
3.7k
Python、ときどきRust
2020年8月29日の「Python JP 2020」で発表したスライドです。
https://pycon.jp/2020/timetable/?id=203945
abenben
August 29, 2020
Tweet
Share
More Decks by abenben
See All by abenben
GX推進による好循環な地域金融
abenben
0
27
Web3概略:手早く把握
abenben
2
1.3k
Web3とNFTの教科書
abenben
1
380
各種生成AIについて
abenben
3
1.6k
数年先の金融DX/AI活用
abenben
2
540
金融とAI
abenben
1
300
PythonによるWeb3開発
abenben
1
260
【超入門】対談前に知っておこう! 新時代の常識「Web3」のきほん
abenben
1
160
NFTを覚えて視野を広げよう!
abenben
1
760
Other Decks in Technology
See All in Technology
[OpsJAWS Meetup33 AIOps] Amazon Bedrockガードレールで守る安全なAI運用
akiratameto
1
130
フォーイット_エンジニア向け会社紹介資料_Forit_Company_Profile.pdf
forit_tech
1
1.7k
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
540
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
45k
困難を「一般解」で解く
fujiwara3
7
1.6k
Global Databaseで実現するマルチリージョン自動切替とBlue/Greenデプロイ
j2yano
0
150
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
12
4.5k
サバイバルモード下でのエンジニアリングマネジメント
konifar
16
4.7k
ウォンテッドリーのデータパイプラインを支える ETL のための analytics, rds-exporter / analytics, rds-exporter for ETL to support Wantedly's data pipeline
unblee
0
140
AI自体のOps 〜LLMアプリの運用、AWSサービスとOSSの使い分け〜
minorun365
PRO
9
790
Platform Engineeringで クラウドの「楽しくない」を解消しよう
jacopen
4
170
What's new in Go 1.24?
ciarana
1
110
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Statistics for Hackers
jakevdp
797
220k
Typedesign – Prime Four
hannesfritz
41
2.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Building Applications with DynamoDB
mza
93
6.2k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
4 Signs Your Business is Dying
shpigford
183
22k
Code Review Best Practice
trishagee
67
18k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
It's Worth the Effort
3n
184
28k
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