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.3k
JSONの歴史
2018/07/13のJSONの日の発表資料です。
circled9
July 13, 2018
Tweet
Share
More Decks by circled9
See All by circled9
キースイッチ入門
circled9
0
55
CloudflareのAI関連の機能さわってみた
circled9
0
460
0.0.0.0 day
circled9
0
82
小数の丸め誤差の話
circled9
0
110
数値の文字列をパースしよう
circled9
0
160
🔥 Hono v4 やってみた
circled9
1
170
JetBrains AI Assistant を試してみた
circled9
1
460
Fresh
circled9
0
230
React Hooks 勉強会 vol.3
circled9
2
420
Other Decks in Programming
See All in Programming
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
120
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
260
Formの複雑さに立ち向かう
bmthd
1
730
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
110
Grafana Loki によるサーバログのコスト削減
mot_techtalk
1
110
Honoとフロントエンドの 型安全性について
yodaka
4
280
Conform を推す - Advocating for Conform
mizoguchicoji
3
680
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
790
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
4
1.3k
TokyoR116_BeginnersSession1_環境構築
kotatyamtema
0
110
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
41
15k
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
11
1.8k
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Designing Experiences People Love
moore
139
23k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
What's in a price? How to price your products and services
michaelherold
244
12k
GitHub's CSS Performance
jonrohan
1030
460k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Making Projects Easy
brettharned
116
6k
Optimising Largest Contentful Paint
csswizardry
34
3.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