大数据和ai不分家,ai助力低代码和智能运维落地,ai智能体的探索实践,本届as会议一站聚齐!>>>
写点什么

json之父:javascript已非常复杂,我们能做的最好的事情就是让它退役-金马国际

冬雨、闫园园

  • 2022-08-08
  • 本文字数:2538 字

    阅读完需:约 8 分钟

json之父:javascript已非常复杂,我们能做的最好的事情就是让它退役

编译 | 冬雨、闫园园

 

毫无疑问,提起 javascript,其仍是当下最受欢迎的编程语言,全球有将近 1400 万开发者在使用。然而 json ( javascript 对象表示法)的创建者 douglas crockford 却在近日提出一个不同的看法:javascript 已经成为了发展的障碍。

 

crockford 是世界著名前端大师、json 的创立者。被 javascript 之父 brendan eich 称为 javascript 的大宗师(yoda)。除了 json,他还是 jslint、jsmin 和 adsafe 的创造者,也是名著《javascript: the good parts》的作者。

 

让 javascript 退役?

 

在,crockford 表达了自己的观点:

 

“我们现在能做的最好的事情就是让 javascript 退役。20 年前,我是少数几个 javascript 的倡导者之一。它将内嵌函数和动态对象拼凑在一起非常巧妙。我花了十年的时间试图修正它的缺陷。我在 es5 上取得了小小的成功。但从那以后,人们越来越执着于进一步膨胀该语言,而不是改进它。因此,javascript 就像其他恐龙级语言一样,成为了发展的障碍。我们应该专注于下一种语言,它应该更像是 e,而不是 javascript。”

 

根据大多数调查统计,javascript 是世界上最受欢迎的编程语言


根据 stackoverflow 今年的调查,目前有超过 65% 的开发者在使用 javascript,已经远远超过了排名第二的 python 的 48% (忽略了 html、css 和 sql 这些非常规语言)。考虑到它的起源,这已经是一份非常难以置信的成就。

 

brendan eich 在 1995 年为网景公司发明了这门语言,据说只用了 10 天。2018 年,在 dot.js 大会上说:“5 月,我苦干了 10 天,睡得很少。”2012 年,eichcomputer 的 charles severance:“我开始做…一种 html 的编程语言,网页设计师和程序员可以使用,直接嵌入到网页中…不像 java 那样是一种专业语言,你可以运行带有类型声明的实际代码,你必须以编译的方式编写。”他补充说,“这个名字完全是随便取的。在语法上,它与 java 的关系并不大,而与共同的祖先 c 语言关系更大些。”

 

eich 还称这项工作是“一项紧急工作”,但他也说,“我知道会有错误,会有些缺失,所以我把它做成了一种具有可塑性的语言。这使得网页开发人员能够把它变成他们想要的样子。”

 

为什么 javascript 会如此成功?

 

那么由 eich 10 天匆忙赶出来的一门语言为何能流行至今呢?

 

其中的原因有很多,第一个原因就是 eich 的远见、易于学习和容忍在许多语言中可能出错的代码,比如将字符串与数字进行比较并得到一个常识性的结果——尽管 eich 后来“一个很大的遗憾,因为它破坏了一个重要的数学特征”。

 

另一个重要原因是谷歌决心让基于浏览器的应用程序与桌面竞争,这给世界带来了 v8 引擎(2008),再加上 mozilla 的 spidermonkey 和苹果的 javascript core,使语言具有惊人的 jit 编译性能。2009 年,ryan dahl 提出了 node.js,使 v8 能够在浏览器之外运行。dahl 考虑的是服务器应用程序,但今天在大多数 web 应用程序的开发过程中 node.js 和 npm(节点包管理器)也已经必不可少。

 

得益于上述原因,javascript 一路发展至今。不过 crockford 指出,随着性能的提高,javascript 已经变得非常复杂,今天一个典型的应用程序包括使用 webpack、rollup 或其他绑定器的构建过程,已经与 eich 最初的概念相去甚远。

 

此外,许多 web 开发人员不编写 javascript,而是编写 typescript,然后编译成 javascript。typescript 是由微软的 anders hejlsberg 发明的,它的出现是由于 javascript 的可延展性和缺乏类型安全。在上面提到的调查中,typescript 排名第三,这证明 javascript 也并不是受到了所有人的欢迎;webassembly 则是一种二进制格式,可以针对于包括 c、c 、c#和 rust 在内的多种语言,它的出现是可能削弱 javascript 主导地位的另一项创新。

 

“javascript 在短短几年内迅速流行起来,是的,这个生态系统非常复杂。这一直以来都是个大笑话,即便在全职 js 开发者中也显得如此疯狂,我们中没人能跟上。”一名开发者在 hacker news 谈到。

 

javascript 还在不断发展着许多新特性,我们可以跟踪其进展,尽管兼容性的要求意味着一些缺陷无法被纠正,但从另一方面讲,特性膨胀是一个持续存在的风险。

 

crockford 选择的替代 javascript 的 e 是一个例外。由 mark miller、crockford 和其他人创建的 e 是一种面向对象的语言,用于安全计算。用 crockford 的话说,它“消除了 java 中许多不好的部分”。

 

crockford 还指出,javascript 很难改变,特别是因为它是所有浏览器都支持的 dom(文档对象模型)操作语言。当被问及有什么可以取代它时,crockford 谈道:“有两个困难。第一,我们还没有下一种语言。它需要是一种专门为安全分布式编程而设计、基于最低限度能力的参与者语言。其次,我们需要所有的浏览器制造商都采用它,同时用一个设计良好的界面取代 dom。”

 

javascript 演变历史

 

行至现在,尽管 javascript 会面临诸多争议,但回顾演进过程,这门语言其实也是在曲折中不断前进。

 

1996 年,netscape 将 javascript 提交至 ecma international(european computer manufacturers association, 一个欧洲标准化组织)。

 

1997 年,ecmascript 标准第一版发布。ecma 组织控制的标准控制着 javascript 语言的各个方面,帮助确保不同 javascript 版本的相互兼容性,因此 javascript 有时也称为 ecmascript。

 

1999 年, ecmascript 第三版的形式进行了更新,从那之后这个标准没有发生过大的改动。由于委员会在语言特性的讨论上发生分歧,ecmascript 第四版遭遇“难产”并被废除,但随后于 2009 年 12 月发布的 ecmascript 第五版引入了第四版草案加入的许多特性。

 

2015 年,第六版标准(es6)发布,又称为 es2015。 es6 语法引入了大量的语法特性,很大程度上改善了最初 javascript 设计上的很多缺陷,让 javascript 这个语言获得了一次现代化的重生。自此 javascript 慢慢从一个被普遍鄙视、嘲笑的粗糙语言变成了一个颇有竞争力的语言。

 

之后,es 的标准更新开始加快了脚步,每年都有一个版本发布,只不过每次发布,加入的新特性比较少。今年 6 月份,,这也是 ecmascript 的第十三版。

 

参考链接:

 


 


2022-08-08 14:358923

评论 2 条评论

发布
支持……
个球。
js已经不是dc时代的那个js了。如果说ts出现之前js确实难堪重任,在现在有ts和一系列工具链帮助之下js/ts并不比其他主流语言差到哪去。
2022-08-28 02:50 · 美国
回复
支持,跟 java 没半毛钱关系的一门语言,居然活了这么久。
2022-08-10 11:12 · 广东
回复
没有更多了
  • 可以预见,react native 新架构将会给我们带来巨大惊喜。

    2022-03-28

  • 感谢一起走过的这段时间,辞旧迎新之际,希望你也能够在新的一年,通过javascript这门语言更好地拥抱不确定性。

    2022-12-29

  • 这一讲,我们会深入探究c 的语言设计哲学、核心范式,洞悉c 语言的未来。

    2023-03-15

  • redmonk公布了最新的编程语言排名,javascript排名第一,python和java分别排名第二、第三。

  • c语言、学习笔记

    2021-12-28

  • c 20及后续演进标准作为继c 11之后的又一次重大变革,给我们带来了面对以往难以解决问题的新思想、新工具。

    2023-01-16

  • 题目描述

    2022-09-26

  • 在编程项目中应该尽量减少复杂性。

  • c 之父 : 诞生40年来, c 生命力不减的秘密

  • 这门课的初衷,就是让学习javascript的你,能够对这个开始比较不那么“专业”的语言,有一个系统的专业理解。帮助你一步一个脚印,把点连成线,把线连成面,把面搭建起一座空间立体的“思维大厦”。

    2022-09-19

  • ===叫做严格相等,是指:左右两边不仅值要相等,类型也要相等,例如'1'===1的结果是false,因为一边是string,另一边是number。

    2022-05-25

  • 截至2022年,javascript目前是世界上最常用的语言。它被95%的网站使用,无论是小型初创公司还是大公司。他们中的一些人正在开发特定的网站或应用程序,需要对这种语言有很强的理解。

    2022-08-09

  • 翻译自《rust is the future of javascript infrastructure》,网址:rust is the future of javascript infrastructure – lee robinson

    2022-01-22

  • 双向通讯底层原理是什么?

    2022-11-01

  • 不知道大家有没有注意到,在我们应用构建的过程中,都有目标 es 版本这个选项,通常可以选择es3、es5、es6甚至最新的es10,但是却没有es4这个版本,这是怎么回事呢?

  • 较新的语言可以用更明确、更精准的方法解决问题,而旧有语言则面临大量相互矛盾的方法、甚至完全没有可行的解决路线。

  • typescript 作为 web 应用构建的主流语言,也曾艰难求生?typescript 之父就 typescript 的发展历程进行了分享。

  • javascript做一个识别图片中文字,再把文字转换成语言播放的效果。

    2021-04-04

  • 你猜~

  • 为什么还不去尝试 typescript 呢?

发现更多内容
金马国际
网站地图