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
型、ついてますか? - 型の本質を振り返る -
Search
TAKANO Mitsuhiro
July 08, 2016
Programming
10
4k
型、ついてますか? - 型の本質を振り返る -
なぜ、動的型付けスクリプト言語の流行りから、再び静的型付けの言語が注目されているのか。
型付けの歴史を振り返り、これからの「型」のありかた、それを実装した処理系のありかたについて考えます。
TAKANO Mitsuhiro
July 08, 2016
Tweet
Share
More Decks by TAKANO Mitsuhiro
See All by TAKANO Mitsuhiro
Pharo 6 最新情報 | 第101回Smalltalk勉強会
takano32
0
240
Programming Language Spry
takano32
1
580
Other Decks in Programming
See All in Programming
Open source software: how to live long and go far
gaelvaroquaux
0
640
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
230
時計仕掛けのCompose
mkeeda
1
300
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4k
Honoとフロントエンドの 型安全性について
yodaka
7
1.3k
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
370
Grafana Loki によるサーバログのコスト削減
mot_techtalk
1
130
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1k
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
130
SpringBoot3.4の構造化ログ #kanjava
irof
2
1k
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
270
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
49
17k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Rails Girls Zürich Keynote
gr2m
94
13k
Visualization
eitanlees
146
15k
4 Signs Your Business is Dying
shpigford
182
22k
Adopting Sorbet at Scale
ufuk
74
9.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
51k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Embracing the Ebb and Flow
colly
84
4.6k
Fireside Chat
paigeccino
34
3.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
ܕɺ͍ͭͯ·͔͢ʁ - ܕͷຊ࣭ΛৼΓฦΔ - ϋογϡλά #AIAL ԙ ຊϚΠΫϩιϑτ 2016-07-08 TAKANO
Mitsuhiro a.k.a. @takano32 SORABITO Inc. / jus / CONBU
ձʹײँ ͍͖ͭ͞ നϠΪίʔϙϨʔγϣϯͷຊ͞Μ͔Βߨࢣͷଧ ࣾ + ͪΐͬͱ֎෦ͳงғؾͷ 15ਓ͘Β͍ͷษڧձ Πϕϯτެ։ޙ 3࣌ؒ͘Β͍Ͱ15ਓຒ·Δ ެ։͔Β1Ͱ30ਓ͘Β͍·ͰࢀՃొ
ຊϚΠΫϩιϑτ͞Μ ͋Γ͕ͱ͏͍͟͝·͢ʂ ձ୳͠ Facebook ͰΫϩʔζυͳࠂ ຊϚΠΫϩιϑτͷࢁຊ͞Μ͔Βձఏڙʹ͍͓͕͚͍͚ͭͯͨͩ·ͨ͠ ֤ॴͱௐͭͭ͠ຊϚΠΫϩιϑτ͞ΜͷձΛ͓आΓ͢Δ͜ͱ͕Ͱ͖·ͨ͠ʂ ձܾఆͷ࣌Ͱ60ਓ͕ࢀՃొ Twitter ͳͲͷݸਓͷϝσΟΞͰࠂ
100ਓͷձʹ΄΅ࢀՃొ100ਓ ΄Μͱ͏ʹ͋Γ͕ͱ͏͍͟͝·͢ʂ
λΠτϧͷݩωλ ϥΠτɺ͍ͭͯ·͔͢ʁ ղܾͷखҾ͖ ਖ਼͘͠ଊ͍͑ͯΔ͔ͷֶ ؒҧͬͨʹແବͳྗ ଘࡏ͠ͳ͔ͬͨ
͓લɺ୭Α TAKANO Mitsuhiro a.k.a. @takano32 ߴ ޫ߂ / ͔ͨͷ ΈͭͻΖ
ຊUNIXϢʔβձ(װࣄ|ཧࣄ) SORABITOגࣜձࣾ ٕज़εϖγϟϦετ Smalltalk-ing Ruby committer Senior Infrastructure Engineer
ઐͱܦྺ
ઐ ͳΜͱͳ͘ϓϩάϥϛϯά͕ ͖ͩͬͨ͋ͷ͜Ζ
ઐ ߴߍੜͷͱ͖͔ΒϓϩάϥϛϯάΛ͡ΊΔ େֶ࣌ ωοτϫʔΫͱηΩϡϦςΟͷݚڀ म࢜จݴޠॲཧ ࣮ߦڥʹґଘ͠ͳ͍ιϑτΣΞهड़ݴޠʹؔ͢Δݚڀ δϟϰΝͷͰͳ͍
ઐ(CONT.D) ΞϧόΠτ Smalltalk VM ͷ։ൃ Linux Ոి͚ϓϥοτϑΥʔϜ Windows͚ࣾϝοηϯδϟʔ Smalltalk VM
Λ༻͍ͨ .NET VM ͷ։ൃ ܞଳి͚ϓϥοτϑΥʔϜ ҰൠతͳిࢠऔҾαΠτͷߏஙಛڐࣄۀͷ্ཱͪ͛
ܦྺ ʮܦݧͰ͖ͳ͍͜ͱʯΛܦݧ͢Δ
ܦྺ גࣜձཱࣾ࡞ॴ ৽ଔͰͳ͍ͱຊମͷજೖͰͷ࠾༻͍͠ ԾԽػߏͷઃܭ։ൃ ຊͰ͍ͬͯΔͱ͜Ζ͕ଞʹͳ͍ ࣾһ͕ϋϯύͳ͍ ίϛϡχςΟʔ׆ಈ ࣾͷͭͳ͕ΓͰࢁຊ͞Μ(@mihochannel)ͱΓ߹͏ ࣾ֎ͷ׆ಈͰຊ͞Μ(@t2y)ͱΓ߹͏
ܦྺ(CONT.D) άϦʔגࣜձࣾ େنΠϯϑϥετϥΫνϟͷࢦش ৫શମΛࢧ͑Δ௨γεςϜ ܭࢉػͷ͕ϋϯύͳ͍ SORABITOגࣜձࣾ Smalltalk ʹΑΔిࢠऔҾαΠτ ͋ͨΓͷ୯Ձ͕ϋϯύͳ͍ ॏػݐػͷϚʔέοτϓϨΠε
͓Αͦೋԯԁͷग़ͳͲଘࡏ Smalltalk ͰۀγεςϜΛ࡞Δͱ͔ܦݧͰ͖ͳ͍ʂʂʂ
ҰݴͰݴ͑ԿͰ ͦͦ͜͜ਂͬͯ͘ΔԿͰ
ؓٳɻ
ܕɺ͍ͭͯ·͔͢ʁ
ܕɺ͍ͭͯ·͔͢ʁ ܕʹ͍ͭͯͷೝࣝΛ֬ೝ ܕͷຊ࣭Λཧղ͢Δ ܕʹ͍ͭͯٞ͢Δ·͑ʹ͢Δ͖ ܕʹ͍ͭͯඞཁͷແ͍ٞগͳ͘ͳΔͣ ܕʹ·ͭΘΔྺ࢙Τϐιʔυͷհ
֓ཁ Ұൠతͳʮܕʯʹ͍ͭͯͷ֓ཁ ੩తܕ͚ ಈతܕ͚ ܕ͚ͷ෩ை (ݹ|ۙ|ݱ|ݪ࢝)(ಈత|੩త)ܕ͚
֓ཁ(CONT.D) ෩ைͷมભ ͦΕͧΕͷ෩ைʹ͓͚Δʮࢦʯ ܕɺ͍ͭͯ·͔͢ʁ ܕͷඞཁੑ ܁Γฦ͞ΕΔྺ࢙ ͜Ε͔Βͷʮܕʯͷ͋Γํ
Ұൠతͳܕʹ͍ͭͯͷ֓ཁ ಛఆͷݴޠܕͷٕज़ʹ͍ͭͯͷৄࡉׂѪ ͬͱ;͞Θ͍͠ษڧձ͕͋Γ·͢ ͋͘·Ͱ͜ͷͰશମΛΈ·͢ ΛΈͯथւʹ໎Θͳ͍Α͏ʹҙ ໘ന͍͜ͱɺҙ֎ͳͷऔΓ্͛·͢ ͓࢈ʹͬͯؼΕΔ͕͍͔ͭ͋͘Δͣ
੩తܕ͚ ʮܕ͕͍͍ͭͯΔʯͱ͍͑҉తʹ੩తܕ ͚ͷ͜ͱ ࣄલʹมͷܕΛਫ਼ࠪ͢Δ ੩తͳղੳ ίϯύΠϧ࣮ߦલͷόάൃݟ
ಈతܕ͚ ࣄલʹมͷܕΛਫ਼ࠪ͠ͳ͍ ಈతͳධՁʹΑͬͯ͡Ίͯܕ͕Θ͔Δ ࣮ߦ࣌ͷܕ͚
(੩తcಈత)ܕ͚ ੩తܕ͚Ͱࣄલͷղੳॲཧ Ұൠʹิॿͷهड़Λߦ͏ ࣮ߦݫີʹߦ͍ͬͯͳ͍ ͍͘Β੩తܕ͚ͷॲཧܥʹΑΔॲཧ͕ҰॠͰऴΘ͍ͬͯͯ ಈ࡞࣌ͷܕ͚ҟͳΔ ࣮ߦ͕Ͱ͖Δͷಈతܕ͚͚ͩ ৄࡉղઆ͠·͢
ܕ͚ͷ෩ை ݹ੩తܕ͚ ݹಈతܕ͚ ۙಈతܕ͚ ۙ੩తܕ͚ ݱಈతܕ͚ ݱ੩తܕ͚ ݪ࢝ಈతܕ͚ ݪ࢝੩తܕ͚
(ݪ࢝cݹcۙcݱ) (ಈతc੩త) ܕ͚
8छྨϠϦա͗ͱ ল͓ͯ͠Γ·͕͢ ͬͪΌͬͨͷ͠ΐ͏͕ͳ͍
ݹ੩తܕ͚ CݴޠΛදͱ͢Δͷʹ࠾༻ γεςϜͱີͳܕ͚ ܕ͕ෆ໌ͩͱσʔλͷѻ͍ํ͕͔Βͳ͍
A B A
A B A
A B A
ݹಈతܕ͚ ॲཧͷهड़ͱϑΥʔΧε͕Ҡ͍ͬͯ͘ γεςϜͷهड़Ͱͳ͍ BASIC ॳ৺ऀ͚ͷݴޠͱͯ͠ҐΛཱ֬ ཪٕͬΆ͍ςΫχοΫͰγεςϜʹΞΫηεͰ͖Δ ex. DATA, PEEK, POKE
γΣϧεΫϦϓτ γεςϜͱର͢ΔͨΊͷػߏΛԠ༻
ίϥϜ: γΣϧ ྫ֎ଘࡏ͢Δ γεςϜͱ҆શʹର͢Δͷ͕γΣϧຊདྷͷׂ ਅͷLinux Kernel ͚γΣϧ Ͳ͏ΈͯόΧ ๙Ίݴ༿
ίϥϜ: ҧײ͕͋Δݴ༿ γΣϧεΫϦϓτΛॻ͘͜ͱΛʮγΣϧΛॻ͘ʯ bash zsh Λ։ൃ͍ͯ͠Δʁʁʁ IP ΞυϨεͷ͜ͱΛʮIPʯ IP
ͱΠϯλʔωοτϓϩτίϧͷ͜ͱͰ IP ΞυϨεͱ IP Ͱͷ ૹ৴ઌૹ৴ݩͷΞυϨε ͜ͷҧײΛ͔Γ͘͢ྫ͑Δ Wikipedia ͷ͜ͱΛ ʮWikiʯ ͱදݱ͍ͯ͠ΔϞϠϞϠײ
ۙಈతܕ͚ ݹಈతܕ͚Ͱղܾ͕໘ͩͬͨͷվળ Perl sh + sed + awk + grep
ڧྗͳจࣈྻૢ࡞ ಛʹPerlޓͷਖ਼نදݱͷଘࡏେ͖͍Ռ PCREͱͯ͠ଞͷੈքʹେ͖͘Өڹ
ۙಈతܕ͚(CONT.D) PHP దʹॻ͚ಈ͘ རͰ͋Δܽ͠Ͱ͋Δ ܕͷٞͳͲͷͰᎏ᎐͞ΕΔ͜ͱଟ͍ ଟ͘ͷΛղܾ͖ͯͨ͠ͷࣄ࣮ Python Perl ॻ͘ͷΠϠʹͳͬͨΑͶ Ϋηͷ͋Δ
Perl Monger ͷՌಡΊ·ͤΜ…
ۙ੩తܕ͚ C++ݴޠʹද͞ΕΔͷʹ࠾༻ ৽͍͠ύϥμΠϜͷ্ͤ C++ݴޠͰΦϒδΣΫτࢦ ϓϩάϥϜͷߏԽͷԆઢ্ʹΦϒδΣΫτࢦͷςΠετΛࡌ ͤͨ ͋͘·ͰCݴޠ͔Βͷൃలܥͱଊ͑Δ͜ͱ͕Ͱ͖Δ ϧʔϧ͕ෳࡶ͗͢ΔͷͰɺ͍͜ͳͤΔΤϯδχΞఱ࠽ͩͱײ͡Δ
ݱಈతܕ͚ ύϥμΠϜϢʔεέʔεʹΑͬͯେ͖͘ීٴ Ruby ΦϒδΣΫτࢦΛલఏͱͨ͠ݴޠ ͋ͱ͔ΒࡌͤͨͷͰͳ͍ͷͰෆࣗવ͕͞ͳ͍ JavaScript WebϒϥβͰͷಈ࡞Λఆ͠ීٴͨ͠ݴޠ ʮJavaScriptOFFʹ͢Δʯͱ͍͏͔࣌Βͷܶతͳ෮׆
ݱ੩తܕ͚ ۙ੩తܕ͚ΑΓڧ͍ػೳ γεςϜهड़ϨΠϠʔ͔Βͷղ VM ͱ͍͏ਓྨͷӳ ϚϧνϓϥοτϑΥʔϜ ex. Java, Haskell, AltJS
ݪճؼɻ
ݪ࢝ಈతܕ͚ ߟ͑ͯΈΑ͏ɺϊΠϚϯܕίϯϐϡʔλ Ϩδελ ଈ ΞυϨε
ݪ࢝ಈతܕ͚(CONT.D) MOV EAX, [1000h] 1000h ͱ͍͏ଈΛ EAX ϨδελʹೖΕΔ MOV [ff00h],
EBX EBX ϨδελͷΛ ff00h ͷΞυϨεʹೖΕΔ χʔϞχοΫػցޠͱ૬ޓʹஔͰ͖Δ 0 ͱ 1 ͷ࿈ଓͰදݱ͞ΕͨنଇΛنʹΑͬͯධՁ͍ͯ͘͜͠ͱͰੈͷதͷେ ͷγεςϜಈ࡞͍ͯ͠Δ ͜ͷʮධՁʯ͕ͦ͜ɺ΄΅ͯ͢ͷࠜװʹ͋Δʮ࣮ߦʯ
ػցޠͷܕ͚ ੩తܕ͚ͳͷ͔ಈతܕ͚ͳͷ͔ ࣮ߦ࣌ʹଈ͔ΞυϨεΛஅ ͜ͷ͔࣌Βࣄલͷॲཧ͕ͳ͍ ͑ͯྨ͢ΔͳΒಈతܕ͚ͱ͍͑Δ ͯ͢ͷجຊ͜ͷαΠΫϧͰ͋ΔͨΊɺಈతܕ͚ ͔Βಀ͛Δ͜ͱ͕Ͱ͖ͳ͍
ίϥϜ: ػցޠͱCݴޠͷ ؾܰʹΔ͜ͱ͕Ͱ͖Δʹ͍ͭͯհ a[2] == 2[a]; ࣜͷʁ ʮਅʯ
Կ͕ى͖͍ͯΔͷ͔ʁ
a 2 a[2] a 2 2[a]
ݪ࢝੩తܕ͚ ىݯϥϜμܭࢉʹ͋Γ ܕͳ͠ϥϜμܭࢉ വͷΈͰ͞·͟·ͳॲཧΛ࣮ݱ͢ΔՄೳੑΛఏࣔ ࣗવͷѻ͍ɺ݅ذɺ࠶ؼ ܕ͋ΓϥϜμܭࢉ ܕͳ͠ϥϜμܭࢉͷൃలܥ ڧ͍ܕ͚ͱԆධՁͷૅͱͳͬͨΈ ৄࡉΛ͢ͱ 12
࣌ؒ͘Β͍ʹͳΓͦ͏ͳͷͰׂѪ
෩ைͷมભ
ݪ࢝ ݪ࢝ಈతܕ͚ ϊΠϚϯܕίϯϐϡʔλ ݪ࢝੩తܕ͚ ࢥߟతͳ࣮ݧ
ݹ ݹ੩తܕ͚ γεςϜͷهड़ͷͨΊʹภ͍ͬͯΔ Ϣʔβͷॲཧͷهड़ʹ໘ ݹಈతܕ͚ γεςϜͱͷର هड़ͷརศੑΛॏࢹ
ۙ ۙ੩తܕ͚ ݹ੩తܕ͚ʹର͢Δ৽͍͠ύϥμΠϜͷద༻ ۙಈతܕ͚ ݹಈతܕ͚ʹର͢Δ৽͍͠ύϥμΠϜͷద༻ ۙʹ͓͚Δʮ৽͍͠ύϥμΠϜʯ ΦϒδΣΫτࢦͱ͍ͬͯΑ͍
ݱ ݱಈతܕ͚ ৽͍͠ύϥμΠϜ͕ઌʹ͋Δಈతܕ͚ ݱ੩తܕ͚ ৽͍͠ύϥμΠϜ͕ઌʹ͋Δ੩తܕ͚ ݱʹ͓͚Δʮ৽͍͠ύϥμΠϜʯ ΦϒδΣΫτࢦͱ͍͑Δ
ܕɺ͍ͭͯ·͔͢ʁ
ܕͰΈΔྺ࢙ ݪ࢝ܕ͚࣌ ܕͱ͍͏ͷҙࣝ͞Εͳ͔ͬͨ ݹܕ͚࣌ ॲཧ͢Δͷੑ࣭ʹΑͬͯܕ͚͕͞Εͨ ۙܕ͚࣌ ৽͍͠ύϥμΠϜͷςΠετ͕Ճ͞Εͨ ݱܕ͚࣌ ৽͍͠ύϥμΠϜ͕ઌʹ͋Γɺͦͷޙʹॲཧܥ͕͋Δ
ྺ࢙͔ΒֶͿܕ ަޓʹಈతܕ͚ͱ੩తܕ͚͖ͯͨ͠ ͕࣌ਐΉʹͭΕͯʮཧతͳʯܭࢉػ͔Βͷ ڑԕ͘ͳ͍ͬͯΔ ߴͳநԽ
͜Ε͔ΒͷʮมԽʯΛಡΉ
ͳͥɺྺ࢙܁Γฦ͢ͷ͔ σόοάࠔͳঢ়ଶͱͳͬͨͱ͖ ੩తͳܕ͚ͱݟ͔͚ͤͯಈతͳܕ͚ͱ͍͏Έ߹Θ͕ͤअѱ CݴޠC++ݴޠͰσόοΨΛڧԽͯ͠Ԇ໋ ղܾͷυϝΠϯͱॲཧܥͷΠϯϐʔμϯεϛεϚον ex. WebγεςϜͷ৽ن։ൃʹPerlΛ࠾༻͠·͔͢ʁ நԽͷϨϕϧ ΦϒδΣΫτࢦͷ͜ͱΛߟ͍͑ͯΔͱ͖ʹϙΠϯλͱ͔ϝϞϦͱ͔ܕͷෆҰ கͰσʔλͷϚοϐϯά͕ڰ͍ͦ͏ɺΈ͍ͨͳ͜ͱʹҙΛ͍ͨ͘ͳ͍
͜Ε͔ΒͷʮܕʯΛߟ ྺ࢙͔ΒৼΓସ͑ΔϙΠϯτ υϝΠϯ ύϥμΠϜ நԽ Ϧιʔε ੩తͱಈతͷ࣠ʹΑΔߟ ཧͱ࣮ફ ۩ͱந
͜Ε͔ΒͷʮυϝΠϯʯ υϝΠϯͱղܾ͖͕͢Ͳͷʹଐ͍ͯ͠Δ͔ʁ ͱ͍͏ҙຯ ྺ࢙ͰγεςϜهड़ͱWeb͕େ͖͘Өڹ ݱࡏ HTTP ͕શ͕ͩՌͨͯ͜͠ͷ··ͳͷ͔ʁ ex. Web ΞϓϦέʔγϣϯ൪߸
80 ൪ IPv6 ͕ຊ֨తʹීٴͨ͠ͱ͖ʹԽ͚ΔՄೳੑ͕͋Δ
͜Ε͔ΒͷʮύϥμΠϜʯ ؔܕΦϒδΣΫτࢦʹද͞ΕΔʮ֓೦తͳ ࢥߟํ๏ʯ͕ύϥμΠϜ υϝΠϯʹରͯ͠༗ޮͳύϥμΠϜ͕ॲཧܥʹӨڹ ͯ͘͠Δ ex. ΞεϖΫτࢦ ex. ฒྻϓϩάϥϛϯά /
ฒߦϓϩάϥϛϯά
͜Ε͔ΒͷʮநԽʯ ΦϒδΣΫτࢦΑΓਐΜͩநԽ UML ͳͲͷ͜ͱ ex. Executable UML
͜Ε͔ΒͷʮϦιʔεʯ ܭࢉػͷύϫʔͷ͜ͱ ͜Ε͕όΧʹͳΒͳ͍ ex. ΨϕʔδίϨΫγϣϯ ߏ࣌࡞ͬͨϝϞϦΛ΄ͬͨΒ͔͢Α͏ͳ༨༟͕ϝϞϦۭؒʹͳ͔ͬͨ झຯͰ࡞ͬͨΦϞνϟѻ͍ ex. ΦϒδΣΫτࢦ ܧঝͷΈʹΑΓɺϝιουͷ୳ࡧʹ͕͔͔͍࣌ؒͬͯͨ
࣮༻తͰͳ͍ͱஅ͞Ε͍͍ͯͨ࣌ ݱͰΈࠐΈͰܟԕ͞Ε͕ͪ
͜Ε͔ΒͷʮϦιʔεʯ ͲͪΒͷཁૉٕज़ݱͰ͔ܽͤͳ͍ͷͱͳ͍ͬͯ Δ ΨϕʔδίϨΫγϣϯ ΦϒδΣΫτࢦ ५ͳܭࢉػϦιʔε͕खʹೖͬͨͱ͖ʹɺ͍·ΘΕ ͍ͯͳ͍ʮΦϞνϟʯ͕಄͢ΔՄೳੑेʹ͋Δ
͍·ݸਓతʹཉ͍͠Ϡπ ύϥμΠϜฤ
෭࡞༻Λߟྀͨ͠γΣϧ UNIXίϚϯυ ࣌എܠ͔Βޭ͔ࣦഊͷΈʹϑΥʔΧε ࣌ immutable infrastructure ෭࡞༻Λͨ͠γΣϧ͕͋Δͱศརͳ༧ײ ex. Monad +
shell ͜͜Ͱͷ෭࡞༻ͱૢ࡞͕ܭࢉػʹӨڹ͢Δ͔Λҙຯ͢Δ ෭࡞༻͕໌നʹΘ͔ΔγΣϧͰૢ࡞Ͱ͖Εɺ෭࡞༻͕ൃੜ͢ΔͷͷΈΛऔΓग़ͤΔͣ Dockerfile ͳͲ͕ࣗಈͰੜͰ͖Δؾ͕͢Δ
͜Ε͔Βͷܕͱॲཧܥʹͭ ͍ͯߟ͑ͯΈ·͠ΐ͏
ͦΕ͕ະདྷͷΤϯδχΞϥΠϑ Λ๛͔ʹ͢Δ͔͠Ε·ͤΜ
Ԇઓ ࠓ LL ΠϕϯτΛ։࠵͠·͢ LLoT - Lightweight Language of Things
http://ll.jus.or.jp/2016/ ܕͷηογϣϯͷొஃऀΛަবத http://ll.jus.or.jp/2016/program
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ SORABITOגࣜձࣾͰΤϯδχΞΛืूத શମΛ၆ᛌͰ͖ɺཧΛΓͭͭɺݱ࣮ͱಆ͍ɺεϐʔυͱ ࣭Λམͱ͞ͳ͍νʔϜ։ൃ ج൫ٕज़࠷ઌͷͷΛԲ͢Δ͜ͱͳ͘࠾༻ Pharo, PostgreSQL, Elasticsearch, Redis, Neo4j
ͳͲ αϙʔτঢ়گ͕ෆ໌Ͱɺ͍͟ͱͳΕʮજΔʯٕज़Λ֤ʑ ͕ൃشͯ͠ղܾ͍ͯ͘͠ຊདྷͷΤϯδχΞϦϯά͕Ͱ͖·͢