js 是怎么逐渐的成为万能语言的 ?

最好js 用于web 页面交互,后来又出来好多js库,图片识别之类的,再后来又可以用node.js写后台,现在听说可以用js 写驱动程序了

我很好奇,js 执行时依赖js 引擎,比如图片识别,js连接数据库, 在引擎底层是不是还是调用C/C++的接口来实现这些功能,js 小白,还望不吝赐教

阅读 4.9k
1 个回答

JS是脚本语言,是弱资料型别,它会成为现今浏览器唯一支持的脚本语言是有历史背景。当然在之前并非能在浏览器上只有它一套脚本语言可以运行,但它很早已经是公开标准(ECMAScript)。标准这件事,是各大领导厂商的角力战,但公开后可以取得一些平衡,各大领导厂商必定各有算盘,但至少在基准的标准上,可以达到一致,小支小节就各自想办法。

JS语言会流行有很多原因,其一是它是与互联网相关,在这10多年来,互联网市场是一个顶峰,投入的开发者非常的多,只要是与互联网相关,在前端相关的应用,几乎只有这一个语言选择。领导厂商自然不论在新的工具或应用上,都想要分食这个庞大的开发者团体人口。另一是因为在开源码普及与交流快速的时代,自然也会衍生许多框架、函式库、辅助工具…十分蓬勃发展,这是其他语言所无法取代的开发人口数量优势,生态团具有加成的效果,十倍的使用者有可能创造的生态圈是数十倍或百倍以上的放大效用。而更多的使用人口也能吸引其他领域的开发者,愿意投身加入,造成大者愈大的趋势。

JS的执行过程是由代码,然后经由剖析器整理剖析,然后由引擎执行。现今出现了许多超集(superset)语言,例如TypeScript, CoffeeScript,以及一些完全重新设计,但可以编译为JS的像Elm、Dart语言。这相等于在剖析器前,又多了一个转译(transform)的过程,这种辅助工具,也有人称为编译器(compiler),不过它的功用在于提供另一种选择,把用另一种改良的语言,或重新设计的语言,先转换为JS的标准代码,再进行剖析与执行。

编译器的流行促使更多人加入,因为原本有很多开发者并不喜欢JS语言的许多特性,但这让他们可以使用接近偏好的语言的撰写方式,而不需担心最后执行的过程,另一个优点是可以取得现行浏览器版本与品牌的执行时最大相容性。举个例子来说,TypeScript完全改善了JS弱资料型别的特性,使它成为一个具有强资料型别的另一种语言,它的主要创造者是来自C#与Delphi团队。CoffeeScript则大量参考了Ruby, Python等语言,使它成为一种简洁,高可读的脚本语言,一般情况下只需要使用三分之一的代码长度,就可以达到同样JS代码的作用。这些改进或创新,在其他语言中是很难见到。

现在的编译器的流行,也促使能在现在使用未来尚在制定中标准,或刚制定好但尚未实作普及的语法,例如现在的ES6或ES7语法,这是其他语言无法相比的超快发展性。

JS引擎在这几年中也获得相当大的进步,Google虽是投入浏览器市场的后起,但它把V8引擎开源,并投入大量的人力发展,促使整个产业发展飞快。Node.js,也就是JS在伺服器端的执行环境,在这个背景下被实验性的实作出现,在开发人口如此多的社群下,自然能找到认同的开发者与支持者,当然,这里面有许多挑战,Node.js不同于浏览器环境,它需要使用许多C/C++的原生应用,沟通与交互来协助运作。当然,有很多功能是开源而且现成的,不一定要重造轮子。值得一提的是,Node.js与npm工具的流行,减短JS在开发上的开发周期,减少部署调试的复杂,提供良好的库相依性管理等等。

以上,提供一点心得供参考。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题