文档章节

javascript统一世界?

卢勇福
 卢勇福
发布于 2015/03/28 11:49
字数 1406
阅读 1139
收藏 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人们语言趋势图:

在此输入图片描述

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

© 著作权归作者所有

共有 人打赏支持
卢勇福

卢勇福

粉丝 39
博文 19
码字总数 22106
作品 9
海淀
高级程序员
我为什么推荐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
[转贴]悟透JavaScript

看到一篇文章,写的还不错,可以参考: 引子 编程世界里只存在两种基本元素,一个是数据,一个是代码。编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。 数据天生就是文静...

穿越星辰
2010/05/13
0
0
[转贴]悟透JavaScript

看到一篇文章,写的还不错,可以参考: 引子 编程世界里只存在两种基本元素,一个是数据,一个是代码。编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。 数据天生就是文静...

inferrrrrr
2010/05/11
0
0
用于学习编程和 AI 的教学游戏 - WarriorJS

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

匿名
2015/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS三元运算示例

1. topFlag=topFlag ==0?1:0; 等于 if(topFlag=00){ topFlag=1; }else if(topFlag == 1){ topFlag=0; } 2. 5>3?alert('5大'):alert('3大'); 即 if(5>3){alert('5大')}else{alert('3大')}; 注......

森火
今天
0
0
利用Slf4j的MDC跟踪方法调用链

why? 一个web项目通常提供很多URL访问地址, 项目一般都是分层处理,例如Controller——>Service——>DAO。 如果想根据日志查看用户一次请求都走了哪些方法(多数是查错误)。 如果系统是多人...

杨春炼
今天
7
0
Maven介绍及安装

Maven介绍及安装 以下内容是本人早期学习时的笔记,可能比较详实繁琐,现在复习一下Maven,顺便将内容抛出来,供大家一起学习进步。 一、Maven简介 Maven是Apache旗下的一款项目管理工具,是...

星汉
今天
0
0
小程序Aes解密

主要步骤: 1、下载AES源码(JS版) 2、在小程序中新建一个公共的文件夹,把AES源码拷贝进去(注意:需要暴露接口 module.exports = CryptoJS;) 3、添加一个用于加密解密的公共JS,可取名为...

Mr_Tea伯奕
今天
0
0
Go实现文件传输(基本传输可用)

发送端 package mainimport ("fmt""os""net""io")func SendFile(path string, connect net.Conn){file, oerr :=os.Open(path)if oerr !=nil{fmt.Println("Open", oerr)......

CHONGCHEN
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部