Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JSONの歴史

 JSONの歴史

2018/07/13のJSONの日の発表資料です。

D8eb514404fbca5bd485040edccdbe30?s=128

Matsui Masashi

July 13, 2018
Tweet

More Decks by Matsui Masashi

Other Decks in Programming

Transcript

  1. JSONͷྺ࢙ @circled9 2018-07-13 #friday13json  

  2. JSONҎલ 1995-1999  

  3. 1995೥ࠒͷͰ͖͝ͱ • Windows 95͕ൃച͞ΕΔ • ϥϦʔϖΠδͱαʔήΠϒϦϯ͕ݕࡧΤϯδ ϯΛ࡞Γ࢝ΊΔʢޙͷGoogleʣ • Amazon͕αʔϏε։࢝ 

    
  4. JavaScriptͷ͸͡·Γ • 1995೥ʹNetscape Navigator 2.0Ͱ࣮૷͞ Εͨͷ͕࠷ॳ • 1996೥ʹInternet Explorer 3.0ʹ౥ࡌ͞Εͨ

     
  5. JavaScriptͷඪ४Խ • 1997೥ʹEcma InternationalʹΑͬͯ࢓༷͕ ඪ४Խ͞Εͨ • ͜ͷඪ४ΛECMAScriptͱݺͿ • 1999೥ʹECMA-262ͷୈ3൛͕ެ։͞Εͨ •

    ͜ͷ࣌఺Ͱ͸·ͩJSON͸ͳ͍  
  6. Ecma International • ৘ใ௨৴γεςϜ෼໺ʹ͓͚Δࠃࡍతͳඪ४Խ ஂମ • ݩʑ͸European Computer Manufactures Associationͱ͍͏໊લͩͬͨ

    • 1994೥ʹࠃࡍతͳཱ৔Λ൓өͯ͜͠ͷ໊લʹ ͳͬͨ  
  7. TC39 • Technical Committee = ઐ໳ҕһձ • TC39͸ECMAScriptΛࡦఆ͍ͯ͠Δઐ໳ҕһ ձ 

    
  8. ECMAScript • Ecma Internationalͷ࡞ͬͨJavaScriptͷඪ४ • ECMA-262ͱ͍͏ن֨൪߸Ͱඪ४Խ͞Ε͍ͯ Δ  

  9. JSONͷ͸͡·Γ 2001-2002  

  10. 2001೥ࠒͷͰ͖͝ͱ • Internet Explorer 6͕ϦϦʔε͞ΕΔ • Netscape 6͕ϦϦʔε͞ΕΔ • ͜ͷ࣌఺Ͱ͸Firefox΋Chrome͸·ͩͳ͍

     
  11. JSONͷ͸͡·Γ • 2001೥ʹDouglas Crockfordࢯ͕ݟ໋͚ͭͯ ໊ͨ͠ͷ͕͸͡·ΓͱݴΘΕ͍ͯΔɻ • 2002೥ʹjson.orgͰ࢓༷͕ެ։͞Εͨɻ  

  12. Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 2005 2010 2015  

  13. RFC 4627ͷൃද 2006  

  14. 2006೥ࠒͷͰ͖͝ͱ • Ajaxͱ͍͏ݴ༿͕ੜΈग़͞ΕΔ • Web 2.0ͱ͍͏ݴ༿͕ྲྀߦΔ • ͍ΘΏΔୈೋ࣍ϒϥ΢βઓ૪͕࢝·Δ  

  15. IETF • ਖ਼໊ࣜশ͸ The Internet Engineering Task Force • ΠϯλʔωοτͰར༻͞ΕΔٕज़ͷඪ४Λࡦ

    ఆ͢Δ૊৫ • ࡦఆ͞Εͨඪ४࢓༷͸࠷ऴతʹ͸RFCͳͲͱ ͯ͠ൃߦ͞ΕΔ  
  16. RFC • Request for Commentsͷུ • IETFʹΑΔٕज़࢓༷ͷอଘɺެ։ܗࣜ • Not All

    RFCs are Standards (RFC 1796)  
  17. RFC 4627 • 2006೥7݄ʹެ։͞Εͨ࢓༷ • Informational • τοϓϨϕϧͰ͸ObjectͱArray͔͠ڐͯ͠ ͍ͳ͍ 

    
  18. Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 2010 2015

     
  19. ECMAScript 5 2009  

  20. 2009೥ࠒͷͰ͖͝ͱ • Windows 7͕ൃച͞ΕΔ • ೔ຊॳͷAndroidεϚϗɺHT-03A͕ൃച͞Ε Δ • Twitter͕೔ຊͰྲྀߦ͢Δ 

    
  21. ECMAScript 5 • 2011೥6݄ʹެ։͞Εͨ࢓༷ • JSONʹؔ͢Δهड़͕௥Ճ͞Εͨ • 4ͷ࢓༷ࡦఆʹࣦഊͨͨ͠Ίɺ10೥ͿΓͷ৽ ࢓༷ʹͳΔ 

    
  22. Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ

    2010 2015  
  23. ECMA-404 2013  

  24. 2013೥ࠒͷͰ͖͝ͱ • IE11͕ϦϦʔε͞ΕΔ • εϚϗ͕Ψϥέʔͷར༻཰Λ௒͑Δ  

  25. ECMA-404 • 2013೥10݄ʹެ։͞Εͨ࢓༷ • ECMA-262ͷJSON෦෼Λ୯ಠͷ࢓༷ͱͯ͠ ·ͱΊΒΕͨ΋ͷ • ͜ͷޙʹग़ͨECMA-262, 6thͰ͸JSONʹؔ ͢Δهड़͸ͳ͘ͳ͍ͬͯΔ

     
  26. Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ

    2010 2015 &$."͕ ެ։͞ΕΔ  
  27. RFC 7159 2014  

  28. 2014೥ࠒͷͰ͖͝ͱ • HTML5͕קࠂ͞ΕΔ • ChromeͷγΣΞ͕τοϓʹ • ਓྨ͕IE6͔Βղ์͞Εͨ  

  29. RFC 7158 • ҰॠͰഇࢭ • ഇࢭͷཧ༝͸ɺ2014೥3݄ͱॻ͘͸ͣͩͬͨ ͷʹɺ2013೥3݄ͱॻ͍ͯ͠·͔ͬͨΒ  

  30. RFC 7159 • 2014೥3݄ʹެ։͞Εͨ࢓༷ • Proposed Standard • τοϓϨϕϧͰObjectͱArrayҎ֎ͷvalue΋ ѻ͑ΔΑ͏ʹͳͬͨ

     
  31. Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ

    2010 2015 &$."͕ ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ  
  32. RFC8259ͱECMA-404 2nd 2017  

  33. RFC 8259 • 2017೥12݄ʹެ։͞Εͨ࢓༷ • Internet Standard • UTF-8Λ࢖͏΂͠ͱॻ͔Εͨ 

    
  34. ECMA-404 2nd • 2017೥12݄ʹެ։͞Εͨ࢓༷ • ஫ҙॻ͖͕૿͚͑ͨͩʁͱ͍͏ײ͕͢͡Δ  

  35. RFC 8259ͱECMA-404 2nd • ޓ͍ʹ࢓༷Λ߹ΘͤΔͥͬͯॻ͍ͯ͋Δ • ಛʹͲͪΒΛ࢖͏ͱ͔͸ߟ͑ͳ͍͍ͯ͘  

  36. Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ

    2010 2015 &$."͕ ެ։͞ΕΔ 3'$ɺ &$."OE͕ ެ։͞ΕΔ   3'$͕ ެ։͞ΕΔ
  37. Appendix  

  38. Appendix • json.org • https://json.org/  

  39. Appendix • ECMAScript • https://ja.wikipedia.org/wiki/ECMAScript • Standard ECMA-262 • https://www.ecma-international.org/publications/standards/

    Ecma-262.htm • Standard ECMA-404 • https://www.ecma-international.org/publications/standards/ Ecma-404.htm  
  40. Appendix • Internet Engineering Task Force • https://ja.wikipedia.org/wiki/ Internet_Engineering_Task_Force •

    Request for Comments • https://ja.wikipedia.org/wiki/Request_for_Comments • RFC 4627 • https://tools.ietf.org/html/rfc4627  
  41. Appendix • RFC 7158 • https://tools.ietf.org/html/rfc7158 • RFC 7159 •

    https://tools.ietf.org/html/rfc7159 • RFC 8259 • https://tools.ietf.org/html/rfc8259  
  42. Appendix • JSONɺECMAඪ४ͱͳΔɻ࢓༷จॻʮECMA-404ʯ͕ެ։ ʵ Publickey • https://www.publickey1.jp/blog/13/ jsonecmaecma-404.html • ࣄ্࣮࠷ޙͷJSON࢓༷ʮRFC

    8259ʯͱʮECMA-404 2nd Editonʯެ։ɻUTF-8Τϯίʔυඞਢʹ ʵ Publickey • https://www.publickey1.jp/blog/17/ jsonrfc_8259ecma-404_2nd_editonutf-8.html