文档章节

javascript统一世界?

卢勇福
 卢勇福
发布于 2015/03/28 11:49
字数 1406
阅读 1169
收藏 61

到微信关注我 今天facebook将react native框架的源码开源,瞬间火得一塌糊涂,目前github上的star已经快7000了。javascript作为这个框架的开发使用语言又一次出现在人们面前。这几年javascript这们神奇的语言现在已经被使用到软件开发的方方面面,让人感觉javascript都快统一世界了。今天这篇文章就看看用javascript究竟都能干些什么。

1.web开发

javascript是1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成,所以javascript可以说是为web而生。而在web开发上,javascript也一直在进步。先是jquery成为大众基础库,然后又有extjs这种重型武器。随着js越来越庞大,requirejs,seajs等模块加载器出现 。这两年mvvm概念兴起,各种框架也是满天飞,angularjs,reactjs,polymer等框架也是频频出来,很多前端程序员都无所适从,不知道该用什么了。

2.服务器端开发

除了镇守住web这个阵地以外,javascript也积极的在服务器端拓展阵营。2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库,从此nodejs一发不可收拾的火了起来。以前只在浏览器里运行的javascript可以在服务器端运行了,并且有望跟java,php的语言进行竞争分一杯羹了。并且还诞生了“全栈”这么一个牛叉的名词,虽然这个词后来慢慢有点贬义的味道。nodejs的出现也诞生了很多基于javascript(nodejs)的后端框架的诞生,其中最重要的要数express。当然nodejs基于回调的异步实现也给编程习惯带来了很大问题,于是也催生了很多解决异步回调的js框架,甚至还有fiberjs这样抛弃nodejs重新写过的开源框架。不管怎么样javascript也算是在服务器端占有一席之地了。读到这里你就能明白下面这个文化衫的内涵了:)

在此输入图片描述

3. 桌面native应用

web程序有很多好处,但是为了安全,浏览器对web的权限做了多限制,基本上web程序是很难访问本机的东西的。但是web开发相对简单,于是很多人又想到能不能用javascript来编写桌面程序呢?答案当然是能,居于这个需求也衍生了很多相应的框架: node-webkit(https://github.com/rogerwang/node-webkit): Node-Webkit是NodeJS与WebKit技术的融合,提供一个跨Windows、Linux平台的客户端应用开发的底层框架,利用流行的Web技术(Node.JS,JavaScript,HTML5)来编写应用程序的平台。应用程序开发人员可以轻松的利用Web技术来实现各种应用程序。Node-Webkit性能和特色已经让它成为当今世界领先的Web技术应用程序平台 heX (https://github.com/netease-youdao/hex): heX 是网易有道搜索部门开发的一个允许你采用前端技术(HTML,CSS,JavaScript)开发桌面应用软件的跨平台解决方案,基于HTML5 + node.js,类似appjs。是你开发桌面应用的一种新的选择,意在解决传统桌面应用开发中繁琐的UI和交互开发工作,使其变的简单而高效。特别适合重UI,重交互的桌面应用软件 nativescript(http://www.telerik.com/nativescript) NativeScript是一款使用JavaScript语言来构建跨平台原生移动应用的开源框架,支持iOS、Android和Windows Phone。且NativeScript的使用没有过多繁杂的要求,只需使用自己已经掌握的JavaScript和CSS技能就能开发出真正具有原生用户体验的移动应用

Titanium

Titanium 是一个快速的应用程序开发平台,它使用 HTML、JavaScript 和 CSS(针对初学者)开发桌面和移动应用程序。该框架也支持使用 Python、Ruby 和 PHP,它们跟前端技术一起,让您能够使用所有您熟悉的能够用来创建应用程序的技术

4.移动开发

随着智能手机的发展,html5发挥着越来越多的作用。先是模拟原生app的spa单页应用的兴起,接着是phonegap这种直接把javascript,html,css打包到原生应用的框架出现。但是html5的性能始终被人们诟病,为了解决这个问题有出现了用javascript调用来调用native程序提高体验的框架,这里说2个比较典型的框架。一个是cocos2d-js,cocos2d-js是触控科技的cocos2d-x的JavaScript版本,真正跨全平台的游戏引擎,采用原生JavaScript语言,可发布到包括Web平台,iOS,Android,Windows Phone8,Mac,Windows等平台。另一个就是今天开源的react native框架。

我们可以看到javascript已经在各个方向拓展,能力也越来越强,不过标题也有所标题党了,语言毕竟只是语言,大家更多的还是要了解技术本身:) 最后上一张github人们语言趋势图:

在此输入图片描述

长按下面二维码图片选择“识别图中二维码”关注帝都码仔公众号: 在此输入图片描述

© 著作权归作者所有

共有 人打赏支持
卢勇福

卢勇福

粉丝 42
博文 19
码字总数 22106
作品 10
海淀
高级程序员
私信 提问
我为什么推荐Prettier来统一代码风格

译者按: 关于代码风格,不同的人有不同的偏好,其实并没有什么绝对的对错。但是,有2条原则应该是对的: 少数服从多数;用工具统一风格。 原文: Why robots should format our code for us ...

Fundebug
2017/10/25
0
0
我为什么推荐Prettier来统一代码风格

译者按: 关于代码风格,不同的人有不同的偏好,其实并没有什么绝对的对错。但是,有2条原则应该是对的: 少数服从多数;用工具统一风格。 原文: Why robots should format our code for us ...

Fundebug
2017/10/25
0
0
系统为什么是树形?与宇宙的统一。

Anycmd为访问受控的托管资源记录添加了AcContentType和AcContent字段。 AcContentType字段取值形如: text/javascript text/xacml text/javascript,fileLocation text/xacml,fileLocation 当......

anycmd
2015/01/07
1K
6
在 Node 的帮助下,横跨多平台的 JavaScript 已经赢了

编者按:很多人都在寻找一个能够统一编程语言江湖的“老大哥”,战火也重来没有停止过。Jonny Asmar在hackernoon上发表了一篇文章指出,因为Node的存在,JavaScript具备了多功能性,已经有了...

达尔文
2018/01/13
2.7K
24
用于学习编程和 AI 的教学游戏 - WarriorJS

WarriorJS 是一个采用 JavaScript 开发的教学类游戏,用于学习 JavaScript 编程和人工智能。 简单地说,WarriorJS 是一个需要靠编写 JS 来玩的小游戏,启动后你需要不断攀爬 JS 世界,最终爬...

匿名
2015/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

什么时候使用字节流、什么时候使用字符流,二者的区别

在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。 InputStream 和OutputStream,...

watermelon11
40分钟前
4
0
Alpakka Kafka,反应式Kafka客户端

Alpakka Kafka 是一个要用于 Java 和 Scala 语言的开源的流感知和反应式集成数据线项目。它建立在 Akka Stream之上,提供了 DSL 来支持反应式和流式编程,内置回压功能。Akka Streams 是 Re...

羊八井
今天
4
0
PHP7源码编译安装详解

$ yum groupinstall "development tools"$ yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype \freetype-devel libpng libpng-devel libxml2 ......

问题终结者
今天
5
0
Django学习笔记-从创建虚拟环境到启用服务

1 前置条件 windows系统下,目前已经完成anaconda3或miniconda3的安装,这也意味着已经完成了python3的安装。 2 创建虚拟环境 1、通过Anaconda Prompt,使用conda命令创建虚拟环境(base) e...

davidwbnu
昨天
4
0
python学习04:函数的定义及基本使用

python可以像c++一样,可以直接定义函数。具体格式如下: def(关键字) 函数名(形参01,形参02...): do_something... #如果有返回值,则调用以下语句 return 返回值...

太空堡垒
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部