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
JSONの歴史
Search
circled9
July 13, 2018
Programming
7
5.4k
JSONの歴史
2018/07/13のJSONの日の発表資料です。
circled9
July 13, 2018
Tweet
Share
More Decks by circled9
See All by circled9
キースイッチ入門
circled9
0
66
CloudflareのAI関連の機能さわってみた
circled9
0
520
0.0.0.0 day
circled9
0
93
小数の丸め誤差の話
circled9
0
120
数値の文字列をパースしよう
circled9
0
200
🔥 Hono v4 やってみた
circled9
1
180
JetBrains AI Assistant を試してみた
circled9
1
480
Fresh
circled9
0
230
React Hooks 勉強会 vol.3
circled9
2
430
Other Decks in Programming
See All in Programming
ベクトル検索システムの気持ち
monochromegane
30
9.7k
DataStoreをテストする
mkeeda
0
270
Java 24まとめ / Java 24 summary
kishida
3
400
自分のために作ったアプリが、グローバルに使われるまで / Indie App Development Lunch LT
pixyzehn
1
150
Develop Faster With FrankenPHP
dunglas
2
3.1k
「影響が少ない」を自分の目でみてみる
o0h
PRO
1
790
海外のアプリで見かけたかっこいいTransitionを真似てみる
shogotakasaki
1
150
Being an ethical software engineer
xgouchet
PRO
0
200
リアクティブシステムの変遷から理解するalien-signals / Learning alien-signals from the evolution of reactive systems
yamanoku
2
1.2k
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist4121
0
190
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
5
980
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
15
4.3k
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
It's Worth the Effort
3n
184
28k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
Why Our Code Smells
bkeepers
PRO
336
57k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
Testing 201, or: Great Expectations
jmmastey
42
7.4k
Producing Creativity
orderedlist
PRO
344
40k
RailsConf 2023
tenderlove
29
1k
Transcript
JSONͷྺ࢙ @circled9 2018-07-13 #friday13json
JSONҎલ 1995-1999
1995ࠒͷͰ͖͝ͱ • Windows 95͕ൃച͞ΕΔ • ϥϦʔϖΠδͱαʔήΠϒϦϯ͕ݕࡧΤϯδ ϯΛ࡞Γ࢝ΊΔʢޙͷGoogleʣ • Amazon͕αʔϏε։࢝
JavaScriptͷ͡·Γ • 1995ʹNetscape Navigator 2.0Ͱ࣮͞ Εͨͷ͕࠷ॳ • 1996ʹInternet Explorer 3.0ʹࡌ͞Εͨ
JavaScriptͷඪ४Խ • 1997ʹEcma InternationalʹΑ༷͕ͬͯ ඪ४Խ͞Εͨ • ͜ͷඪ४ΛECMAScriptͱݺͿ • 1999ʹECMA-262ͷୈ3൛͕ެ։͞Εͨ •
͜ͷ࣌Ͱ·ͩJSONͳ͍
Ecma International • ใ௨৴γεςϜʹ͓͚Δࠃࡍతͳඪ४Խ ஂମ • ݩʑEuropean Computer Manufactures Associationͱ͍͏໊લͩͬͨ
• 1994ʹࠃࡍతͳཱΛөͯ͜͠ͷ໊લʹ ͳͬͨ
TC39 • Technical Committee = ઐҕһձ • TC39ECMAScriptΛࡦఆ͍ͯ͠Δઐҕһ ձ
ECMAScript • Ecma Internationalͷ࡞ͬͨJavaScriptͷඪ४ • ECMA-262ͱ͍͏ن֨൪߸Ͱඪ४Խ͞Ε͍ͯ Δ
JSONͷ͡·Γ 2001-2002
2001ࠒͷͰ͖͝ͱ • Internet Explorer 6͕ϦϦʔε͞ΕΔ • Netscape 6͕ϦϦʔε͞ΕΔ • ͜ͷ࣌ͰFirefoxChrome·ͩͳ͍
JSONͷ͡·Γ • 2001ʹDouglas Crockfordࢯ͕ݟ໋͚ͭͯ ໊ͨ͠ͷ͕͡·ΓͱݴΘΕ͍ͯΔɻ • 2002ʹjson.orgͰ༷͕ެ։͞Εͨɻ
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 2005 2010 2015
RFC 4627ͷൃද 2006
2006ࠒͷͰ͖͝ͱ • Ajaxͱ͍͏ݴ༿͕ੜΈग़͞ΕΔ • Web 2.0ͱ͍͏ݴ༿͕ྲྀߦΔ • ͍ΘΏΔୈೋ࣍ϒϥβઓ૪͕࢝·Δ
IETF • ਖ਼໊ࣜশ The Internet Engineering Task Force • ΠϯλʔωοτͰར༻͞ΕΔٕज़ͷඪ४Λࡦ
ఆ͢Δ৫ • ࡦఆ͞Εͨඪ४༷࠷ऴతʹRFCͳͲͱ ͯ͠ൃߦ͞ΕΔ
RFC • Request for Commentsͷུ • IETFʹΑΔٕज़༷ͷอଘɺެ։ܗࣜ • Not All
RFCs are Standards (RFC 1796)
RFC 4627 • 20067݄ʹެ։͞Ε༷ͨ • Informational • τοϓϨϕϧͰObjectͱArray͔͠ڐͯ͠ ͍ͳ͍
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 2010 2015
ECMAScript 5 2009
2009ࠒͷͰ͖͝ͱ • Windows 7͕ൃച͞ΕΔ • ຊॳͷAndroidεϚϗɺHT-03A͕ൃച͞Ε Δ • Twitter͕ຊͰྲྀߦ͢Δ
ECMAScript 5 • 20116݄ʹެ։͞Ε༷ͨ • JSONʹؔ͢Δهड़͕Ճ͞Εͨ • 4ͷ༷ࡦఆʹࣦഊͨͨ͠Ίɺ10ͿΓͷ৽ ༷ʹͳΔ
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ
2010 2015
ECMA-404 2013
2013ࠒͷͰ͖͝ͱ • IE11͕ϦϦʔε͞ΕΔ • εϚϗ͕Ψϥέʔͷར༻Λ͑Δ
ECMA-404 • 201310݄ʹެ։͞Ε༷ͨ • ECMA-262ͷJSON෦Λ୯ಠͷ༷ͱͯ͠ ·ͱΊΒΕͨͷ • ͜ͷޙʹग़ͨECMA-262, 6thͰJSONʹؔ ͢Δهड़ͳ͘ͳ͍ͬͯΔ
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ
2010 2015 &$."͕ ެ։͞ΕΔ
RFC 7159 2014
2014ࠒͷͰ͖͝ͱ • HTML5͕קࠂ͞ΕΔ • ChromeͷγΣΞ͕τοϓʹ • ਓྨ͕IE6͔Βղ์͞Εͨ
RFC 7158 • ҰॠͰഇࢭ • ഇࢭͷཧ༝ɺ20143݄ͱॻͣͩͬͨ͘ ͷʹɺ20133݄ͱॻ͍ͯ͠·͔ͬͨΒ
RFC 7159 • 20143݄ʹެ։͞Ε༷ͨ • Proposed Standard • τοϓϨϕϧͰObjectͱArrayҎ֎ͷvalue ѻ͑ΔΑ͏ʹͳͬͨ
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ
2010 2015 &$."͕ ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ
RFC8259ͱECMA-404 2nd 2017
RFC 8259 • 201712݄ʹެ։͞Ε༷ͨ • Internet Standard • UTF-8Λ͏͠ͱॻ͔Εͨ
ECMA-404 2nd • 201712݄ʹެ։͞Ε༷ͨ • ҙॻ͖͕૿͚͑ͨͩʁͱ͍͏ײ͕͢͡Δ
RFC 8259ͱECMA-404 2nd • ޓ͍ʹ༷Λ߹ΘͤΔͥͬͯॻ͍ͯ͋Δ • ಛʹͲͪΒΛ͏ͱ͔ߟ͑ͳ͍͍ͯ͘
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ
2010 2015 &$."͕ ެ։͞ΕΔ 3'$ɺ &$."OE͕ ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ
Appendix
Appendix • json.org • https://json.org/
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
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
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
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