《JavaScript 20 年》中文在线版发布

号外号外,由 JS 之父与 ES6 首席作者联合出品的前端键政必读书《JavaScript 20 年》,历时半年终于完成了中文翻译的在线版!

那么,在线版比之前连载的专栏文章多了些什么呢?其实还真不少:

  • 加入了共约 500 条的参考文献超链接。
  • 加入了共约 100 条的脚注超链接。
  • 加入了共约 100 条术语表的注解超链接。
  • 加入了共约 400 项的 JavaScript 演化时间线表格。
  • 加入了可跳转的章节目录。
  • 加入了标志着 JavaScript 诞生的公告稿译文。
  • 加入了其他重要附录表格,如登场人物表与组织表等。
  • 优化了专栏连载中 20 余份列表和表格的展示,将其由截图改为 HTML。
  • 修复了原文代码块示例中的若干问题,并美化了排版。
  • 改进了连载中过于口语化和非中性的陈述。

经过这些完善,在线版的篇幅已经达到了 25 万字的水平。下面简单分享下这些更新里有趣的料吧:

参考文献、脚注和术语表

相比之前的专栏连载版本,在线版的正文中加入了大量链接,其结构与原文保持了一致。它们能给你一种「很专业」的感觉。比如下面这段话:

加入并校订这些链接,主要是件体力活。其要点大概有这么几个:

  • 参考文献由 Allen Wirfs-Brock 提供的 BibTeX 解析生成,并在逐条插入过程中进行了一遍人工校对。
  • 脚注里有一些八卦,比如 Rust 原作者当年也参加过 TC39 会议之类。
  • 术语表相当于一份简易的「JavaScript 词典」。它连续回答了 100 个左右的「什么是函数」和「什么是 JS 引擎」一类的灵魂拷问式问题,对这些概念作出了直接的定义。本文由 ACM HOPL-IV 项目团队中以 Richard Gabriel 和 Guy Steele 为首的计算机科学家们审校过,相信可以信赖这些陈述的质量。

JavaScript 演化时间线

这条记载 JavaScript 演化的时间线,对应原文的附录 E,是一份事无巨细的表格,像这样:


《JavaScript 20 年》中文在线版发布

这里我们可以直观地看到,许多影响 JavaScript 和 Web 发展的历史事件是如何交织在一起的。比如从上图中我们就能发现,Brendan Eich 才刚把 demo 级的 JavaScript 原型写出来三个月(1.0 都还没发布),他供职的 Netscape 就高歌猛进地上市了。再比如我们也可以找到 Chrome V8 发布后,各大主流浏览器花了多少时间跟进这项「性能革命」。

JavaScript 发布公告

你知道 JavaScript 当年是如何正式发布的吗?我们搬运回了附录 F 中这份当年 Netscape 和 Sun 联合发布的新闻稿,其中自然不乏亮点:

它都预言了些什么呢?这说的不像是今天我们还在做的表单吗?不像是 Node.js 吗?不像是服务端渲染的 SSR 吗?不像是 JS 控制 Java 原生组件的 RN 吗?你看 Netscape 在 25 年前吹的牛逼,整个社区到了 2020 年的今天,居然也算把它们给实现得八九不离十(强行)。除此之外,附录资料中还藏着更多的细节,等待着你的发掘。

如何阅读

我们申请到了 cn.history.js.org 这个漂亮的域名,另外你也可以访问 jshistory-cn 这个 GitHub 项目主页,两者的阅读体验基本是一致的。

另外,由于新增了大量不便于同步的细节格式优化,最早的知乎专栏连载文章将不再继续维护,它们的文中也已添加了相应的 deprecated warning。

最后,这里还准备了一份目录可供直达:

  • 语言诞生
    • 史前时代
    • Brendan Eich 加入网景
    • Mocha 的故事
    • JavaScript 1.0 与 1.1
      • JavaScript 语法
      • 数据类型与表达式
      • 对象
      • 函数对象
      • 内置库
      • 执行模型
      • 迷惑行为与 Bug
        • 冗余声明
        • 隐式类型转换与 == 运算符
        • 32 位算术
        • this 关键字
        • Arguments 对象
        • 对数值属性键的特殊处理
        • 原始值的属性
        • JavaScript 中的 HTML 注释
    • 微软 JScript
    • 从 Mocha 到 SpiderMonkey
  • 插曲:风评被害
  • 创立标准
    • 寻找场地
    • 首次 TC39 会议
    • 编写规范
    • 命名标准
    • ISO 快速通道
    • 定义 ECMAScript 3
  • 插曲:JavaScript 不需要 Java
    • 布道师
    • 富互联网应用与 AJAX
    • 浏览器博弈论
  • 改革失败
    • 不满于成功
    • 对 ES4 的第一轮尝试
    • 另一条死路
    • Flash 与 ActionScript
    • 对 ES4 的第二轮尝试
      • 重置 TC39-TG1
      • 重新设计 ES4
      • 阻力
      • 寻求和谐
  • 插曲:认真对待 JavaScript
    • JavaScript 性能革命
    • CommonJS 和 Node.js
    • 成为浏览器通用运行时的 JavaScript
  • 继往开来
    • 开发 ES3.1/ES5
      • ES5 技术设计
        • 严格模式
        • Getter,Setter 和对象元操作
        • 对象的完整性与安全性特性
        • 活动对象(Activation Object)的移除
        • 其他 ES5 特性
      • 实现与测试
    • 从 Harmony 到 ECMAScript 2015
      • 开始投入 Harmony
        • 稻草人(Strawman)与目标
        • 倡导者模型
        • 选择特性集
        • 开始编写规范
        • One JavaScript
        • Brendan 的梦想
      • 重新打造规范
        • 重组规范结构
        • 新的术语
        • 新的语义种类
      • ES2015 语言特性
        • Realms、Jobs、Proxies 和元对象编程(MOP)
        • 块级声明作用域
        • 模块
        • 箭头函数
        • 其他特性
        • 延期和被放弃的特性
      • Harmony 转译器
      • 完成 ECMAScript 2015
  • 总结
  • 致谢
  • 附录
    • 登场人物
    • 登场组织
    • 术语表
    • 缩略语和首字母缩写词
    • 时间线
      • 第一部分:语言诞生
      • 第二部分:创立标准
      • 第三部分:改革失败
      • 第四部分:继往开来
    • 1995 年 12 月 4 日的 JavaScript 发布公告
  • 备注
  • 参考文献

欢迎阅读与指正!

(题图:原书的两位作者 Brendan Eich 与 Allen Wirfs-Brock,2011 年)

One More Thing……

原创文章,作者:27149,如若转载,请注明出处:http://wpbbw.com/4505.html

发表评论

登录后才能评论