Slide 1

Slide 1 text

1ZUIPOɺ ͱ͖Ͳ͖ 3VTU 1Z$PO+1ʢʣ Ѩ෦Ұ໵ʢ͋΂Μ΂Μʣ

Slide 2

Slide 2 text

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 ͓·͑୭Α

Slide 3

Slide 3 text

ςΫϊϩδʔͱਓʑͱͷܨ͕ΓͰࣾձ՝୊Λղܾ͍ͨ͠ https://www3.nhk.or.jp/news/html/20200816/k10012569481000.html 

Slide 4

Slide 4 text

஫ҙࣄ߲ ຊࢿྉͷ಺༰͸શͯஶऀݸਓʹؼ͢Δ΋ͷͰ͋Γɺॴଐ͢ΔػؔͷݟղΛ൓өͨ͠΋ͷͰ͸͋Γ·ͤΜɻ

Slide 5

Slide 5 text

ϒϩοΫνΣʔϯ෼໺Ͱ 3VTU΁ͷ஫໨͕ߴ·͍ͬͯΔ Ϟνϕʔγϣϯ wେ޷͖ͳΠʔαϦΞϜͷߟҊऀ ϰΟλϦοΫɾϒςϦϯ͕1ZUIPOJTUBͰ͋Δɻ イーサリアム wϰΟλϦοΫ͕ߟҊͨ͠εϚʔτίϯτϥΫτʮ7ZQFSʯ͸ɺ1ZUIPOͰ࣮૷͞ Ε͍͕ͯͨॏେͳ໰୊͕͓͖ͯ3VTUʹҠߦ͞Ε͍ͯΔɻ スマートコントラクト w-JCSBʢϦϒϥʣ 4PMBOBʢιϥφʣͳͲͷεϚʔτίϯτϥΫτ͸3VTUϕʔε Ͱ࣮૷ɾ։ൃ͞Ε͍ͯΔɻ パブリックブロックチェーン 

Slide 6

Slide 6 text

ࠓ೔ͷ͓࿩ • 1ZUIPOݴޠ࢓༷ʹ͍ͭͯ • 3VTUʹ͍ͭͯ • 1ZUIPO㱻3VTUؒͰͷݺͼग़͠ʹ͍ͭͯ • ੑೳʹ͍ͭͯ 

Slide 7

Slide 7 text

1ZUIPOݴޠ࢓༷ʹ͍ͭͯ

Slide 8

Slide 8 text

l1ZUIPOz͸ݴޠ࢓༷ • 1ZUIPO͸ݴޠ࢓༷ͷ͜ͱͰɺ͍Ζ͍ΖͳϓϩάϥϛϯάݴޠͰ ࣮૷͞Ε͍ͯΔɻ • ීஈɺΈΜͳ͕࢖ͬͯΔͷ͸ɺ$ݴޠͰ࣮૷͞Εͨ$1ZUIPOͰ͋Δɻ • ͦΕҎ֎ʹ΋ɺෳ਺ͷݴޠͰ࣮૷͞Ε͍ͯΔɻ $1ZUIPO $ݴޠͰ࣮૷ɺΈΜͳ͕࢖ͬͯΔͷ͸͜Ε +ZUIPO KBWBͷ+7. *SPO1ZUIPO /&5'SBNFXPSLPS.POP 1Z1Z ׬શʹ1ZUIPOͰॻ͔Εͨ1ZUIPOͷ࣮૷ .JDSP1ZUIPO ͜Ε΋$ݴޠͰ࣮૷͞Ε͍ͯΔ͕ɺ1ZUIPOϓϩάϥϛϯ άݴޠΛίϯύΫτ͔ͭޮ཰తʹ࣮૷ͨ͠΋ͷ $-1ZUIPO $PNNPO-JTQͰ࣮૷ ͦͷଞ 

Slide 9

Slide 9 text

1ZUIPO͸άϧʔݴޠ 1ZUIPO͸ʮखଓ͖ʯͱʮखଓ͖ʯΛͭͳ͛Δ ކ෇͚ʢάϧʔɿ(MVFʣݴޠͱͯ͠ར༻͞Εͨͷ͕ɺ ਓؾ΍େ͖ͳൃలʹܨ͕͍ͬͯΔɻ 

Slide 10

Slide 10 text

1ZUIPOΛߴ଎Խ͢Δํ๏ 

Slide 11

Slide 11 text

3VTUʹ͍ͭͯ

Slide 12

Slide 12 text

೥ʹϦϦʔε͞Εͨ ΘΓͱ৽͍͠ϓϩάϥϛϯάݴޠ .P[JMMB΍"84ɺ .JDSPTPGU"[VSFͳͲ͕ࢧԉ ҆શͳϓϩάϥϛϯάݴޠ ͱͯ͠஫໨ 3VTUͱ͸ 

Slide 13

Slide 13 text

೥࿈ଓͰ࠷΋Ѫ͞Εͨݴޠ https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages 

Slide 14

Slide 14 text

3VTUͷಛ௃ https://www.rust-lang.org/ja w3VTU͸ඇৗʹߴ଎ͰϝϞϦޮ཰͕ߴ͘ϥϯλΠϜ΍ΨϕʔδίϨΫλ͕ͳ͍ ͨΊɺύϑΥʔϚϯεॏࢹͷαʔϏεΛ࣮૷Ͱ͖·͢͠ɺ૊ࠐΈػث্Ͱ࣮ ߦͨ͠Γଞͷݴޠͱͷௐ࿨΋؆୯ʹͰ͖·͢ɻ ύϑΥʔϚϯε w3VTUͷ๛͔ͳܕγεςϜͱॴ༗ݖϞσϧʹΑΓϝϞϦ҆શੑͱεϨου҆શ ੑ͕อূ͞Ε·͢ɻ͞Βʹ༷ʑͳछྨͷόάΛίϯύΠϧ࣌ʹഉআ͢Δ͜ͱ ͕ՄೳͰ͢ɻ ৴པੑ w3VTUʹ͸༏ΕͨυΩϡϝϯτɺ༗༻ͳΤϥʔϝοηʔδΛඋ͑ͨ࢖͍΍͍͢ ίϯύΠϥɺ͓Αͼ౷߹͞ΕͨύοέʔδϚωʔδϟͱϏϧυπʔϧɺଟ਺ ͷΤσΟλʹରԠ͢ΔεϚʔτͳࣗಈิ׬ͱܕݕࠪػೳɺࣗಈϑΥʔϚολ ͱ͍ͬͨҰྲྀͷπʔϧ܈͕਺ଟ͘ἧ͍ͬͯ·͢ɻ ੜ࢈ੑ 

Slide 15

Slide 15 text

ύϑΥʔϚϯεͱϝϞϦ҆શੑͷؔ܎ ύϑΥʔϚϯε ϝϞϦηʔϑ ΄ͱΜͲͷϓϩάϥϛϯάݴޠ͸ɺύϑΥʔϚϯεͱϝϞϦ҆શੑʢϝϞϦηʔϑʣ͕ τϨʔυΦϑؔ܎ʹͳ͍ͬͯΔɻ γεςϜ͕ࣗಈͰෆཁͳ ϝϞϦΛ͔͖ूΊΔɻ ΨϕʔδίϨΫγϣϯͳͲ ϝϞϦ͸ϓϩάϥϚ͕ શ੹೚Λ࣋ͬͯ؅ཧ͢Δɻ 3VTUͰ͸ɺ஋ʢʹϝϞϦʣͷॴ༗ݖΛ Ҡಈͤ͞Δ͜ͱͰɺϝϞϦͷ҆શੑΛ֬อ͢Δɻ 

Slide 16

Slide 16 text

ʢ͓·͚ʣ3VTUͷ঺հಈը https://keens.github.io/slide/anzennagengorust/ https://youtu.be/t9C11A_lLwY?t=2864 ˣ͜ͷಈըͷεϥΠυ κeen (きーん) さん 実践Rust⼊⾨ 

Slide 17

Slide 17 text

3VTUͷΠϯετʔϧ https://rustup.rs/ 

Slide 18

Slide 18 text

3VTUͷݱ࣌఺ͷ࠷৽όʔδϣϯ IUUQTCMPHSVTUMBOHPSH 

Slide 19

Slide 19 text

74$PEF͔Β࢖͏ʹ͸ IUUQTNBSLFUQMBDFWJTVBMTUVEJPDPNJUFNT JUFN/BNF WBEJNDOWTDPEFMMEC IUUQTNBSLFUQMBDFWJTVBMTUVEJPDPNJUFNT JUFN/BNF SVTUMBOHSVTU 3VTUϓϩάϥϜΛσόοάʹ͸ $PEF--%#͕ඞཁ コードの補完やリファクタリングに はRust拡張機能が必要 ˞8JOEPXTͷ৔߹͸ɺ.47$ͷσόοΨ΋࢖͑ΔͷͰʮ$$ ֦ுػೳʯͷΠϯετʔϧ΋͓નΊ͠·͢ɻ 

Slide 20

Slide 20 text

1ZUIPO㱻3VTUؒͰͷ ݺͼग़͠ʹ͍ͭͯ

Slide 21

Slide 21 text

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ͳͲ͔Β ؆୯ʹݺͼग़ͤΔɻ 

Slide 22

Slide 22 text

1Z0 3VTU͔Β1ZUIPOΛݺͼग़ͨ͠Γɺ1ZUIPO͔Β 3VTUΛݺͼग़ͩͤΔϥΠϒϥϦ ݱ࣌఺Ͱͷ࠷৽൛͸WFS IUUQTHJUIVCDPN1Z0QZP 

Slide 23

Slide 23 text

3VTUͷ։ൃϓϩδΣΫτ࡞੒ํ๏ ࣮ߦϑΝΠϧΛ࡞ΔϓϩδΣΫτΛ࡞੒͢Δɻ $BSHPUPNMΛमਖ਼ʢ1Z0ϥΠϒϥϦΛར༻͢ΔΑ͏ʹઃఆʣ͢Δɻ ্هͷίϚϯυͷΑͬͯϫʔΫεϖʔεઃఆϑΝΠϧʢ$BSHPUPNMʣͱ ϝΠϯؔ਺ʢNBJOSTʣϑΝΠϧͷεέϧτϯ͕ࣗಈੜ੒͞ΕΔͷͰ ΤσΟλͰमਖ਼Λߦ͏ɻ 

Slide 24

Slide 24 text

3VTUϝΠϯؔ਺ͷ४උ ʢ3VTU͔Β1ZUIPOͷݺͼग़͠ʣ ɽϝΠϯؔ਺ʢNBJOSTʣΛमਖ਼͢Δɻ 3VTU͔Βࣗ࡞ͨ͠1ZUIPOؔ਺Λݺͼग़͢αϯϓϧίʔυ ʲz͓·͡ͳ͍zͱ ࢥͬͯԼ͍͞ʳ ࣗ࡞ͨ͠1ZUIPO ίʔυ͕୳ͤΔΑ ͏ʹΧϨϯτϑΥ ϧμʹύεΛ௨͢ɻ ࣗ࡞ͨ͠ 1ZUIPOؔ਺Λ ݺͼग़͢ɻ 

Slide 25

Slide 25 text

࣮ߦʢ3VTU͔Β1ZUIPOͷݺͼग़͠ʣ 3VTUͷϝΠϯؔ਺Λ࣮ߦ͢ΔʢϦϦʔε൛Ͱ͔࣮͠ߦͰ͖ͳ͍ͷͰ஫ҙʂʣ 1ZUIPOίʔυͷ४උ ݺͼग़͞ΕΔ1ZUIPOίʔυΛϓϩδΣΫτͷΧϨϯτύεʹ४උ͢Δɻ https://github.com/abenben/rust-test02 ˣίʔυ͸ҎԼ63-ͷ(JU)VCʹ͋Γ·͢ɻ 

Slide 26

Slide 26 text

3VTU͔Β1ZUIPOΛݺͼग़͢ϝϦοτ • 1ZUIPOͷϥΠϒϥϦ͕࢖͑Δɻ • 1ZUIPOͰॻ͍ͨػցֶशͷ ϩδοΫͳͲΛݺͼग़ͤΔɻ 

Slide 27

Slide 27 text

3VTUͷ։ൃϓϩδΣΫτ࡞੒ํ๏ ʢϥΠϒϥϦ࡞੒࣌ʣ ࣮ߦϑΝΠϧΛ࡞ΔϓϩδΣΫτΛ࡞੒͢Δɻ $BSHPUPNMΛमਖ਼ʢ1Z0ϥΠϒϥϦΛར༻͢ΔΑ͏ʹઃఆʣ͢Δɻ ্هͷίϚϯυͷΑͬͯϫʔΫεϖʔεઃఆϑΝΠϧʢ$BSHPUPNMʣͱ ϥΠϒϥϦؔ਺ʢMJCSTʣϑΝΠϧͷεέϧτϯ͕ࣗಈੜ੒͞ΕΔͷͰ ΤσΟλͰमਖ਼Λߦ͏ɻ  ϥΠϒϥϦΛ࡞Δͱ͖͸MJCΛ͚ͭΔ ϥΠϒϥϦΛ࡞Δ৔ ߹ʹඞཁͳઃఆ ϥΠϒϥϦͷݺͼग़ ํʹ஫ҙ ʢNBJO࣌ͱҟͳΔʣ

Slide 28

Slide 28 text

ϥΠϒϥϦ४උ ʢ1ZUIPO͔Β3VTUͷݺͼग़͠ʣ ɽϥΠϒϥϦؔ਺ʢMJCSTʣΛमਖ਼͢Δɻ 1ZUIPO͔Βݺͼग़͢3VTUؔ਺ͷαϯϓϧίʔυ  Ҿ਺ແ͠ɺ໭Γ஋ແ͠ ੔਺͕Ҿ਺ɺ੔਺͕໭Γ஋ จࣈྻ͕Ҿ਺ɺ੔਺͕໭Γ஋

Slide 29

Slide 29 text

ϥΠϒϥϦ४උ ʢ1ZUIPO͔Β3VTUͷݺͼग़͠ʣ ʢଓ͖ʣ  ഑ྻͱ੔਺͕Ҿ਺ɺ ഑ྻ͕໭Γ஋ λϓϧʢཁૉʣͱ੔਺͕Ҿ਺ɺ ͭͷ੔਺͕໭Γ஋

Slide 30

Slide 30 text

࣮ߦʢ1ZUIPO͔Β3VTUͷݺͼग़͠ʣ https://github.com/abenben/rust-test01 ˣίʔυ͸ҎԼ63-ͷ(JU)VCʹ͋Γ·͢ɻ 3VTUͷϥΠϒϥϦʢ˞஫ҙɿNBDPTͷ৔߹ʣΛੜ੒͢Δ 1ZUIPOͷϝΠϯؔ਺Λ࣮ߦ͢Δ 1ZUIPOίʔυʢNBJOQZʣͷ४උ 3VTUؔ਺Λݺͼग़͢1ZUIPOίʔυΛϓϩδΣΫτͷΧϨϯτύεʹ࡞੒͢Δɻ 

Slide 31

Slide 31 text

1ZUIPO͔Β3VTUΛݺͼग़͢ϝϦοτ • ॲཧͷߴ଎Խ͕Ͱ͖Δɻ • $$ Ͱ࡞ΔΑΓ ϝϞϦηʔϑͳϥΠϒϥϦ͕࡞ΕΔɻ ʢੜ࢈ੑ΋ߴ͍ʣ 

Slide 32

Slide 32 text

ੑೳʹ͍ͭͯ

Slide 33

Slide 33 text

ੑೳൺֱͷ४උ +VQZUFSΛ࢖ͬͯ1ZUIPOͱ$ZIUPOɺ +*5 /VNCB ɺ3VTUΛ·ͱΊͯܭଌ͢Δɻ ·ͣ͸Πϯετʔϧʂ 

Slide 34

Slide 34 text

ੑೳൺֱ 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 ܭଌ݁Ռ ϚγϯεϖοΫ

Slide 35

Slide 35 text

ʢ͓·͚ʣ+VQZUFS͔Β؆୯ʹ࿈ܞ 

Slide 36

Slide 36 text

·ͱΊ • 3VTU͸ɺϝϞϦηʔϑͱੑೳͷτϨʔυΦϑؔ܎ Λଧͪഁͬͯ͘ΕΔɻ • 1ZUIPO㱻3VTUؒͷݺͼग़͠͸εϜʔζͰ͋Δɻ ʢҰ෦ɺ͓·͡ͳ͍͕ඞཁXʣ • 1ZUIPO͸ɺࠓޙ΋άϧʔݴޠʢ㲈࢘ྩౝʣͱͯ͠ ൃల͠ଓ͚Δɻ  ˞ࠓճ͸આ໌͠·ͤΜͰ͕ͨ͠ɺ 3VTU͸ฒྻԽ΍ඇಉظ*0Λ࢖͏͜ͱͰɺ͞ΒʹϚοϋʹͳΓ·͢ʂ

Slide 37

Slide 37 text

͓·͚ʢએ఻ʣ 4UBSU1ZUIPO$MVCʢ݄Ͱ։࠵ʂʣͰ଴ͬͯ·ʔ͢ʂʂ IUUQTTUBSUQZUIPODPOOQBTTDPN