最流行的编程语言 JavaScript 能做什么?
此文转载oschina文章
首先很遗憾的一点是,“PHP虽然是最好的语言”,但是它不是最流行的语言。
同时对不起的还有刚刚在4月TIOBE编程语言排行榜上上榜的各个语言:
你们都很棒,但是你们都担当不了这个大任。
在开始之前,我先说一下我常用的三个语言:Java、JavaScript、Python。
Java,让我学到了很多架构层级的知识,这一点可以参考我之前写的架构相关文档。虽然我一点儿也不喜欢这个语言,但是它真的很棒。
Python,它真的足够简单,以至于我喜欢拿它学习各种理论知识,如推荐系统、贝叶斯定理、自然语言处理等等。
JavaScript,看下文。
数据可视化
在过去我阅读的一些书籍里面,主要是以Processing作为可视化的语言——它起始于2001年,它最初是面向美术工作者和设计者创建的,后来变成了全面的设计和原型工具,可以用于创建复杂数据可视化领域。
Processing被带入了到Web领域产生了Processing.js,还出现了D3.js。
当然还有Plotly、Leaflet、Sigma JS等等的工具。
移动端应用: Cordova
接着就是PhoneGap(今天的Cordova),将WebView带向了移动应用,也将JavaScript带向了移动应用。
使用Cordova,可以让我们一次开发多平台发布。我们也顺便提一下Ionic,作为混合应用的翘楚:
移动端应用: React Native
既然我们已经提到了Cordova,那么我们也应该说说React Native。也是一次开发多次运行:
虽然它的坑还有很多,但是还是值得期待的。
移动端平台: DeviceOne
既然我们已经提到了React Nativie,那么我们也应该说说DeviceOne。也是一次开发多次运行:
目前唯一一个使用javascript来实现原生跨平台的(android、ios、windows)。
服务端:Node.js
正是V8的性能将JavaScript带到了一个新的高度,于是Node.js诞生了——前端、后台都可以用JavaScript,一个JavaScript的全栈时代。
Mongodb作为数据库,Express作为Server端MVC,他们可以提供一个RESTful服务,那么再加上MVVM框架的Angular.js,你就知道我在说什么!
桌面应用: NW.js 和 Electron
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被带入浏览器的那一刻,就决定了这又是一个新的天地。
让我们忘记编译、启动更新、外挂等等的问题,并且我们还可以一次开发直接运行。
VR
如果你看到过之前的那篇《JavaScript在VR世界的应用》,那么你就会对这个内容有更多的印象。
主要思想还是通过WebView来渲染VR视角:
并且各浏览器产商各在推进WebVR 为虚拟现实设备显示提供支持。
AR
虽然大部分的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还能做什么?
来源:微信公众平台:phodal 作者@phodal
最流行的编程语言 JavaScript 能做什么?的更多相关文章
- 【转】最流行的编程语言JavaScript能做什么?
本文转自互联网! 首先很遗憾的一点是,“PHP虽然是最好的语言”,但是它不是最流行的语言. 对不起的还有刚刚在4月TIOBE编程语言排行榜上榜的各个语言: 你们都很棒,但是你们都担当不了这个大任. 开 ...
- 最流行的编程语言JavaScript能做什么?
本文转自互联网! 首先很遗憾的一点是,"PHP虽然是最好的语言",但是它不是最流行的语言. 对不起的还有刚刚在4月TIOBE编程语言排行榜上榜的各个语言: 你们都很棒,但是你们都担 ...
- Javascript能做什么 不能做什么。
JavaScript可以做什么?用JavaScript可以做很多事情,使网页更具交互性,给站点的用户提供更好,更令人兴奋的体验. JavaScript使你可以创建活跃的用户界面,当用户在页面间导航时向 ...
- javascript+dom 做javascript图片库
废话不多说 直接贴代码 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- TurnipBit—MicroPython开发板:从积木式编程语言开始学做小小创客
编程.建模.制作动画和游戏--这些当初我们默认只有成年人玩得转的事情,现在早已经被无数小孩子给颠覆甚至玩出新境界了.热爱科技和动手的"创客"(Maker)现在在全世界都炙手可热.今 ...
- 利用JavaScript的%做隔行换色
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
- JavaScript能做的事 是不是jQuery都能做>?
比如修改表单中的action 并实现跳转 问题是此时没有点击表单中的submit 提交按钮?
- JavaScript可以做嵌入式开发了
JS怎么可能搞嵌入式开发? TESSEL这个工具可直接在设备上运行JS,无需服务端支持. 百闻不如一见,请查看官网介绍吧:http://technical.io/ 网页内还有一个示例,点击会看到LED ...
- 【历史】JavaScript和Java没啥关系!————JavaScript简史
文章的开始先上张图: 图片拍摄自北京图书大厦,代表着现在国内应该是绝大部分书店的现状--Javascript书籍放在Java类当中.甚至很多业内人也一直认为Javascript是Java语言在浏览器内 ...
随机推荐
- Tomcat 9.0安装配置(转)
http://www.cnblogs.com/saratearing/p/5811866.html
- zeromq系列
ZeroMQ系列 之NetMQ 一:zeromq简介 二:NetMQ 请求响应模式 Request-Reply 三:NetMQ 发布订阅模式 Publisher-Subscriber 四:NetMQ ...
- curl使用简单介绍
http://www.linuxidc.com/Linux/2008-01/10891.htm Curl是Linux下一个很强大的http命令行工具,其功能十分强大. 二话不说,先从这里开始吧! $ ...
- Python 学习手册, char 14 - 15
Char 14 迭代器和解析器 可迭代的 : 支持iter的一个对象 迭代器 : iter 所返回的一个支持next(I)的对象 Python迭代工具会自动调用这些函数,我们也可以手动地应用迭代协议 ...
- Navicat备份远程Oracle数据库到本地
公司的数据库是本地的,我只能在公司连,回家就不能跑项目了,一跑就报SQLException,所以希望可以把数据库复制到我的本地来. 因为一直在用Navicat操作数据库,这里就分享一下用Navicat ...
- Linux mips64r2 PCI中断路由机制分析
Linux mips64r2 PCI中断路由机制分析 本文主要分析mips64r2 PCI设备中断路由原理和irq号分配实现方法,并尝试回答如下问题: PCI设备驱动中断注册(request_irq) ...
- 苹果手机微信上form表单提交的问题
场景:前端页面请求后端php,返回带form表单dom元素,然后将其追在页面上,返回的html字段中包含表单自动提交的代码,想法是将带有表单自动提交的dom元素追加到页面上,然后表单自动提交到另外一个 ...
- Shader实例:溶解效果(Dissolve)
效果: 图左:一道金光闪过,瞬间灰飞烟灭 图右:燃烧效果,先过渡到黄色,然后渐渐过渡到黑色,最后消失殆尽. 这是游戏中常见的效果,各位可以想想自己玩过的游戏. 手头正在玩的,梦三国手游,死亡的时候就是 ...
- swift-string(字符串的一些语法)
1 isEmpty 返回一个布尔值,确定该字符串是否为空 2 hasPrefix(prefix: String) 函数检查给定的参数字符串是否以 string 为前缀 3 hasSuffix(suff ...
- Windows下使用doxygen阅读和分析C/C++代码
Windows下使用doxygen阅读和分析C/C++代码 转自:http://blog.sina.com.cn/s/blog_63d902570100gwk6.html 虽然使用各种IDE或者Sou ...