服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

【第2917期】JSON 的故事

日期: 来源:前端早读课收集编辑:软件考古学家

前言

周末愉快。你有开始接触播客了么?今日前端早读课文章由 @软件考古学家分享。

前端早读课:重视信息质量

【第2859期】React 纪录片心得  — 社群驱动创新

【第2858期】React 纪录片心得 — 重新思考最佳实践

正文从这开始~~

JSON 的故事

专门讲软件开发故事的 软件 Podcast 节目 CoRecursive 最近访问了 JSON 之父 — Douglas Crockford(以下简称 Doug),说他是怎么想出 JSON 这个现在大家都在用的数据格式,以及他是怎么推广它的。

Doug 除了是 JSON 的发明人,也是 JSLint 和 JavaScript 经典名书 “JavaScript: The Good Parts” 的作者。

JavaScript 简介

刚接触 JavaScript 时,Doug 觉得它是他看过最蠢的东西。

JavaScript 最早的名字 Mocha,后来改名成 LiveScript。当时网景(Netscape)和昇阳(Sun)结盟以对抗微软,他们把 Java 放进 Netscape 浏览器,创造了 Java Applet。昇阳便要求网景:“既然有了 Java,你们应该要拿掉 LiveScript,不然怎么说服大家 Java 是大家最后需要的语言?”

网景不想服从,他们不想抹去多年的努力,于是某个人(传说是 Marc Andreessen)半开玩笑建议:“我们把 LiveScript 改名成 JavaScript,告诉大家 JavaScript 只是 Java 的一部分,这样不就好了?” 昇阳同意。于是他们办一场记者会向全世界撒谎,造就了 JavaScript 这个愚蠢又误导人的的名字。

从 Java 到 JavaScript

1990 年代 Doug 在 Electric Communities 工作,EC 是当时的一间大公司,他们建造了一个 3D 虚拟世界,玩家可以在虚拟世界谈话、走路、传送,有点类似第二人生(Second Life)或现在的元宇宙。可惜这个虚拟世界是 Java 写成的,Java 带给 Doug 很多问题,其中一个问题是载入时间太长,载入整个环境要三分钟。

EC 当时一个客户是 Turner Broadcasting,他们要做一个小孩的卡片游戏。一个方式是做成 Java applet,但 Doug 已经吃过 Java 的亏了,他决定这次不要重蹈覆辙。

Doug 不知从那裡得到的灵感,觉得可以完全用 JavaScript 来写。他找来了 Dave Flanagan 的书 “JavaScript: The Definitive Guide”,然后就开始试著写一个 demo:浏览器画面上有一个人物,你可以拖曳它移动,这在那个年代是前所未见,很少人知道 JavaScript 可以做到那种效果。

自此,Doug 开始懂得欣赏 JavaScript,他学到了很多 JavaScript 的运作方式。JavaScript 与 Java 无关,它是一个完全不同的语言,它有一些好东西是 Java 做不到的。例如:函式在 JavaScript 是头等公民(first-class function),它还有类似 Schema 才有的 closure,这些都是当时主流语言没有的。

Doug 写了一篇文章 “The World’s Most Misunderstood Programming Language”,开始了他的 JavaScript 职涯人生。详看今日第二篇

JSON 的起源

时间来到 2001 年,Doug 和一些同事创立了一间公司叫 State Software。他想要试试单页式应用程序(single-page application)的可行性,做一个 proof-of-concept (POC) 去募款。

当时是 XML 的天下。所有大公司,像是微软、HP、IBM、昇阳都是 XML 的拥护者。XML 功能齐全但很複杂,Doug 完全不想碰它,他想到可以利用 JavaScript 本身的语法来交换数据,因为浏览器本来就可以读 JavaScript,他们就不用再浪费时间写 parser。

他们拿著这个 POC 去募款,但当时 dot com 泡沫才破灭,他们根本拿不到什么钱。例如投资人会说 “啊,抱歉,我们已经在用 XML 了,很难再改用其他技术”、“我们只用业界标准”,Doug 回答:“这是标准啊,这是 ECMAScript 裡的标准”,但他们只摇头说:“这不算标准”。

于是 Doug 决定要让这个东西变成标准。首先,要帮它取一个名字。他们最先想到 JSML - JavaScript Message Language,但昇阳当时已经有东西叫 JSML 了(好险)。然后他们想了一会,JavaScript Object Notation - JSON 。Doug 注册了 json.org 网域名,放上一个简单的网页,JSON 就这样誔生了。

Doug 的公司 State Software 很快因为没钱就收掉了。虽然 json.org 留下来了,但没人在乎。Doug 好似朝著网路大海丢了一封瓶中信,等待对的时机点被人打开。

2004 年 Gmail 出现了,突然间大家都在讨论 AJAX,一堆原本没在做浏览器应用的人都跑来做浏览器应用。AJAX 裡的 X 本来是代表 XML,但一般人进来看到 XML 就会觉得太複杂,然后转头採用 JSON。于是 JSON 开始起飞。

雅虎与 YUI

在前同事的介绍下,Doug 去了雅虎工作,当时雅虎还是一间很酷的公司。Doug 有一个最棒的工作 — 他不需要负责专案,他的唯一任务是教公司的人怎么写 JavaScript。

JSON 成为主流的同时,Doug 在推广如何正确使用 JavaScript,例如:每行结尾都要有分号、不要用 eval、用 JSLint 等。Doug 成为了 JavaScript 的传教士。

当时他推广的还有一样东西:YUI,一个雅虎的开源专案。但推广过程也遇到相同的阻碍,有人会说 “我们应该要用标准的东西”。Doug 又使出同一招:“好,那我再把它变成标准,大家才会用。”

Doug 开始教全世界正确使用 JavaScript,同时也要大家用 YUI,因为只要外面的世界开始用 YUI,公司内部也会 YUI。“在雅虎没有管理层的人在乎这些,我们就只能使一些手段诱导大家做去对的事。”

JSON 标准化

2008 年 Doug 出版了 JavaScript: The Good Parts 这本书后,他回过头来要让 JSON 正式标准化。

他去找了 IETF(制定各种网际网路标准的组织),要求他们保留一个 MIME 类别名称给 JSON。申请过程很冗长,经过 IEFT 无数次来来回回,最后 IETF 给了 Doug 一个不是他本来想要的类别名:application/json。Doug 本来想要的是 text/json,因为 JSON 不是应用程式,是一种文字格式。没人知道为什么 IETF 为什么要这样搞,Doug 猜想:“可能是因为裡面有 XML 的粉丝,他们怀恨在心,所以他们觉得 XML 可以 text/xml,但 JSON 就得是 application/json。这不是什么大问题,只是有点丑。”

之后 IETF 要求 Doug 再写一份 RFC 文件,来制定 JSON 标准。但过程太痛苦,Doug 离开 IETF,去找了 ECMA(制定 JavaScript 语言标准的组织)为 JSON 再制定标准。ECMA 的人友善多了,最终 ECMA 404 成为 JSON 的正式标准。

建言

不要太执著于你现在开发软件的方式,要对新技术抱执接纳的态度。Doug 本来是 OOP 的死忠信奉者,但他后来改变想法。现在他甚至不再推广 JavaScript,他在推广下一个新语言。这个新语言要有分散的特性。现在程式都是在多台机器上跑,主流语言像是 Java 和 C++ 原先是设计在一台机器上跑,但现在的世界不一样了。Doug 觉得下一个新东西是 actor。Actor 的概念已经在 Erlang 行之有年,用在并行处理上。

被问到现今的 XML 的什么?Doug 说:“我不知道,大概是 JavaScript 框架吧。这些框架变得肥大又奇怪,我不懂为什么大家会喜欢。过去浏览器不稳定,我才会建议使用 JavaScript 框架,但现在浏览器都进步了,大致遵循标准,所以我现在写浏览器应用都是纯 JavaScript,不用框架。”

JSON 成功的原因

Doug 说 JSON 的成功完全是偶然,但关键是 Doug 是一个孜孜不倦的传教士,他多次被拒绝也能找到方法(例如让它变成标准)说服人。此外,Doug 没有利用 JSON 赚钱,JSON 是完全免费的,这大概也是原因之一。

关于本文
作者:@软件考古学家
原文:https://hackmd.io/@brachiosoft/json

这期前端早读课
对你有帮助,帮” 赞 “一下,
期待下一期,帮” 在看” 一下 。

相关阅读

  • 国家体育锻炼标准线上自测平台上线

  • 新华社北京4月16日电(记者吴博文)16日,国家体育锻炼标准线上自测平台正式上线。国家体育锻炼标准线上自测平台利用信息化、AI智能化手段推行国家体育锻炼标准,是国家体育总局群
  • 7月1日起,强制执行

  • 今年7月1日起电动自行车充电器领域首个“强制性国家标准”将正式实施电动自行车充电器的安全性将得到极大提升电动车充电器质量良莠不齐目前,大多数电动自行车充电器生产企业
  • 7月1日起,正式实施!

  • 今年7月1日起电动自行车充电器领域首个“强制性国家标准”将正式实施电动自行车充电器的安全性将得到极大提升电动车充电器质量良莠不齐目前,大多数电动自行车充电器生产企业
  • 聚焦茶博会丨两项!欧标茶园标准正式发布

  •   4月16日,在第15届贵州茶产业博览会活动期间,湄潭县举办了茶可持续发展研讨会暨欧标茶园标准发布会。会上,发布了《茶园欧标生产技术规范》《欧标茶园评价实施规则》两项标
  • @广饶电动车车主!7月1日起,强制执行!

  • 今年7月1日起电动自行车充电器领域首个“强制性国家标准”将正式实施电动自行车充电器的安全性将得到极大提升电动车充电器质量良莠不齐目前,大多数电动自行车充电器生产企业
  • 中车株洲所入选国家智能制造标准应用试点企业

  • 中车株洲所时代电气制造中心国家标准化管理委员会、工信部近日公布国家智能制造标准应用试点名单,全省仅有3家企业入选,中车株洲电力机车研究所有限公司(以下简称中车株洲所)名

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四
  • 美国对华2000亿关税清单,到底影响有多大?

  • 1 今天A股大跌,上证最大跌幅超过2%。直接导火索是美国证实计划对华2000亿美元产品加征25%关税。 听起来,2000亿美元数目巨大,我们来算笔账。 2000亿美元,按现在人民币汇率

最新文章

  • JavaScript: 世界上最被误解的语言

  • 前言本文于作者写于 2001 年,也就是 22 年前。作者:@Douglas Crockford 分享正文从这开始~~JavaScript, 亦称为 Mocha、LiveScript,也叫做 JScript ECMAScript,是世界上流行的编程
  • 【第2917期】JSON 的故事

  • 前言周末愉快。你有开始接触播客了么?今日前端早读课文章由 @软件考古学家分享。前端早读课:重视信息质量【第2859期】React 纪录片心得 — 社群驱动创新【第2858期】React
  • 炸裂!免费的ChatGPT来了~

  • Hello 大家好 我是库库。继上次给大家推荐的以GPT为首的AI绘画产品深受大家的喜欢,很多粉丝后台私信要求多发一些类似于这种的软件;目前市面上也是衍生了许许多多的AI产品,让人
  • 微信这次改变,有点惊艳!

  • 作者:沉默王二Java 程序员进阶之路:https://tobebetterjavaer.com大家好,我是二哥呀。不知道,大家有没有被灰度到,微信又悄悄地“搞事情”了,当点击订阅号中的链接,微信会弹出一个
  • 外国人在深圳工作,已经被卷到崩溃了

  • 本文经授权转载自深圳微时光(ID:szdays)原标题 | 外国人卷在深圳职场:同事自愿加班、微信秒回,被卷到崩溃作者 | joanna部分图源 | pixabay法国人Alan戴上头盔骑上小电瓶准备下班
  • 一代顶流CP,崩得互联网集体吵到决裂

  • 《名侦探柯南》粉丝现状↑4月以来,《名侦探柯南》的争议就没掉出过热搜。先是与优衣库联名的T恤图案率先引发粉丝大战,官方晒出的宣传图中,作者青山刚昌、柯南本人都穿着柯哀图