统治Web的JavaScript准备要接管桌面了

标签: 深度 | 发表时间:2016-05-14 14:09 | 作者:boxi
出处:http://36kr.com

编者按:曾几何时,通信网络曾经活跃过许多协议,那些协议在不同的场景下都有各自的优势。但是后来 TCP/IP 随着互联网的崛起而异军突起,最终形成一统天下的格局。而原本被视为不入流的 Web 前端玩具 JavaScript 现在似乎也在复制着类似的路径,先是渗透到 web 后端开发,然后甚至开始 入侵到桌面了。最流行语言 JavaScript 会变成编程界的世界语吗?

创建于 1995年 的 JavaScript 原本是想给苍白的网页在<blink>标记以外再增加一点生气的。但现在它的用处已经远远超出了当时的意图。像 Google、Facebook 这样的公司都用 JavaScript 来开发复杂的、类桌面的 web 应用;自从 2009年 推出了 Node.js 之后,它还成为了开发服务器端最受欢迎的语言之一(连续很多年雄踞 最受欢迎编程语言)。时至今日,甚至连 web 也容纳不下 JavaScript 的雄才大略了:现在,它正在开始向桌面应用进军。

Electron 是 GitHub 开发的一个软件开发平台,它可以让开发者用 JavaScript 加上 HTML、CSS 等 web 技术来创建跨平台(可运行于 Windows、Mac OS X 以及 Linux)运行的桌面应用。近日该公司刚刚发布了第一款完整版的 Eletron。但是业界的一些大拿早已用上这一工具来让 JavaScript 冲出浏览器了。

微软去年发布的一款代码编辑器 Visual Studio Code 就是用 Eletron 开发的。协作聊天工具的独角兽 Slack 的桌面客户端也是用 Eletron 开发的。初创企业 Nylas(以前的 Inbox)的整个邮件客户端都是用 Eletron 开发的。甚至 Brave 这家由 JavaScript 创造者 Brendan Eich 创建的公司也用 Electron 开发了一整个 web 浏览器。

为什么在开发桌面应用有无数选择的情况下那么多公司会选择 JavaScript 呢?不妨想想 JavaScript 在服务器端的崛起。Node.js 出来以前开发者也已经有了很多开发服务器端应用的利器了。但是由于开发者可以使用同一门语言来开发前端(浏览器)和后端(服务器),使得 JavaScript 变得非常流行。事实表明,在 web 上采用通用语是很有用的。而 JavaScript 的无所不在使得将它移植到桌面成为了自然之举。

面向每一个人开放

许多使用 Electron 的公司都在开发开源软件,也就是说,谁都可以查看和修改里面的代码。而理解你开放的代码的人越多,可以为其贡献 bug 修补和新功能的人就越多。通过利用 JavaScript,这些公司向了解 JavaScript 但不熟悉 C++ 等传统桌面编程语言的 web 开发者打开了一道大门。

比方说初创企业 Jibo 就用 Electron 来开发自己的机器人个人助理,因为这支团队希望第三方替自己的机器人写软件时可用更容易些。“我们希望把门槛降到尽可能的低,” Jobo 开发者 Jonathan Ross 说:“所以我们马上想到应该向游戏开发者和 web 开发者推销。”

这也是起初做 Electron 的一大原因。Electron 原先是做来给开发 Atom 当平台用的,后者是 GitHub 创建的一款文本编辑器。GitHub 联合创始人 Chris Wanstrath 说,他之所以用 JavaScript 来做文本编辑器是希望 web 开发者合适的时候能够对其进行定制。“我自己可以 hack 我的编辑器是一回事,” Wanstrath 说:“但是能够使用别人写的插件却要强大得多。”

当然,跑相当于 web 浏览器的应用也有不好的地方。“跑 Electron 应用的负载相当的大,” Nylas 的首席前端开发者 Ben Gotow 说。但是权衡之下还是值得的,因为 Electron 能做的不仅仅是提供使用一门流行语言的能力。用 JavaScript 创建桌面应用使得开发者可以选择海量的免费代码库和框架,免去了大量乏味枯燥的编码工作。比方说登录系统就不用再写了,网上有大量开源的身份验证库可供选择。

“我们仅用 1年 的时间就搞定了邮件客户端,那是相当惊人的了,” Gotow 说。

极客产物

用 web 技术开发桌面应用的想法并不新鲜。Adobe 的 AIR 系统就可以让开发者利用其 Flash 平台开发桌面应用,另一家小公司 Appcelerator(现在专注于移动 app 的开发)也曾经提供过利用 HTML 和 JavaScript 开发桌面应用的工具。最近又有一支开发者团队做出了 NW.js,也就是之前 Node Webkit。

但是到了 2014年 的时候,GitHub 团队发现所有的可用选择都没了,于是他们做了极客都会做的事情:自己写一个然后发布给全世界。“我们认为做出的好应用应该给大家一起用,” GitHub 产品 VP Kakul Srivastava 这样说。

GitHub Electron 团队的 JessicaLord 则说 Electron 要比之前的那些工具都要高效。Electron 捆绑了 Chromium(Google 浏览器 Chrome 的开源版),但是对其进行了瘦身。这使得该团队集成 Google 的新功能变得更加容易,因为这样每次 Chromium 发布新版时他们就不需要对每个部分都要进行测试来看看是否会导致 Electron 功能出问题了。

GitHub 的努力似乎收到了回报。从 2年 前推出项目至今,Electron 贡献者的数量已经超过了 300。其下载量也已经突破百万大关。但是竞争也日趋激烈。NW.js 还在不断改进,而 Facebook 也发布了自己的 JavaScript 框架 React Native,开发者可以使用后者来开发 Windows、Xbox 以及 Android 等各种平台的应用。

无论开发者最终决定使用哪种框架或者平台,显然 JavaScript 都已经在桌面找到了安身之所。对于用户来说,在线和离线之间的界限早就已经模糊了。现在对于代码来说也是一样的。

相关 [web javascript 桌面] 推荐:

统治Web的JavaScript准备要接管桌面了

- - 36氪
编者按:曾几何时,通信网络曾经活跃过许多协议,那些协议在不同的场景下都有各自的优势. 但是后来 TCP/IP 随着互联网的崛起而异军突起,最终形成一统天下的格局. 而原本被视为不入流的 Web 前端玩具 JavaScript 现在似乎也在复制着类似的路径,先是渗透到 web 后端开发,然后甚至开始 入侵到桌面了.

JavaScript之web通信

- - Web前端 - ITeye博客
浏览器作为 Web 应用的前台,自身的处理功能比较有限. 浏览器的发展需要客户端升级软件,同时由于客户端浏览器软件的多样性,在某种意义上,也影响了浏览器新技术的推广. 在 Web 应用中,浏览器的主要工作是发送请求、解析服务器返回的信息以不同的风格显示. AJAX 是浏览器技术发展的成果,通过在浏览器端发送异步请求,提高了单用户操作的响应性.

CDNJS:Web 上最快的 JavaScript 资源库

- - ITeye资讯频道
CDNJS 是一个互联网上的 JavaScript 资料库,类似 Google CDN 和微软CDN服务,但是速度比这二者更加快. CDNJS 上提供了众多 JavaScript 库,你可以直接在网页上引用这些 JS 文件,实现用户浏览网站的最佳速度体验. CDNJS 上提供的完整的 JavaScript 库列表请看: http://cdnjs.com/.

全 Javascript 的 Web 开发架构:MEAN

- - 开源中国社区最新新闻
最近在Angular社区的原型开发者间,一种全Javascript的开发架构MEAN正突然流行起来. 其首字母分别代表的是:(M)ongoDB——NoSQL的文档数据库,使用JSON风格来存储数据,甚至也是使用JS来进行sql查询;(E)xpress——基于Node的Web开发框架;(A)agular——JS的前端开发框架,提供了声明式的双向数据绑定;(N)ode——基于V8的运行时环境(JS语言开发),可以构建快速响应、可扩展的网络应用.

JavaScript是Web的汇编语言(一):语义Web已死!

- iVane - 为之漫笔
原文地址:JavaScript is Assembly Language for the Web: Sematic Markup is Dead. (更新)有些人认为“JavaScript是Web的汇编语言”完全是精神病说的话. 为此,我询问了几位JavaScript权威,比如Brendan Eich(JavaScript之父)、Douglas Crockford(JSON之父),还有Mike Shaver(Mozilla技术副总裁).

提高 web 应用性能之 JavaScript 性能调优

- 去北方-Jack - IBM developerWorks 中国 : 文档库
JavaScript 是一个比较完善的前端开发语言,在现今的 web 开发中应用非常广泛,尤其是对 Web 2.0 的应用. 随着 Web 2.0 越来越流行的今天,我们会发现:在我们的 web 应用项目中,会有大量的 JavaScript 代码,并且以后会越来越多. JavaScript 作为一个解释执行的语言,以及它的单线程机制,决定了性能问题是 JavaScript 的软肋,也是 web 软件工程师们在写 JavaScript 需要高度重视的一个问题,尤其是针对 Web 2.0 的应用.

10个顶级Web移动开发JavaScript框架

- Amo - HTML5研究小组
这些轻量级框架使用HTML5和CSS3标准来帮助您快速开发跨平台的Web移动应用和网站. jQuery Mobile这个框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面. jQuery Mobile不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架.

现代浏览器的web音频javascript类库 - Howler.js

- - CSDN博客Web前端推荐文章
日期:2013-2-6  来源: GBin1.com. 浏览器这个玩意儿并不是个新鲜事,但是随着HTML5的发展激起了浏览器技术的巨大发展. 但是浏览器上对于音频控制技术来说仍旧非常的落伍. 庆幸的是 Google积极的开发和创建了web audio API,这使得基于浏览器的音频控制更加的简单并且直观.

超越Web,Javascript在物联网的应用

- - JavaScript - Web前端 - ITeye博客
Patrick Catanzariti 是一名Web开发工程师,最近他在. sitepoint 发表了《 JavaScript Beyond the Web in 2014》,介绍了JavaScript在物联网中的应用,非常有意思. 做为JavaScript的爱好者和从业者,我在这里把它翻译了,以飨读者.

JavaScript是Web的汇编语言(二):疯狂,亦或只是精神错乱?

- MessyCS - 为之漫笔
原文地址:JavaScript is Assembly Language for the Web: Part 2 – Madness or just Insanity?. 有些人认为“JavaScript是Web的汇编语言”完全是精神病说的话. 为此,我询问了几位JavaScript权威,比如Brendan Eich(JavaScript之父)、Douglas Crockford(JSON之父),还有Mike Shaver(Mozilla技术副总裁).