查看原文
其他

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

码农翻身刘欣 码农翻身 2022-10-21

“我们今天可以对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


点击下方图片,查看更多精彩




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存