当前位置: 首页 > 科技观察

JavaScript之神:我们能用JavaScript做的最好的事情就是让它退役!_0

时间:2023-03-13 15:31:52 科技观察

“今天我们可以用JavaScript做的最好的事情就是让它退休!”上帝总能说出令人印象深刻的话,上面这句话来自JSON和JSLint的作者DouglasCrockford。Douglas还写了两本非常有名的书《How JavaScript Works》和《JavaScript语言精粹》,前端同学应该看看。按理说,这样的JavaScript领域领军人物应该是硬核JS,但他说:“20年前,我是JavaScript为数不多的狂热支持者之一,嵌套函数和动态对象的结合非常好。我花了10年的时间试图纠正他的缺陷,并在ES5上取得了一些小的成功。但从那时起,人们对进一步扩展JS产生了很大的兴趣,而不是让它变得更好。所以JavaScript和其他恐龙语言已经成为一种进步的障碍,我们应该专注于下一种语言,它应该看起来更像E而不是JavaScript。”大家应该对JavaScript的各种问题都有深刻的了解,但今年的Stackoverflow调查显示,使用JavaScript的程序员高达65%,远超其他语言,位列第一。很多人可能不知道,JavaScript是BrendanEich用了短短10天时间开发出来的语言。可以说是几种语言的混合体:1.学习C的语法2.学习Java的数据类型3.学习Scheme语言,将功能提升到“一等公民”的地位(头等舱);4、借鉴Self语言,使用基于原型的继承机制。所以DouglasCrockford说JavaScript是披着C语言外衣的Lisp。Brendan自己承认,这是一项草率的工作,在设计上存在错误和缺陷,尤其是名称,这完全是个谎言,与Java无关。为什么JavaScript可以成长为前端之王?在JavaScript开发的过程中,我们其实遇到过很多挑战:VBScript:在1990年代,这是第一种同时支持服务器端编程和浏览器端编程的语言。效果,微软阵营的程序员都非常喜欢。但它属于微软,只能在Windows和IE中运行,没有其他浏览器支持。JavaScript早在1996年就已经标准化,1997年ECMAScript第一版发布,标准化后,浏览器厂商抛却后顾之忧,放心使用。JScript:在IE和Netscape之间的战争期间,Microsoft对Navigator解释器进行了逆向工程以创建他们自己的解释器,称为JScript。随着IE打败Netscape,其市场份额达到了95%,而JScript也达到了顶峰。但是微软并没有把JScript标准化,后来IE也不想进步,沾沾自喜。被Firefox、Chrome等超越,JScript变得无人问津。Sun的Applet和微软的ActiveX:由于安全问题、安装部署问题、用户体验问题,两者都未能起飞。Macromedia的Flash:早期极其流行,技术漏洞多,不安全,不能支持移动设备,最后输给了JS+HTML5。微软的Silverlight:本来是想和Flash竞争的,但是Flash已经没有了,所以……除了技术上的缺陷,这些挑战者的技术都被厂商锁定了,都需要学习一门新的语言。Applet、Flash、Silverlight也需要在浏览器中安装“插件”才能运行,太不方便了!相比之下,JavaScript从一开始就是标准化的,并受到所有浏览器的支持。虽然是披着C语言外衣的Lisp,但它的C语言外衣极其简单。任何程序员都可以轻松编写几行JavaScript来在浏览器中创建一些动态效果(尽管代码质量可能不太好)。2008年,谷歌给JavaScript加的柴火非常关键。GMail和GMap等复杂网络应用的不断成功让谷歌看到了网络应用与桌面竞争的可能性。它开发了V8引擎,极大地提高了JavaScript的执行速度。2009年,RyanDahl推出了Node.js,让V8可以在浏览器之外运行,JavaScript一下子将版图扩展到了后端领域。JavaScript本身似乎并不努力,但每个厂商都必须找到一种通用的浏览器端编程语言,不会被某个公司控制。看了一圈,标准化的JavaScript可以满足要求。JavaScript真的应该退休吗?虽然精通JavaScript的大神纷纷发出呼吁,但JavaScript不能退休,它还要继续跑在多条路上。在软件行业,最强大的就是生态系统。这东西一旦确立,就很难打破。经过20多年的发展,JavaScript的生态已经非常完善。和微软的TypeScript一样强大,它只能将自己编译成JavaScript来执行,而不能重塑自己。浏览器供应商也相互竞争,阻止一方发明更好的新语言。Stackoverflow联合创始人JeffAtwood曾预言:任何可以用JavaScript编写的应用程序最终都会用JavaScript编写。从某种程度上来说,他确实是对的,JavaScript现在可以写网页,写app,写小程序,写后端,写桌面程序,甚至物联网应用。我们都知道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