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


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

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


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在开发上的开发周期,减少部署调试的复杂,提供良好的库相依性管理等等。

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



相关阅读:
Python爬虫爬资源时由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。怎么破?
Markdown编辑器服务器处理最佳实践
html中有多个form标签,每一个form标签下对应一个submit,为什么未输入内容的form表单也会提交?
canvas背景不透明,但内部某元素透明(类似镂空效果)
php制作中英文两版网站比较方便的思路
使用iconfont在线使用时,出现多个空格,求解答
使用pjax的时候直接跳转到页面了,不能替换页面中的某个div
gdb都能调试什么类型的文件?
这种在App加载页面前的显示是什么技术或者框架?
boostrap-table可以接收string类型吗
访客能够通过猜测的方式伪造出一个正确的session id并进行不好的行为吗?
react中const {dispatch} = this.props;
tomcat配置问题
vue-router如何将接口返回的数据传给组件初始化
为什么我的程序跑的很慢?
刚入门PHP,是否有必要学习JAVA
JS prototype原型问题
关于移动端localstorage 手机浏览器无效果
PHP中的$_REQUEST和$_POST|$_GET有什么区别??
react这个错是什么意思,要怎么解决



快速导航

Copyright © 2016 phpStudy |