型、ついてますか? - 型の本質を振り返る -

型、ついてますか? - 型の本質を振り返る -

なぜ、動的型付けスクリプト言語の流行りから、再び静的型付けの言語が注目されているのか。
型付けの歴史を振り返り、これからの「型」のありかた、それを実装した処理系のありかたについて考えます。

Eba4a40bdae5edfe1589601c050a2b96?s=128

TAKANO Mitsuhiro

July 08, 2016
Tweet

Transcript

  1. ܕɺ͍ͭͯ·͔͢ʁ - ܕͷຊ࣭ΛৼΓฦΔ - ϋογϡλά #AIAL ԙ ೔ຊϚΠΫϩιϑτ 2016-07-08 TAKANO

    Mitsuhiro a.k.a. @takano32 SORABITO Inc. / jus / CONBU
  2. ձ৔ʹײँ ͍͖ͭ͞ നϠΪίʔϙϨʔγϣϯͷ৿ຊ͞Μ͔Βߨࢣͷଧ਍ ࣾ಺ + ͪΐͬͱ֎෦ͳงғؾͷ 15ਓ͘Β͍ͷษڧձ Πϕϯτެ։ޙ 3࣌ؒ͘Β͍Ͱ15ਓຒ·Δ ެ։͔Β1೔Ͱ30ਓ͘Β͍·ͰࢀՃొ࿥

  3. ೔ຊϚΠΫϩιϑτ͞Μ ͋Γ͕ͱ͏͍͟͝·͢ʂ ձ৔୳͠ Facebook ͰΫϩʔζυͳࠂ஌ ೔ຊϚΠΫϩιϑτͷࢁຊ͞Μ͔Βձ৔ఏڙʹ͍͓ͭͯ੠͕͚͍͚ͨͩ·ͨ͠ ֤ॴͱௐ੔ͭͭ͠೔ຊϚΠΫϩιϑτ͞Μͷձ৔Λ͓आΓ͢Δ͜ͱ͕Ͱ͖·ͨ͠ʂ ձ৔ܾఆͷ࣌఺Ͱ60ਓ͕ࢀՃొ࿥ Twitter ͳͲͷݸਓͷϝσΟΞͰࠂ஌

    100ਓͷձ৔ʹ΄΅ࢀՃొ࿥100ਓ ΄Μͱ͏ʹ͋Γ͕ͱ͏͍͟͝·͢ʂ
  4. λΠτϧͷݩωλ ϥΠτɺ͍ͭͯ·͔͢ʁ ໰୊ղܾͷखҾ͖ ਖ਼͘͠ଊ͍͑ͯΔ͔ͷ఩ֶ ؒҧͬͨ໰୊ʹແବͳ౒ྗ ໰୊͸ଘࡏ͠ͳ͔ͬͨ

  5. ͓લɺ୭Α TAKANO Mitsuhiro a.k.a. @takano32 ߴ໺ ޫ߂ / ͔ͨͷ ΈͭͻΖ

    ೔ຊUNIXϢʔβձ(װࣄ|ཧࣄ) SORABITOגࣜձࣾ ٕज़εϖγϟϦετ Smalltalk-ing Ruby committer Senior Infrastructure Engineer
  6. ઐ໳ͱܦྺ

  7. ઐ໳ ͳΜͱͳ͘ϓϩάϥϛϯά͕ ޷͖ͩͬͨ͋ͷ͜Ζ

  8. ઐ໳ ߴߍੜͷͱ͖͔ΒϓϩάϥϛϯάΛ͸͡ΊΔ େֶ࣌୅ ωοτϫʔΫͱηΩϡϦςΟͷݚڀ म࢜࿦จ͸ݴޠॲཧ ࣮ߦ؀ڥʹґଘ͠ͳ͍ιϑτ΢ΣΞهड़ݴޠʹؔ͢Δݚڀ δϟϰΝͷ࿩Ͱ͸ͳ͍

  9. ઐ໳(CONT.D) ΞϧόΠτ Smalltalk VM ͷ։ൃ Linux Ոి޲͚ϓϥοτϑΥʔϜ Windows޲͚ࣾ಺ϝοηϯδϟʔ Smalltalk VM

    Λ༻͍ͨ .NET VM ͷ։ൃ ܞଳి࿩޲͚ϓϥοτϑΥʔϜ Ұൠతͳిࢠ঎औҾαΠτͷߏங΍ಛڐࣄۀͷ্ཱͪ͛
  10. ܦྺ ʮܦݧͰ͖ͳ͍͜ͱʯΛܦݧ͢Δ

  11. ܦྺ גࣜձࣾ೔ཱ੡࡞ॴ ৽ଔͰͳ͍ͱຊମ΁ͷજೖͰͷ࠾༻͸೉͍͠ Ծ૝Խػߏͷઃܭ։ൃ ೔ຊͰ͸΍͍ͬͯΔͱ͜Ζ͕ଞʹͳ͍ ࣾһ਺͕ϋϯύͳ͍ ίϛϡχςΟʔ׆ಈ ࣾ಺ͷͭͳ͕ΓͰࢁຊ͞Μ(@mihochannel)ͱ஌Γ߹͏ ࣾ֎ͷ׆ಈͰ৿ຊ͞Μ(@t2y)ͱ஌Γ߹͏

  12. ܦྺ(CONT.D) άϦʔגࣜձࣾ େن໛ΠϯϑϥετϥΫνϟͷࢦش ૊৫શମΛࢧ͑Δ௨஌γεςϜ ܭࢉػͷ୆਺͕ϋϯύͳ͍ SORABITOגࣜձࣾ Smalltalk ʹΑΔిࢠ঎औҾαΠτ ੒໿͋ͨΓͷ୯Ձ͕ϋϯύͳ͍ ॏػ΍ݐػͷϚʔέοτϓϨΠε

    ͓Αͦೋԯԁͷग़඼ͳͲ΋ଘࡏ Smalltalk Ͱۀ຿γεςϜΛ࡞Δͱ͔ܦݧͰ͖ͳ͍ʂʂʂ
  13. ҰݴͰݴ͑͹ԿͰ΋ ͦͦ͜͜ਂ͘΍ͬͯΔԿͰ΋԰

  14. ؓ࿩ٳ୊ɻ

  15. ܕɺ͍ͭͯ·͔͢ʁ

  16. ܕɺ͍ͭͯ·͔͢ʁ ܕʹ͍ͭͯͷೝࣝΛ֬ೝ ܕͷຊ࣭Λཧղ͢Δ ܕʹ͍ͭͯٞ࿦͢Δ·͑ʹ͢Δ΂͖ ܕʹ͍ͭͯඞཁͷແ͍ٞ࿦΋গͳ͘ͳΔ͸ͣ ܕʹ·ͭΘΔྺ࢙΍Τϐιʔυͷ঺հ

  17. ֓ཁ Ұൠతͳʮܕʯʹ͍ͭͯͷ֓ཁ ੩తܕ෇͚ ಈతܕ෇͚ ܕ෇͚ͷ෩ை (ݹ୅|ۙ୅|ݱ୅|ݪ࢝)(ಈత|੩త)ܕ෇͚

  18. ֓ཁ(CONT.D) ෩ைͷมભ ͦΕͧΕͷ෩ைʹ͓͚Δʮࢦ޲ʯ ܕɺ͍ͭͯ·͔͢ʁ ܕͷඞཁੑ ܁Γฦ͞ΕΔྺ࢙ ͜Ε͔Βͷʮܕʯͷ͋Γํ

  19. Ұൠతͳܕʹ͍ͭͯͷ֓ཁ ಛఆͷݴޠ΍ܕͷٕज़ʹ͍ͭͯͷৄࡉ͸ׂѪ ΋ͬͱ;͞Θ͍͠ษڧձ͕͋Γ·͢ ͋͘·Ͱ͜ͷ৔Ͱ͸શମΛΈ·͢ ໦ΛΈͯथւʹ໎Θͳ͍Α͏ʹ஫ҙ ໘ന͍͜ͱ΍ɺҙ֎ͳ΋ͷ͸औΓ্͛·͢ ͓౔࢈ʹ΋ͬͯؼΕΔ࿩͕͍͔ͭ͋͘Δ͸ͣ

  20. ੩తܕ෇͚ ʮܕ͕͍͍ͭͯΔʯͱ͍͑͹҉໧తʹ੩తܕ෇ ͚ͷ͜ͱ ࣄલʹม਺ͷܕΛਫ਼ࠪ͢Δ ੩తͳղੳ ίϯύΠϧ΍࣮ߦલͷόάൃݟ

  21. ಈతܕ෇͚ ࣄલʹ͸ม਺ͷܕΛਫ਼ࠪ͠ͳ͍ ಈతͳධՁʹΑͬͯ͸͡Ίͯܕ͕Θ͔Δ ࣮ߦ࣌ͷܕ෇͚

  22. (੩తcಈత)ܕ෇͚ ੩తܕ෇͚Ͱ͸ࣄલͷղੳ΍ॲཧ Ұൠʹิॿͷهड़Λߦ͏ ࣮ߦ͸ݫີʹ͸ߦ͍ͬͯͳ͍ ͍͘Β੩తܕ෇͚ͷॲཧܥʹΑΔॲཧ͕ҰॠͰऴΘ͍ͬͯͯ ΋ಈ࡞࣌ͷܕ෇͚͸ҟͳΔ ࣮ߦ͕Ͱ͖Δͷ͸ಈతܕ෇͚͚ͩ ৄࡉ͸ղઆ͠·͢

  23. ܕ෇͚ͷ෩ை ݹ୅੩తܕ෇͚ ݹ୅ಈతܕ෇͚ ۙ୅ಈతܕ෇͚ ۙ୅੩తܕ෇͚ ݱ୅ಈతܕ෇͚ ݱ୅੩తܕ෇͚ ݪ࢝ಈతܕ෇͚ ݪ࢝੩తܕ෇͚

  24. (ݪ࢝cݹ୅cۙ୅cݱ୅)
 (ಈతc੩త) ܕ෇͚

  25. 8छྨ͸ϠϦա͗ͱ ൓ল͓ͯ͠Γ·͕͢ ΍ͬͪΌͬͨ΋ͷ͸͠ΐ͏͕ͳ͍

  26. ݹ୅੩తܕ෇͚ CݴޠΛ୅දͱ͢Δ΋ͷʹ࠾༻ γεςϜͱີ઀ͳܕ෇͚ ܕ͕ෆ໌ͩͱσʔλͷѻ͍ํ͕෼͔Βͳ͍

  27. A B A

  28. A B A

  29. A B A

  30. ݹ୅ಈతܕ෇͚ ॲཧͷهड़΁ͱϑΥʔΧε͕Ҡ͍ͬͯ͘ γεςϜͷهड़Ͱ͸ͳ͍ BASIC ॳ৺ऀ޲͚ͷݴޠͱͯ͠஍ҐΛཱ֬ ཪٕͬΆ͍ςΫχοΫͰγεςϜʹ΋ΞΫηεͰ͖Δ ex. DATA, PEEK, POKE

    γΣϧεΫϦϓτ γεςϜͱର࿩͢ΔͨΊͷػߏΛԠ༻
  31. ίϥϜ: γΣϧ ྫ֎΋ଘࡏ͢Δ γεςϜͱ҆શʹର࿩͢Δͷ͕γΣϧຊདྷͷ໾ׂ ਅͷLinux Kernel ޲͚γΣϧ Ͳ͏Έͯ΋όΧ ๙Ίݴ༿

  32. ίϥϜ: ҧ࿨ײ͕͋Δݴ༿ γΣϧεΫϦϓτΛॻ͘͜ͱΛʮγΣϧΛॻ͘ʯ bash ΍ zsh Λ։ൃ͍ͯ͠Δʁʁʁ IP ΞυϨεͷ͜ͱΛʮIPʯ IP

    ͱ͸Πϯλʔωοτϓϩτίϧͷ͜ͱͰ IP ΞυϨεͱ͸ IP Ͱͷ ૹ৴ઌ΍ૹ৴ݩͷΞυϨε ͜ͷҧ࿨ײΛ෼͔Γ΍͘͢ྫ͑Δ Wikipedia ͷ͜ͱΛ ʮWikiʯ ͱදݱ͍ͯ͠ΔϞϠϞϠײ
  33. ۙ୅ಈతܕ෇͚ ݹ୅ಈతܕ෇͚Ͱղܾ͕໘౗ͩͬͨ෼໺ͷվળ Perl sh + sed + awk + grep

    ڧྗͳจࣈྻૢ࡞ ಛʹPerlޓ׵ͷਖ਼نදݱͷଘࡏ͸େ͖͍੒Ռ PCREͱͯ͠ଞͷੈքʹ΋େ͖͘Өڹ
  34. ۙ୅ಈతܕ෇͚(CONT.D) PHP ద౰ʹॻ͚͹ಈ͘ ར఺Ͱ΋͋Δܽ͠఺Ͱ΋͋Δ ܕͷٞ࿦ͳͲͷ৔Ͱ͸ᎏ᎐͞ΕΔ͜ͱ΋ଟ͍ ଟ͘ͷ΋໰୊Λղܾ͖ͯͨ͠ͷ͸ࣄ࣮ Python Perl ॻ͘ͷΠϠʹͳͬͨΑͶ Ϋηͷ͋Δ

    Perl Monger ͷ੒Ռ෺͸ಡΊ·ͤΜ…
  35. ۙ୅੩తܕ෇͚ C++ݴޠʹ୅ද͞ΕΔ΋ͷʹ࠾༻ ৽͍͠ύϥμΠϜͷ্৐ͤ C++ݴޠͰ͸ΦϒδΣΫτࢦ޲ ϓϩάϥϜͷߏ଄ԽͷԆ௕ઢ্ʹΦϒδΣΫτࢦ޲ͷςΠετΛࡌ ͤͨ ͋͘·ͰCݴޠ͔Βͷൃలܥͱଊ͑Δ͜ͱ͕Ͱ͖Δ ϧʔϧ͕ෳࡶ͗͢ΔͷͰɺ࢖͍͜ͳͤΔΤϯδχΞ͸ఱ࠽ͩͱײ͡Δ

  36. ݱ୅ಈతܕ෇͚ ύϥμΠϜ΍ϢʔεέʔεʹΑͬͯେ͖͘ීٴ Ruby ΦϒδΣΫτࢦ޲Λલఏͱͨ͠ݴޠ ͋ͱ͔ΒࡌͤͨͷͰ͸ͳ͍ͷͰෆࣗવ͕͞ͳ͍ JavaScript Webϒϥ΢βͰͷಈ࡞Λ૝ఆ͠ීٴͨ͠ݴޠ ʮJavaScript͸OFFʹ͢Δʯͱ͍͏࣌୅͔Βͷܶతͳ෮׆

  37. ݱ୅੩తܕ෇͚ ۙ୅੩తܕ෇͚ΑΓ΋ڧ͍ػೳ γεςϜهड़ϨΠϠʔ͔Βͷղ୤ VM ͱ͍͏ਓྨͷӳ஌ ϚϧνϓϥοτϑΥʔϜ ex. Java, Haskell, AltJS

  38. ݪ఺ճؼɻ

  39. ݪ࢝ಈతܕ෇͚ ߟ͑ͯΈΑ͏ɺϊΠϚϯܕίϯϐϡʔλ Ϩδελ ଈ஋ ΞυϨε

  40. ݪ࢝ಈతܕ෇͚(CONT.D) MOV EAX, [1000h] 1000h ͱ͍͏ଈ஋Λ EAX ϨδελʹೖΕΔ MOV [ff00h],

    EBX EBX Ϩδελͷ஋Λ ff00h ͷΞυϨεʹೖΕΔ χʔϞχοΫ͸ػցޠͱ૬ޓʹஔ׵Ͱ͖Δ 0 ͱ 1 ͷ࿈ଓͰදݱ͞ΕͨنଇΛن໿ʹΑͬͯධՁ͍ͯ͘͜͠ͱͰੈͷதͷେ ൒ͷγεςϜ͸ಈ࡞͍ͯ͠Δ ͜ͷʮධՁʯ͕ͦ͜ɺ΄΅͢΂ͯͷࠜװʹ͋Δʮ࣮ߦʯ
  41. ػցޠͷܕ෇͚ ੩తܕ෇͚ͳͷ͔ಈతܕ෇͚ͳͷ͔ ࣮ߦ࣌ʹଈ஋͔ΞυϨεΛ൑அ ͜ͷ࣌఺͔Β͸ࣄલͷॲཧ͕ͳ͍ ׶͑ͯ෼ྨ͢ΔͳΒ͹ಈతܕ෇͚ͱ͍͑Δ ͢΂ͯͷجຊ͸͜ͷαΠΫϧͰ͋ΔͨΊɺಈతܕ෇͚ ͔Β͸ಀ͛Δ͜ͱ͕Ͱ͖ͳ͍

  42. ίϥϜ: ػցޠͱCݴޠͷ઀఺ ؾܰʹ஌Δ͜ͱ͕Ͱ͖Δ઀఺ʹ͍ͭͯ঺հ a[2] == 2[a]; ࣜͷ஋͸ʁ ʮਅʯ

  43. Կ͕ى͖͍ͯΔͷ͔ʁ

  44. a 2 a[2] a 2 2[a]

  45. ݪ࢝੩తܕ෇͚ ىݯ͸ϥϜμܭࢉʹ͋Γ ܕͳ͠ϥϜμܭࢉ വ਺ͷΈͰ͞·͟·ͳॲཧΛ࣮ݱ͢ΔՄೳੑΛఏࣔ ࣗવ਺ͷѻ͍ɺ৚݅෼ذɺ࠶ؼ ܕ͋ΓϥϜμܭࢉ ܕͳ͠ϥϜμܭࢉͷൃలܥ ڧ͍ܕ෇͚ͱ஗ԆධՁͷૅͱͳͬͨ࢓૊Έ ৄࡉΛ࿩͢ͱ 12

    ࣌ؒ͘Β͍ʹͳΓͦ͏ͳͷͰׂѪ
  46. ෩ைͷมભ

  47. ݪ࢝ ݪ࢝ಈతܕ෇͚ ϊΠϚϯܕίϯϐϡʔλ ݪ࢝੩తܕ෇͚ ࢥߟతͳ࣮ݧ

  48. ݹ୅ ݹ୅੩తܕ෇͚ γεςϜͷهड़ͷͨΊʹภ͍ͬͯΔ Ϣʔβͷॲཧͷهड़ʹ͸໘౗ ݹ୅ಈతܕ෇͚ γεςϜͱͷର࿩ هड़ͷརศੑΛॏࢹ

  49. ۙ୅ ۙ୅੩తܕ෇͚ ݹ୅੩తܕ෇͚ʹର͢Δ৽͍͠ύϥμΠϜͷద༻ ۙ୅ಈతܕ෇͚ ݹ୅ಈతܕ෇͚ʹର͢Δ৽͍͠ύϥμΠϜͷద༻ ۙ୅ʹ͓͚Δʮ৽͍͠ύϥμΠϜʯ ΦϒδΣΫτࢦ޲ͱ͍ͬͯΑ͍

  50. ݱ୅ ݱ୅ಈతܕ෇͚ ৽͍͠ύϥμΠϜ͕ઌʹ͋Δಈతܕ෇͚ ݱ୅੩తܕ෇͚ ৽͍͠ύϥμΠϜ͕ઌʹ͋Δ੩తܕ෇͚ ݱ୅ʹ͓͚Δʮ৽͍͠ύϥμΠϜʯ ΦϒδΣΫτࢦ޲ͱ͍͑Δ

  51. ܕɺ͍ͭͯ·͔͢ʁ

  52. ܕͰΈΔྺ࢙ ݪ࢝ܕ෇͚࣌୅ ܕͱ͍͏΋ͷ͸ҙࣝ͞Εͳ͔ͬͨ ݹ୅ܕ෇͚࣌୅ ॲཧ͢Δ໰୊ͷੑ࣭ʹΑͬͯܕ෇͚͕͞Εͨ ۙ୅ܕ෇͚࣌୅ ৽͍͠ύϥμΠϜͷςΠετ͕௥Ճ͞Εͨ ݱ୅ܕ෇͚࣌୅ ৽͍͠ύϥμΠϜ͕ઌʹ͋Γɺͦͷޙʹॲཧܥ͕͋Δ

  53. ྺ࢙͔ΒֶͿܕ ަޓʹಈతܕ෇͚ͱ੩తܕ෇͚͸੒௕͖ͯͨ͠ ࣌୅͕ਐΉʹͭΕͯʮ෺ཧతͳʯܭࢉػ͔Βͷ ڑ཭͸ԕ͘ͳ͍ͬͯΔ ߴ౓ͳந৅Խ

  54. ͜Ε͔ΒͷʮมԽʯΛಡΉ

  55. ͳͥɺྺ࢙͸܁Γฦ͢ͷ͔ σόοάࠔ೉ͳঢ়ଶͱͳͬͨͱ͖ ੩తͳܕ෇͚ͱݟ͔͚ͤͯಈతͳܕ෇͚ͱ͍͏૊Έ߹Θ͕ͤअѱ Cݴޠ΍C++ݴޠͰ͸σόοΨΛڧԽͯ͠Ԇ໋ ໰୊ղܾͷυϝΠϯͱॲཧܥͷΠϯϐʔμϯεϛεϚον ex. WebγεςϜͷ৽ن։ൃʹPerlΛ࠾༻͠·͔͢ʁ ந৅ԽͷϨϕϧ ΦϒδΣΫτࢦ޲ͷ͜ͱΛߟ͍͑ͯΔͱ͖ʹϙΠϯλͱ͔ϝϞϦͱ͔ܕͷෆҰ கͰσʔλͷϚοϐϯά͕ڰ͍ͦ͏ɺΈ͍ͨͳ͜ͱʹ஫ҙΛ෷͍ͨ͘ͳ͍

  56. ͜Ε͔ΒͷʮܕʯΛߟ࡯ ྺ࢙͔ΒৼΓସ͑ΔϙΠϯτ υϝΠϯ ύϥμΠϜ ந৅Խ Ϧιʔε ੩తͱಈతͷ࣠ʹΑΔߟ࡯ ཧ࿦ͱ࣮ફ ۩৅౓ͱந৅౓

  57. ͜Ε͔ΒͷʮυϝΠϯʯ υϝΠϯͱ͸ղܾ͢΂͖໰୊͕Ͳͷ෼໺ʹଐ͍ͯ͠Δ͔ʁ ͱ͍͏ҙຯ ྺ࢙Ͱ͸γεςϜهड़ͱWeb͕େ͖͘Өڹ ݱࡏ͸ HTTP ͕શ੝͕ͩՌͨͯ͜͠ͷ··ͳͷ͔ʁ ex. Web ͸ΞϓϦέʔγϣϯ൪߸

    80 ൪ IPv6 ͕ຊ֨తʹීٴͨ͠ͱ͖ʹԽ͚ΔՄೳੑ͕͋Δ
  58. ͜Ε͔ΒͷʮύϥμΠϜʯ ؔ਺ܕ΍ΦϒδΣΫτࢦ޲ʹ୅ද͞ΕΔʮ֓೦తͳ ࢥߟํ๏ʯ͕ύϥμΠϜ υϝΠϯʹରͯ͠༗ޮͳύϥμΠϜ͕ॲཧܥʹӨڹ ͯ͘͠Δ ex. ΞεϖΫτࢦ޲ ex. ฒྻϓϩάϥϛϯά /

    ฒߦϓϩάϥϛϯά
  59. ͜Ε͔Βͷʮந৅Խʯ ΦϒδΣΫτࢦ޲ΑΓ΋ਐΜͩந৅Խ UML ͳͲͷ͜ͱ ex. Executable UML

  60. ͜Ε͔ΒͷʮϦιʔεʯ ܭࢉػͷύϫʔͷ͜ͱ ͜Ε͕όΧʹͳΒͳ͍ ex. ΨϕʔδίϨΫγϣϯ ߏ૝࣌͸࡞ͬͨϝϞϦΛ΄ͬͨΒ͔͢Α͏ͳ༨༟͕ϝϞϦۭؒʹͳ͔ͬͨ झຯͰ࡞ͬͨΦϞνϟѻ͍ ex. ΦϒδΣΫτࢦ޲ ܧঝͷ࢓૊ΈʹΑΓɺϝιουͷ୳ࡧʹ͕͔͔͍࣌ؒͬͯͨ

    ࣮༻తͰ͸ͳ͍ͱ൑அ͞Ε͍ͯͨ࣌୅΋௕͍ ݱ୅Ͱ΋૊ΈࠐΈ෼໺Ͱ͸ܟԕ͞Ε͕ͪ
  61. ͜Ε͔ΒͷʮϦιʔεʯ ͲͪΒͷཁૉٕज़΋ݱ୅Ͱ͸͔ܽͤͳ͍΋ͷͱͳ͍ͬͯ Δ ΨϕʔδίϨΫγϣϯ ΦϒδΣΫτࢦ޲ ५୔ͳܭࢉػϦιʔε͕खʹೖͬͨͱ͖ʹɺ͍·࢖ΘΕ ͍ͯͳ͍ʮΦϞνϟʯ͕୆಄͢ΔՄೳੑ͸े෼ʹ͋Δ

  62. ͍·ݸਓతʹཉ͍͠Ϡπ ύϥμΠϜฤ

  63. ෭࡞༻Λߟྀͨ͠γΣϧ UNIXίϚϯυ ࣌୅എܠ͔Β੒ޭ͔ࣦഊͷΈʹϑΥʔΧε ࣌୅͸ immutable infrastructure ෭࡞༻Λ෼཭ͨ͠γΣϧ͕͋Δͱศརͳ༧ײ ex. Monad +

    shell ͜͜Ͱͷ෭࡞༻ͱ͸ૢ࡞͕ܭࢉػʹӨڹ͢Δ͔Λҙຯ͢Δ ෭࡞༻͕໌നʹΘ͔ΔγΣϧͰૢ࡞Ͱ͖Ε͹ɺ෭࡞༻͕ൃੜ͢Δ΋ͷͷΈΛऔΓग़ͤΔ͸ͣ Dockerfile ͳͲ͕ࣗಈͰੜ੒Ͱ͖Δؾ͕͢Δ
  64. ͜Ε͔Βͷܕͱॲཧܥʹͭ ͍ͯߟ͑ͯΈ·͠ΐ͏

  65. ͦΕ͕ະདྷͷΤϯδχΞϥΠϑ Λ๛͔ʹ͢Δ͔΋͠Ε·ͤΜ

  66. Ԇ௕ઓ ࠓ೥΋ LL ΠϕϯτΛ։࠵͠·͢ LLoT - Lightweight Language of Things

    http://ll.jus.or.jp/2016/ ܕͷηογϣϯͷొஃऀΛަবத http://ll.jus.or.jp/2016/program
  67. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ SORABITOגࣜձࣾͰ͸ΤϯδχΞΛืूத શମΛ၆ᛌͰ͖ɺཧ૝Λ஌Γͭͭ΋ɺݱ࣮ͱಆ͍ɺεϐʔυͱ ඼࣭Λམͱ͞ͳ͍νʔϜ։ൃ ج൫ٕज़͸࠷ઌ୺ͷ΋ͷΛԲ͢Δ͜ͱͳ͘࠾༻ Pharo, PostgreSQL, Elasticsearch, Redis, Neo4j

    ͳͲ αϙʔτঢ়گ͕ෆ໌Ͱ΋ɺ͍͟ͱͳΕ͹ʮજΔʯٕज़Λ֤ʑ ͕ൃشͯ͠ղܾ͍ͯ͘͠ຊདྷͷΤϯδχΞϦϯά͕Ͱ͖·͢