ソフトウェアとインターネットと歩んだ日々 (要約版)/ My life getting along with software and internet (summarized version)

ソフトウェアとインターネットと歩んだ日々 (要約版)/ My life getting along with software and internet (summarized version)

My (Internal and remote) talk presentation slides at GMO Pepabo Fukuoka Office / GMOペパボ福岡オフィス やさしい発表会 22-JUN-2018

Fc3b290038a97f5df6fec7660c357ef4?s=128

Kenji Rikitake

June 22, 2018
Tweet

Transcript

  1. ιϑτ΢ΣΞͱΠϯλʔωοτͱาΜͩ೔ʑ ʢཁ໿൛ʣ ྗ෢ ݈࣍ ྗ෢݈ٕ࣍ज़࢜ࣄ຿ॴ / ϖύϘݚڀॴ 2018೥6݄22೔ ϖύϘ෱Ԭ ΍͍͞͠ൃදձ

    Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 1
  2. ྗ෢ ݈࣍ Γ͖͚ͨ ͚Μ͡ @jj1bdx 1965೥ੜ·Ε 53ࡀ Kenji Rikitake /

    Pepabo Fukuoka 22-JUN-2018 (summarized version) 2
  3. @komei͔Βͷ͓୊ • ͲͪΒ͔ͱ͍͏ͱྗ෢͕͜Ε·ͰʹֶΜͰ͖ͨςΫχΧϧͳ෦ ෼Ͱͷ࿩Λฉ͖͍ͨ • ϖύݚݚڀձͰݴ͍ͬͯͨؔ਺ܕ͕޾ͤͱ͍͏ͷ͕ؾʹͳͬͯ ͍ͯɼ@komei͸ؔ਺ܕ͸ॻ͍ͨ͜ͱ͕ͳ͍ͷͰɼؔ਺ܕϓϩ άϥϛϯάͱΦϒδΣΫτࢦ޲ϓϩάϥϛϯάͷҧ͍ʹؔ͢Δ ൃද͕ฉ͖͍ͨ Kenji

    Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 3
  4. ͜ͷൃදͷߏ੒ ʢ΋ͱ΋ͱ2࣌ؒͷͭ΋ΓͰ͍ͨΜͰ͕͢ϦϞʔτͩͱ͕͢͞ʹ2࣌ؒ͸ͭΒͦ͏ͳͷͰʣ ςΫχΧϧͳ࿩ʹߜΓ·͢ ΦϒδΣΫτࢦ޲ͱؔ਺ܕͷ࿩΋͠·͢ ࣗ෼ͷʢΩϟϦΞΩʔϊʔτతͳʣྺ࢙ͷ࿩΋͠·͢ ࣭ٙԠ౴͸࠷ޙʹ΋࣌ؒऔͬͯ·͕͢దٓͲ͏ͧ ൃද಺༰͸͋͘·Ͱྗ෢ݸਓͷݟղͰ͢ Kenji Rikitake /

    Pepabo Fukuoka 22-JUN-2018 (summarized version) 4
  5. 1973೥ 8ࡀ ෕ʹ FORTRANΛڭΘΔ • ෕ ྗ෢ৗ࣍ʢ1956೥ɺӈͷࣸਅʣ • খֶ2೥ੜͩͬͨ •

    2࣍ํఔࣜͷղͷެࣜͱෳૉ਺Λ֮͑ͨ • ਺஋ܭࢉ͔Βίϯϐϡʔλʹೖ໳ͨ͠ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 5
  6. FORTRANʢ1973೥෩ʣʹΑΔHello World PROGRAM HELLOWORLD C HELLO WORLD IN FORTRAN INTEGER

    I I = 10 500 FORMAT(1H ,12HHELLO WORLD!,1H ,11HAND NUMBER ,I5) WRITE(6,500) I STOP END Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 6
  7. ϚΠΫϩίϯϐϡʔλʢϚΠίϯʣ • 1971೥ʹIntel 4004 → ࠷ॳͷϚΠίϯɺ༻్͸ి୎ • 1974೥ʹIntel 8080 →

    ·ͱ΋ʹ࢖͑Δ࠷ॳͷ8bitϚΠίϯ • 1975೥ʹMOS Technology 6502 → Apple ][ɺϑΝϛίϯ • 1976೥ʹZilog Z80 → ͍·ͩʹύνϯί୆Ͱ͸ओྲྀ • 1978೥ʹIntel 8086 → ͔͜͜Βݱ୅ͷx86_64΁ͷܥේ͕ଓ͘ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 7
  8. ϚΠίϯͷΠϊϕʔγϣϯ • ίϯϐϡʔλΛICͱͯ͠૊ΈࠐΊΔΑ͏ʹͳͬͨ • ిࢠػثΛιϑτ΢ΣΞͰ੍ޚͰ͖ΔΑ͏ʹͳͬͨ • ίϯϐϡʔλ͕୭Ͱ΋ങ͑ΔΑ͏ʹͳͬͨ • ίϯϐϡʔλ͕୭Ͱ΋࡞ΕΔΑ͏ʹͳͬͨ •

    ιϑτ΢ΣΞΛ୭Ͱ΋ॻ͍ͯՔ͛ΔΑ͏ʹͳͬͨ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 8
  9. ͦͯ͠Apple ][ͱͷ೔ʑ • 1978೥͔Βඦ՟ళͰ৮Γ౗͢ • 1979೥ʹ਌ʹങͬͯ΋Β͏ • GAME-APPLEίϯύΠϥΛॻ͖ɺTL/1 ͱ͍͏খ͞ͳݴޠͷେ͖ͳྗΛֶΜͩ •

    ήʔϜ΋ॻ͍ͨ • ωοτϫʔΫϋʔυ΋࡞ͬͨ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 9
  10. 1986೥: ແઢɺ௨৴ɺίϯϐϡʔλͷ༥߹ • 1985೥ʹNTTຽӦԽͱճઢࣗ༝Խ • ࠃڥΛ௒͑ͨࣗ༝ͳ௨৴͕Մೳʹͳͬͨ • UNIX͕͍Α͍ΑݸਓͰ΋࢖͑ΔΑ͏ʹͳͬͨ • ϚϧνλεΫɺϚϧνϢʔβɺλΠϜγΣΞϦϯά

    • ΞϚνϡΞແઢͰ΋ίϯϐϡʔλؒ઀ଓ͕Ͱ͖ΔΑ͏ʹͳͬͨ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 10
  11. Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 11

  12. 1988೥: Πϯλʔωοτ ͱϫʔΫεςʔγϣϯ • WIDEϓϩδΣΫτൃ଍ • ೔ຊʹ΋TCP/IPωοτϫʔΫͱΠʔα ωοτ͕΍͖ͬͯͨ • ϫʔΫεςʔγϣϯͰUNIX

    • MicroVAXʢӈͷࣸਅʣ, ULTRIX, VMS • γϯάϧCPUͰͷฒߦॲཧΛֶͿ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 12
  13. 1990೥͝ΖͷϓϩάϥϛϯάελΠϧ • ࠓͱ͋·ΓมΘΒͳ͍͕ن໛͸খ͔ͬͨ͞ • 4.3BSD UNIX ʢݱࡏͷFreeBSD΍macOSͷ૆ઌʣ • ͻͨ͢ΒCݴޠɺΤσΟλ͸viɺͨ·ʹEmacs •

    VAXͷϝϞϦ͸࠷େ2GBɺ͜ΕΛ100ਓͰ෼͚ͨ • σΟεΫ͸10GBͱ͔20GB͋Ε͹ͨ͘͞Μͩͬͨ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 13
  14. 1990೥ 25ࡀ ޻ֶम࢜ Digital Equipment Corporation ೔ຊ๏ਓͷ ݚڀ։ൃηϯλʔͰࣾձਓੜ׆Λ࢝ΊΔ Kenji Rikitake

    / Pepabo Fukuoka 22-JUN-2018 (summarized version) 14
  15. 1990೥ʙ1992೥: VAX/VMSͷ։ൃ • ը໘੍ޚϥΠϒϥϦʢϛυϧ΢ΣΞʣΛ࡞͍ͬͯͨ • ࠃࡍి࿩ͰςϨΧϯɺόʔδϣϯ؅ཧγεςϜɺυΩϡϝϯτ࡞੒γεςϜɺ ϦϞʔτϩάΠϯ؀ڥɺඞཁͳ΋ͷ͸શ෦͋ͬͨ • ౰࣌ͱͯ͠͸࠷ઌ୺ͷ؀ڥͩͬͨɺ͕… •

    Φʔϓϯιʔε͡Όͳ͍ͷͰษڧ͸ࣾ಺Ͱ͔͠Ͱ͖ͳ͍ • VAXͱ͍͏ϋʔυʹґଘ͍ͯͨ͠ͷͰ଎౓্͕͕Βͳ͍ • ݁Ռͱͯ͠ڝ૪ྗΛࣦ͍࢖ΘΕͳ͘ͳ͍ͬͯͬͨ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 15
  16. 1992೥ 27ࡀ ݁ࠗɺస৬ɺେࡕ΁Ҡॅ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized

    version) 16
  17. ͦͷޙ1990೥୅͸Πϯλʔωοτͦͷ΋ͷΛ ݚڀςʔϚʹͯ͠׆ಈͨ͠ • 1995೥ͷWindows95ͷීٴҎલ͸ࣾձతೝ஌͕ಘΒΕͳ͔ͬͨ • ౰࣌ͷۈ຿ઌͷࣾ಺ωοτߏஙɺࣾ֎ϑΝΠΞ΢Υʔϧߏஙɺ ϓϩόΠμ΍ࣾ಺ؔ܎ऀͱͷંিɺ͢΂ͯ΍ͬͨ • ීٴ͢ΔʹͭΕҰࢁ౰ͯΑ͏ͱ͍͏ߟ͑ͷٕज़ͱؔ܎ͳ͍ਓୡ ͕܈͕͖ͬͯͨ

    Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 17
  18. ͜ͷ··ωοτ԰Ͱ৯͍͚ͬͯΔͷ͔? ത࢜߸΋ͳ͘ݚڀ։ൃΛଓ͚͍͚ͯΔͷ͔? ↓ 2000೥12݄ ۈ຿ઌͷ෦ॺ͕ด࠯ͱͳΓࣙ৬ͨ͠ 2001೥1݄ KDDݚڀॴ΁༗ظܖ໿ࣾһͱͯ͠స৬ ʢ͙͢ʹKDDIݚڀॴʹͳΓݱࡏ͸KDDI૯߹ݚڀॴʣ ωοτϫʔΫͱ৘ใηΩϡϦςΟͷݚڀΛ࢝ΊΔ Kenji

    Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 18
  19. 2002೥4݄ 37ࡀ େࡕେֶ৘ใՊֶݚڀՊത࢜ޙظ՝ఔʹೖֶ म࢜ͷޙ12೥Λܦͯ΍ͬͱݚڀੜ׆ʹೖ໳ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018

    (summarized version) 19
  20. 2002೥5݄ Ξτϐʔͱഊ݂঱ҰาखલͰ౗ΕΔ ·Δ·Δ5िؒೖӃ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized

    version) 20
  21. ਓ͸͍ͭࢮ͵͔Θ͔Βͳ͍ ͳΒ͹΍Γ͍ͨ͜ͱ͸͙͢΍Ζ͏ ΍Βͳ͍Ͱޙչ͢ΔΑΓ͸ ΍ͬͯޙչͨ͠΄͏͕ͣͬͱ͍͍ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018

    (summarized version) 21
  22. ത࢜߸औಘͷݚڀςʔϚ • DNSͷUDPύέοτ௕ͱMTU • ࠷ۙͰ͸QUIC΍DTLS͕ಉ༷ͷ՝୊Λղܾத • MTU͸IPv4/IPv6ͰऔΓѻ͍͕·ΔͰҟͳΔͷͰ೉͍͠ • ࡕେ͔ΒNDAલఏͷσʔλఏڙΛड͚ͯ࿦จʹͨ͠ •

    T/TCPΛ࢖ͬͨDNSͷॲཧ࣌ؒ࡟ݮʹ΋औΓ૊Μͩ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 22
  23. 2005೥3݄ େࡕେֶ ത࢜ʢ৘ใՊֶʣ ݁Ռͱͯ͠ത࢜ͷࢿ֨ͷ͓͔͛Ͱ8೥ؒαϥϦʔϚϯΛ͞Βʹଓ͚Δ͜ͱ͕Ͱ͖ͨ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018

    (summarized version) 23
  24. 2005೥ʙ2010೥: ৘ใ௨৴ݚڀػߏ(NICT) • ۀ຿ࢦࣔͰ΍Δݚڀ+ࣗओݚڀ • NICTERϓϩδΣΫτͷجૅઃܭ • DNSϖΠϩʔυ௕ͱDNSSECͷݚڀ • NGNͱIPv6ͷීٴʹؔ͢Δௐࠪݚڀ

    • Erlang/OTPͷηΩϡϦςΟ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 24
  25. ͜ͷ࣌ͷٕज़తͳઈ๬ ΋͏Cݴޠ͚ͩͰ͸৯͑ͳ͍ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version)

    25
  26. ͦͯ͠޷͖ʹͳͬͨͷ͸ Erlang/OTP • Immutability ʢ୅ೖޙͷม਺͸ෆมʣ • ܰྔฒߦϓϩηε • ΤϥʔϋϯυϦϯά •

    2018೥ͷࠓͰ΋े෼௨༻͢Δݴޠγε ςϜͱͯ͠ɺElixirͱͱ΋ʹਐԽ͠ଓ͚ ͍ͯΔ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 26
  27. ໋ྩܕ͔Βؔ਺ܕ΁ͷ ൃ૝ͷస׵͕ࣗ෼Λٹͬͨ ͦͷޙ͋ΒΏΔݴޠγεςϜ͕ ؔ਺ܕͷύϥμΠϜΛऔΓೖΕ͍ͯΔ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018

    (summarized version) 27
  28. 2010೥4݄ 45ࡀ ژ౎େֶ৘ใ؀ڥػߏ ڭत • ୯ஶͰݚڀ͕Ͱ͖ΔΑ͏ʹͳͬͨ • ࠃࡍձٞ࿦จΛ2ຊग़ͤͨ • ࠃࡍձٞͷ࣮ߦҕһ௕ΛମݧͰ͖ͨ

    • ژେͷεύίϯ͕࢖͑ͨ • ͓΋͠Ζ͍ݚڀ͕Ͱ͖͔ͨͲ͏͔͸ࣗ ৴͕ͳ͍ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 28
  29. ͦͯ͠·ͨ΋౗Εɺࣦ৬ ژେͷ࢓ࣄ͸2012೥11݄ΑΓٳΈɺ2013೥1݄Ͱୀ৬ 2013೥2݄ʹErlang/OTPͷؔ࿈ͰBasho Technologiesͷ೔ຊ๏ਓʹब৬ ͔͠͠2013೥6݄ʹ༧ࢉ͕ͳ͘ͳͬͨͱ͍͏ձࣾ౎߹Ͱઓྗ֎௨ࠂ 2013೥9݄຤Λ΋ͬͯղޏɺ22೥6ϲ݄ͷαϥϦʔϚϯੜ׆ʹऴࢭූΛଧͭ 2013೥10݄ 48ࡀ ੖Εࣦͯۀऀʹͳͬͨ Kenji

    Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 29
  30. 2014೥4݄ ੜ͖ΔͨΊʹݸਓࣄۀ։ۀ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version)

    30
  31. 2016೥Ն ϖύϘݚڀॴ ઃཱͷ஌Βͤ ͙͢ʹԠืͨ͠ …࠾༻͍͍ͯͨͩͨ͠ Kenji Rikitake / Pepabo Fukuoka

    22-JUN-2018 (summarized version) 31
  32. ϖύϘͷจԽ • ଎Ͱ͍͍ͭͯ͘ͷ͕͍ͨ΁Μ • Ͱ΋ϖύϘʹ͸ॿ͚߹͏จԽ͕͋Δ • ࣗ෼ΑΓए͍ਓୡ͔Βγό͔Εͳ͕Β࢓ࣄͰ͖Δͷ͸وॏ • ͜Μͳձࣾ͸ͳ͔ͳ͔͋Γ·ͤΜ Kenji

    Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 32
  33. 2018೥5݄ 7ϲ݄ଓ͍ͨC++ͱC#ͷ։ൃ࡞ۀΛऴ͑ͨ ʢΨνͳΦϒδΣΫτࢦ޲ͷ։ൃ࡞ۀʹ͔͔Θͬͨͷ͸࣮͸ਓੜॳͩͬͨʣ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized

    version) 33
  34. C++΍C#ͰͭΒ͔ͬͨ͜ͱ • σʔλʹϝιου͕͍ͬͭͯ͘͘Δˠঢ়ଶґଘʹͳΔ • ֊૚໊Λ͚ͭΔͷͰ໊લ͕௕͘ͳΔ • σʔλͳ͠Ͱ͸ϝιου͕ݪଇݺ΂ͳ͍ʢྫ֎͸͋Δ͕ʣ • σʔλΛऔΓѻ͏ͱ͖࣮ମͱࢀর͕ࠞࡏ͢Δ •

    ίϯετϥΫλ͕͍ͭݺ͹ΕΔͷ͔͕Θ͔Βͳ͍ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 34
  35. Erlang/Elixirతͳؔ਺ܕϓϩάϥϛϯά • ؔ਺ͱσʔλͱ͸ಠཱ͍ͯ͠Δˠঢ়ଶґଘʹͳΒͳ͍ • Erlang͸ଟஈ֊૚Λ෇͚ͤ͞ͳ͍ʢElixir͸ڐ༰ʣ • σʔλ͕ͳͯ͘΋ؔ਺͸͍͘ΒͰ΋࡞ΕΔ • σʔλΛऔΓѻ͏ͱ͖͸࣮ମ͚ͩΛߟ͑Ε͹͍͍ •

    ୅ೖ͸ৗʹίϐʔͳͷͰίϯετϥΫλͷ͜ͱ͸ߟ͑ͳ͍͍ͯ͘ • ͦͷ୅ΘΓ஗͍ (GCͱcopy-on-write͕͋Δͱ͸͍͑) Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 35
  36. ϓϩάϥϛϯά͸Ͳ͜ʹߦ͘ͷ͔ ҆શΑΓ΋଎౓? ଎౓ΑΓ΋҆શ? …͜ͷ2߲ରཱࣗମ͕ؒҧ͍ͬͯΔ ҆શ͸ඞਢɺ଎౓͸௥ՃػೳͰ͋Δ΂͖ Kenji Rikitake / Pepabo Fukuoka

    22-JUN-2018 (summarized version) 36
  37. Webͷ͢͹Β͠͞ɺݶքɺͦͷઌʹ͋Δ΋ͷ • HTTP(/2)͚ͩߟ͑Ε͹ྑ͘ͳͬͨɺ͸ͣ • Ͱ΋DNS΍TCP/IP͔Β͸ಀΕΒΕͳ͍ • Webͷઌʹग़ͯ͘Δͷ͸HTTP/2ࣗ਎ͷந৅Խ • ͦͯͦ͠ͷഎޙʹ͋ΔΧϦΧϦͷνϡʔχϯά •

    FastContainer΍Haconiwaͷग़൪ • ͞Βʹ͸ػցֶशͱʮਓ޻஌ೳʯͷग़൪ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 37
  38. ࠷ޙʹ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 38

  39. 2018೥6݄18೔ ೔ຊ࣌ؒޕલ7࣌58෼ ਒౓6ऑͷ஍਒Λ ࣗ୐Ͱମݧ͠·ͨ͠ 23೥લʹ΋ಉ͡Α͏ͳ͜ͱ͕͋Γ·ͨ͠ɺͰ΋·ͩੜ͖͍ͯ·͢ Kenji Rikitake / Pepabo Fukuoka

    22-JUN-2018 (summarized version) 39
  40. ʢࣦۀ΋ͨ͠͠ɺ࠳ં΋ͨ͠͠ɺਓੜ൓ল͢΂͖͜ͱ͹͔ΓͰ͕͢) ·ͩԶ͸ࢮͳͳ͍ ࢮΜͰͳΔ΋ͷ͔ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized

    version) 40
  41. ͋Γ͕ͱ͏͍͟͝·ͨ͠ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 41

  42. ࣸਅ౳ΫϨδοτ • ϖύϘݚڀॴϩΰ: GMOϖύϘגࣜձࣾ • ྗ෢ৗ࣍: ʮΞαώάϥϑʯ1956೥2݄5೔߸ͷը૾ΛWikipedia ΑΓҾ༻ɺpublic domain •

    Apple ][ͱͷࣸਅ: ʮिץே೔ʯ1982೥3݄1೔߸ΑΓҾ༻ • MicroVAX II: http://www.chookfest.net/computers/mv2.html Α ΓҾ༻ Kenji Rikitake / Pepabo Fukuoka 22-JUN-2018 (summarized version) 42