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

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

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

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

图片

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

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

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

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

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

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

图片

可能很多人并不知道,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​

责任编辑:武晓燕 来源: 码农翻身
相关推荐

2015-06-02 14:10:23

创业事情优先级

2021-03-16 14:49:36

大数据手机隐私

2012-03-23 14:38:31

JavaScript

2018-11-08 15:30:04

JavaScriptES6异步

2016-02-19 16:11:54

数据科学家数据科学大数据

2022-01-24 14:28:41

RailsJavaScriptWebpack

2019-08-01 10:44:23

JavaScript框架内存

2016-08-10 12:52:31

2012-02-24 09:25:20

JavaScript

2011-05-19 09:10:17

JavaScriptLinux

2020-11-11 08:22:40

前端开发JavaScript

2014-06-25 09:15:33

JavaScript 编辑器

2011-06-27 08:35:28

2023-10-10 16:20:38

JavaScript代码技巧

2009-07-10 17:15:13

Javascript

2011-05-27 17:06:11

SEO

2021-09-06 08:26:08

JavaScript数独 LeetCode

2021-06-17 07:45:35

Javascript 技巧效率

2010-03-15 14:01:26

JavaScript

2020-11-23 06:59:21

JavaScript雪花算法
点赞
收藏

51CTO技术栈公众号