JavaScript:“草台班子”统治世界三十年

内容分享2小时前发布
0 10 0

JavaScript:“草台班子”统治世界三十年

三十岁,对一个人来说,是道坎。孔夫子说三十而立,但今天的大多数人到了三十,立住的可能只有房贷和发际线。

孔夫子那个年代没想过,对一门计算机语言来说,三十岁意味着什么。

在技术迭代快到令人发指的 IT 行业,三十年不是而立,而是古稀。它几乎等同于活化石,理应被供奉在博物馆里,旁边贴着标签:史前遗迹,请勿触摸。

不过,凡事总有例外。

1995 年 12 月 4 日,Netscape 和 Sun Microsystems 联合发布了一则新闻稿,宣布推出一种名为「JavaScript」的语言。

JavaScript:“草台班子”统治世界三十年

三十年后的今天,这个当初只用了十天时间仓促拼凑出来的「浏览器脚本」,非但没有被拍死在历史的沙滩上,反而成了这个数字世界的隐形统治者。

这是一个关于草台班子如何意外建立了一个互联网帝国的荒诞故事。

浏览器战争的「胶水语言」

故事的开端,充满了 90 年代特有的草莽气息与商业算计。

那是一个属于 Netscape 的时代,它的 Navigator 浏览器是人们通往一个叫做「互联网」的新大陆的唯一航船。

JavaScript:“草台班子”统治世界三十年

但这片大陆当时还很荒芜,网页是静态的,像一张张印好的报纸,毫无生气。Netscape 的管理者们觉得这样不行,得让网页「动」起来。

于是,一个叫 Brendan Eich 的工程师临危受命。他接到的任务是:为浏览器创造一种脚本语言,要简单,要像当时红得发紫的 Java,但又不能是 Java,由于 Java 太重、太复杂,是给真正的程序员准备的。

Brendan 创造 JavaScript,只花了十天。

今天我们回看这个「十日创世纪」的传说,与其说是天才的灵光乍现,不如说是一次极限条件下的妥协与拼凑。

Brendan 本人后来也承认,那十天里,他借鉴了 Scheme 的函数式编程思想,Self 的原型继承模型,当然,为了完成任务,还披上了一层 Java 的语法外衣。最初它叫 Mocha,后来改成 LiveScript。

最后,为了蹭上 Java 的热度,市场部门一锤定音,叫 JavaScript。

发布新闻稿里那句极具时代乐观精神的描述,今天读来令人莞尔:「JavaScript is analogous to Visual Basic in that it can be used by people with little or no programming experience to quickly construct complex applications.」

把 JavaScript 类比成 VB,说没什么编程经验的人也能用它快速构建复杂应用。

这在当时或许是美好的愿望,但在后来三十年的演进中,这句话变成了一个巨大的讽刺。它的确 降低了门槛,但也挖下了无数的坑。

标准化:从战争武器到开放协议

真正的战争很快打响。微软,这个永远的「最佳后进生」,迅速通过逆向工程搞出了自己的 JScript,并捆绑在 Internet Explorer 3.0 中发布。

浏览器战争进入白热化阶段。这直接导致了一个灾难性的后果:开发者们为了一段简单的脚本能在不同浏览器上运行,不得不写两套甚至多套逻辑。

世界眼看就要分裂成两个「互联网」。

就在这危急关头,一个决定 JavaScript 日后命运的战略性操作出现了。

Netscape 决定将 JavaScript 提交给国际标准组织 ECMA。这一招,表面上看是拥抱开放,实际上是「以退为进」的阳谋。

通过标准化,Netscape 将 JavaScript 从一个私有技术变成了一个公共标准,也就是我们后来熟知的 ECMAScript。

一个公司可能会死,但一个标准可以永存。

后来的故事我们都知道了,Netscape 在浏览器战争中一败涂地,但 JavaScript 活了下来。

JavaScript 在 2000 年代初期蛰伏,直到 Ajax 技术的出现,才让它再次回到舞台中央。

JavaScript:“草台班子”统治世界三十年

Google Maps 和 Gmail 让世界第一次见识到,原来网页应用可以做得和桌面软件一样流畅。而 jQuery 的诞生,则以一己之力抹平了各大浏览器的兼容性差异,让无数前端开发者从重复的 DOM 操作和 bug 修复中解脱出来。

性能革命:V8 引擎与 Node.js 的诞生

Google 为了推广自己的 Chrome 浏览器,倾尽全力打造了 V8 引擎。V8 的出现是革命性的,它首次引入了 JIT 编译技术,将 JavaScript 的执行速度提升到了一个前所未有的高度。

JavaScript:“草台班子”统治世界三十年

在此之前,没人觉得 JavaScript 是一门性能过关的语言。V8 证明了,这门语言的潜力远未被挖掘。

很快,一个叫 Ryan Dahl 的开发者注意到了 V8 的强劲。他想,既然 V8 能在浏览器里跑得这么快,为什么不能把它拿出来,放到服务器上呢?

2009 年,Node.js 诞生了。这个决定彻底打破了 JavaScript 被囚禁在浏览器里的命运枷锁。它第一次让开发者可以用同一种语言来编写前端和后端代码,实现了所谓的「全栈开发」。

JavaScript:“草台班子”统治世界三十年

JavaScript 的帝国版图,从客户端的弹丸之地,瞬间扩张到了广阔的服务器领域。

自此,潘多拉的魔盒被打开。一个被称为「JavaScript 疲劳」的时代拉开序幕。

现代化的阵痛与成熟

npm 包管理器的出现,让代码共享变得空前容易。

JavaScript:“草台班子”统治世界三十年

Angular, React, Vue 三大框架的「三国演义」,Webpack, Babel, ESLint 等构成的复杂工具链,让前端开发变成了一门玄学。

JavaScript:“草台班子”统治世界三十年

开发者们戏称,学不动了,每年都有新框架,每季度都有新工具。

JavaScript 这个草台班子,在扩张的过程中显得愈发混乱和臃肿。

也正是在这种混乱中,JavaScript 的生态展现出了惊人的自我修复和进化能力。

当人们抱怨它的动态类型在大型项目中难以维护时,微软带着 TypeScript 来了。

TypeScript 并没有尝试取代 JavaScript,而是机智地选择成为它的一个「超集」,为它加上了类型系统和现代化的工程能力。

结论:永恒的「测试版」

三十年过去了,回望这条道路,我们不禁要问,为什么是 JavaScript?为什么是这个充满设计缺陷、身世离奇的语言,最终登上了王座?

答案或许不在于其语言设计的优美,而在于它深刻地体现了互联网的本质:实用主义、野蛮生长和去中心化的开放。

第一,它是实用主义的胜利。

它诞生之初的目的不是为了创造一门完美的语言,而是为了解决「如何让网页动起来」这个具体问题。它足够简单,足够灵活,哪怕带着一身毛病,但它能用。正如 Bjarne Stroustrup 那句名言所说:「世界上只有两种编程语言:一种是被人骂的,一种是没人用的。」

JavaScript 毫无疑问属于前者。

第二,开放是它最强劲的武器。

从被提交给 ECMA 成为公共标准的那一刻起,它的命运就不再由任何一家公司掌控。微软没能扼杀它,Google 的 V8 引擎反而成了它起飞的助推器,无数开发者通过 npm 为它添砖加瓦。这种失控的、由社区驱动的进化模式,恰好与互联网的分布式精神不谋而合。

第三,它总能在关键时刻抓住时代的红利。

无论是 Ajax 的兴起,还是 V8 带来的性能革命,亦或是移动互联网时代催生的 React Native 这样的跨平台方案,JavaScript 总能找到自己的位置,将新的技术浪潮转化为自己扩张的动力。

当我们回顾 JavaScript 的三年,会发现它:

  • 诞生于商业战争的需求。
  • 生存于开放标准的建立。
  • 普及于社区驱动的工具。
  • 飞跃于性能竞争的革命。
  • 成熟于语言自身的现代化。

下一个三十年,JavaScript 会走向何方?

AI 正在重塑软件开发,WebAssembly 正在挑战它在浏览器中的性能霸权。但极有可能,JavaScript 会再次展现其强劲的适应性,成为粘合 AI 模型与用户界面的「最后一公里」的胶水语言,成为调度 WebAssembly 高性能模块的「总指挥」。

JavaScript 的三十年,是一个关于「足够好」战胜「最好」的故事。

它是一个充满了意外、妥协和机会主义的传奇。

它不完美,甚至可以说很粗糙,但它像一个生命力旺盛的野草,在互联网这片土壤上疯狂生长,最终覆盖了整个世界。

这个草台班子,用三十年的时间证明了:在变化才是唯一不变的数字世界里,最能活下来的,不是最强的,也不是最机智的,而是最能适应变化的。

生日快乐,JavaScript。互联网世界因你而乱,也因你而精彩。

© 版权声明

相关文章

10 条评论

  • 头像
    应纳所得额 投稿者

    js中两个写法很无敌,函数可以由函数动态创建,函数还可以作为另一个函数得参数, 另一个是eval,这个功能过于彪悍,以至于被某些软件禁止了,比如微信开发者工具

    无记录
    回复
  • 头像
    小葱 读者

    js 一路都在凑合,nodejs 也是凑合,大家都不看好他,偏偏他走的很远

    无记录
    回复
  • 头像
    渔渔爱吃鱼 读者

    现在ai写的都是vue+ typescript

    无记录
    回复
  • 头像
    楽番1995 投稿者

    wps 弄了个 vj,我为此还专门学习了一下 javascript ,不过 vj 的 学习资料太少了,暂时还得用 vba,随着单位电脑换国产电脑 ,相信不久我还得用 vj

    无记录
    回复
  • 头像
    李威-S 投稿者

    js本来就是修修补补,es6才开始步入正轨,之前的语法还不能丢弃,所以变成现在这样了

    无记录
    回复
  • 头像
    湦泽 读者

    写javascript很带劲

    无记录
    回复
  • 头像
    小鸟德钦玉珍 投稿者

    未来canvas webgpu挑大梁

    无记录
    回复
  • 头像
    不影于心 读者

    这里面贡献最大的是谷歌的V8。

    无记录
    回复
  • 头像
    明言明宝 投稿者

    ,x

    无记录
    回复
  • 头像
    困拍大师 读者

    收藏了,感谢分享

    无记录
    回复