本文转自互联网!前端
首先很遗憾的一点是,“PHP虽然是最好的语言”,可是它不是最流行的语言。数据库
对不起的还有刚刚在4月TIOBE编程语言排行榜上榜的各个语言:编程
大家都很棒,可是大家都担当不了这个大任。浏览器
开始以前,我先说一下我经常使用的三个语言:Java、JavaScript、Python。架构
Java,让我学到了不少架构层级的知识,这一点能够参考我以前写的架构相关文档。虽然我一点儿也不喜欢这个语言,可是它真的很棒。框架
Python,它真的足够简单,以致于我喜欢拿它学习各类理论知识,如推荐系统、贝叶斯定理、天然语言处理等等。编程语言
JavaScript,看下文。编辑器
在过去我阅读的一些书籍里面,主要是以Processing做为可视化的语言——它起始于2001年,它最初是面向美术工做者和设计者建立的,后来变成了全面的设计和原型工具,能够用于建立复杂数据可视化领域。工具
Processing被带入了到Web领域产生了Processing.js,还出现了D3.js。性能
固然还有Plotly、Leaflet、Sigma JS等等的工具。
接着就是PhoneGap(今天的Cordova),将WebView带向了移动应用,也将JavaScript带向了移动应用。
使用Cordova,可让咱们一次开发多平台发布。咱们也顺便提一下Ionic,做为混合应用的翘楚:
既然咱们已经提到了Cordova,那么咱们也应该说说React Native。也是一次开发屡次运行:
虽然它的坑还有不少,可是仍是值得期待的。
正是V8的性能将JavaScript带到了一个新的高度,因而Node.js诞生了——前端、后台均可以用JavaScript,一个JavaScript的全栈时代。
Mongodb做为数据库,Express做为Server端MVC,他们能够提供一个RESTful服务,那么再加上MVVM框架的Angular.js,你就知道我在说什么。
NW.js 是基于 Chromium 和 Node.js 运行的,它们可让咱们用HTML和JavaScript来制做桌面应用。除了NW.js还有最近比较火的Electron,Atom编辑器的
与Cordova的多平台构建多版本不一样的是,Electron能够在一个平台上构建多个平台的应用。即咱们能够在Mac OS上打包出Linux和Windows上的应用,而不须要在Windows再编译一次。
带向了桌面端,让桌面和Web保持了一致。最成功的案例就是估值达30亿美圆的Slack:
So,若是你使用桌面端的Slack就会很卡~
还记得我写的那篇《一份代码构建移动、桌面、Web全平台应用》,在Eletcron上运行Ionic,就意味着无限的可能性。
能用Web开发的事情就用Web来完成就行了。
自从WebGL被带入浏览器的那一刻,就决定了这又是一个新的天地。
让咱们忘记编译、启动更新、外挂等等的问题,而且咱们还能够一次开发直接运行。
若是你看到过以前的那篇《JavaScript在VR世界的应用》,那么你就会对这个内容有更多的印象。
主要思想仍是经过WebView来渲染VR视角:
而且各浏览器产商各在推动WebVR 为虚拟现实设备显示提供支持。
虽然大部分的AR应用可能离咱们有点远,可是离咱们最近的就是Leap Motion——它能够利用手掌和手指动做来进行输入,但无需手部接触或者触摸。
同理于VR,读取传感器的数据,再将其手势交由浏览器端来处理。详细能够参考我以前写的:《Leap Motion JavaScript开发 手势控制基础篇》。
早先我看到了Arduino在编译的时候,以DSL的方式封装了API。而NodeMCU则内建了Lua语言的支持,可让开始者使用Lua来开始。 而Tessel 原生就提供了JavaScript运行环境,咱们写须要写好JavaScript就能够在上面运行。
Tessel 2属于配置比较高的硬件,而低配的呢?
三星设计了JerryScript引擎,它可以运行在小于64KB内存上,且所有代码可以存储在不足200KB的只读存储(ROM)上。
想一想就以为将来是美好的。
等等,上面三星推出的是IoT.js,这就意味着它已经能够在物联网领域中应用了,为何还会有这里的应用呢?我只是想稍微提一下这个:
上面说到的只是Node.js在Web中的应用,而物联网和Web的很大不一样之处在于,物联网可使用各类不一样的协议,而这些协议都须要Node.js对其的支持。
所以,若是咱们须要开始Web版、移动应用,那么咱们天然更须要其做为后台。
虽然更好的机器带来了更好的性能,可是显然人们对于原生应用的需求并无那么强烈。Firefox OS已经在移动操做系统败下阵来,可是这个操做被带到了物联网领域:
这就意味着,咱们可使用JavaScript来开发操做系统的界面了。
你以为JavaScript还能作什么?