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
1
3.6k
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
Web3概略:手早く把握
abenben
2
1.2k
Web3とNFTの教科書
abenben
1
350
各種生成AIについて
abenben
3
1.6k
数年先の金融DX/AI活用
abenben
2
530
金融とAI
abenben
1
290
PythonによるWeb3開発
abenben
1
230
【超入門】対談前に知っておこう! 新時代の常識「Web3」のきほん
abenben
1
150
NFTを覚えて視野を広げよう!
abenben
1
720
進化し続けるPython事情、こっちも使えるか考えてみよう!
abenben
0
190
Other Decks in Technology
See All in Technology
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
190
いざ、BSC討伐の旅
nikinusu
2
780
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
AGIについてChatGPTに聞いてみた
blueb
0
130
Lexical Analysis
shigashiyama
1
150
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
ドメイン名の終活について - JPAAWG 7th -
mikit
33
20k
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
530
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
160
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Code Reviewing Like a Champion
maltzj
520
39k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
RailsConf 2023
tenderlove
29
900
Building Applications with DynamoDB
mza
90
6.1k
Building Your Own Lightsaber
phodgson
103
6.1k
Rails Girls Zürich Keynote
gr2m
94
13k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
KATA
mclloyd
29
14k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
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