JavaScript 大神:我们能对 JavaScript 做的最好事情就是让它退役!

 “我们今天可以对 JavaScript 做的最好的事情就是让它退役!”

大神总是能说出让人印象深刻的话,上面这句话来自 JSON 和 JSLint 的作者 Douglas Crockford。

b1e9e651afe1dbbe5595f75c7339f714.png

Douglas 还写过两本非常知名的书《How JavaScript Works》和《JavaScript 语言精粹》,前端的同学应该读过。

照理说,这么一位 JavaScript 领域的领军人物应该是 JS 的铁杆,但是他却说:

“20 年前,我是 JavaScript 的少数狂热支持者,嵌套函数和动态对象的组合非常出色,我花了 10 年时间试图纠正他的缺陷,在 ES5 上取得了小小的成功。

但是从那时起,人们对进一步扩展 JS 产生了浓厚的兴趣,而不是使其变得更好。 

所以 JavaScript 和其他恐龙语言一样,已经成为进步的阻碍,我们应该关注下一门语言,它看起来应该更像E而不是 JavaScript。”

JavaScript各种各样的问题大家应该深有体会了,但是今年 Stackoverflow 的调查显示,使用 JavaScript 的程序员高达 65%,远超其他语言,雄踞第一。

f6cde6ca4ad4d0c212f3cc6cab2f826b.png

可能很多人并不知道,JavaScript 是 Brendan Eich 仅仅花了 10 天突击出的语言,可以说是几门语言的混合体:

1.借鉴 C 的语法

2.借鉴 Java 的数据类型

3.借鉴 Scheme 语言,将函数提升到"第一等公民"(first class)的地位;

4.借鉴 Self 语言,使用基于原型(prototype)的继承机制。

所以 Douglas Crockford 说 JavaScript 是一个披着 C 语言外衣的 Lisp。

Brendan 自己也承认,这是一项匆忙的工作,设计有错误,有缺陷,尤其是名称,完全是谎言,和 Java 一点关系都没有。

JavaScript 为什么能成长为前端之王呢?

在 JavaScript 发展过程中其实遇到过很多挑战:

VBScript:在90年代,这是第一个同时支撑服务器端编程和浏览器端编程的语言,可以在服务器端写 ASP 网页,在浏览器端弄动态效果,微软阵营的程序员很喜欢。

但是它属于微软,只能跑在 Windows 和 IE 中,没有其他浏览器支持。

而 JavaScript 早在 1996 年就开始标准化,1997 年 ECMAScript 第一版就发布了,标准化后浏览器厂商抛弃了后顾之忧,放心使用。

JScript :在 IE 和网景大战时,微软对 Navigator 解释器进行了逆向工程以创建自己的解释器,称为 JScript。

随着 IE 击败网景,市场占有率达到 95%,JScript 也达到巅峰。

但是微软并没有把 JScript 给标准化,随后 IE 不思进取,故步自封,被 Firefox, Chrome 等超越,JScript 也变得无人问津。

Sun的Applet 和微软的 ActiveX:它们俩由于安全问题、安装部署问题、用户体验问题一直没能起飞。 

Macromedia 的 Flash :早期极其火爆,技术漏洞多,不安全,无法支持移动设备,最终败给了 JS+HTML5

微软的 Silverlight:本来是要和 Flash 竞争的,后来 Flash 都不行了,所以....

除了技术缺陷,这些挑战者技术都是厂商锁定的,都需要学习一门新语言,Applet、Flash、Sliverlight 还需要在浏览器中安装个“插件”才能运行,这就太不方便了!

反观 JavaScript,一开始就标准化,被所有浏览器支持。虽然是披着 C 语言外衣的 Lisp,但是它的C语言外衣极其简单,任何程序员都可以轻松写几行 JavaScript,在浏览器中搞点儿动态效果(虽然代码质量可能不咋地)。

2008 年,Google 给 JavaScript 添的那把柴火非常关键。 

GMail , GMap 等复杂 Web 应用的不断成功,让 Google 看到了 Web 应用和桌面竞争的可能性,它开发了 V8 引擎,惊人地提升了 JavaScript 的执行速度。

2009 年,Ryan Dahl 推出了 Node.js,使 V8 能够在浏览器之外运行,JavaScript 一下子把领地拓展到了后端领域。

JavaScript 自身似乎并不努力,但是各个厂商必须要寻找一个公共的、不会被某家控制的浏览器端编程语言,找来找去,也就是标准化的 JavaScript 能满足要求了。

JavaScript 真的应该退役了吗?

精通 JavaScript 的大神虽然都发出了呼吁,但是 JavaScript 无法退役,它还要在多条道路上继续狂奔。

在软件业,最厉害的就是生态系统,这玩意儿一旦建立,很难攻破。

JavaScript 经过 20 多年的发展,生态已经极其完善了。

强如微软的 TypeScript,也只能把自己最后编译成 JavaScript 来执行,而不能另起炉灶。

浏览器厂商之间也会互相竞争,阻挠某一方发明的更好的新语言。

Stackoverflow联合创始人Jeff Atwood 曾经预言:任何可以用  JavaScript 来写的应用,最终都将用 JavaScript 来写。

在某种程度上,他确实是对的,JavaScript 现在可以写网页,写 App,写小程序,写后端,写桌面程序,甚至 IoT 应用。

我们都知道 JavaScript 还很丑陋,但是没办法,只要浏览器存在,它就会存在,直到下一次重大技术变革的发生。

参考资料:

https://www.reddit.com/r/programming/comments/whipmk/the_best_thing_we_can_do_today_to_javascript_is/

https://devclass.com/2022/08/04/retire_javascript_says-json-creator-douglas-crockford/

https://evrone.com/douglas-crockford-interview

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值