前端之巅我爱编程

JavaScript无处不在,Bloomberg 开源Buckl

2016-09-20  本文已影响1171人  尾尾

作者: ** 张宏波**, 前OCaml编译器核心作者,现BuckleScript作者。

近日,Bloomberg 宣布其开源的 JavaScript 编译器 BuckleScript 到达了1.0 版本, 作为其作者,我很高兴向大家分享它的意义和功能。

诱人的JS平台

Bloomberg 早在04年就开始在服务器端使用 JS 了,现在 JS 已经是其内部使用最多的程序语言之一,有着丰富的大规模开发部署 JS 的经验。而在开源世界,随着几大IT巨头对 JS 引擎和工具的大力投入,以及 NodeJS 的兴起,这几年,JS已经成为工业界炙手可热的程序语言。

�不难发现现在的软件行业——从互联网行业到传统软件领域—— JS�平台,
这个唯一的跨平台语言正在吞噬着越来越多的软件领域(因为移动的崛起Java 已经不再是一个跨平台语言了):

然而 JS 作为一个只花了两周时间开发的动态语言是很难承载大规模,高性能开发的。它最主要的痛点有两个:

工业界需要更快更好的JS编译器

虽然JS平台很诱人,但是“动态语言难于构建大型程序”基本上已经是业界共识,一旦程序规模上来,维护起来基本上就是噩梦,在原来的Hack上添加新的Hack, 没有人敢修改原来的代码。

在BuckleScript之前,业界比较成熟的具有工业强度的JS替代语言主要是微软的TypeScript,那么BuckleScript相比TypeScript主要有哪些优点呢?我们可以从以下几点来分析:

compile speed

总之,与现有的其他JavaScript转译器比较,BuckleScript 旨在提供更快的编译速度, 更好的运行速度,可读和�更少的代码输出,以及最重要的和JS的互操作性。

BuckleScript 现状以及未来 以及和Reason的整合

BuckleScript已经被一些公司所采用,并且反馈很好,例如,下面是Facebook的程序员的评论:

I'm on the Facebook Reason team, and we're using BuckleScript to
compile OCaml into the best compiler output I've ever seen. People
didn't recognize that my React components were generated, not hand-written.

�评论中提到的Reason是由Facebook原React团队开发的,它是为 OCaml 提供的 JavaScript 类前端语法, 相当于给 OCaml 换了个壳,类似于 CoffeScript 对于 JS。

要强调的是, Reason 团队不仅仅在改进OCaml的语法,同时也在努力改善OCaml中的工具链,像构建系统、IDE等。我们之间有非常紧密的合作关系,BuckleScript外部函数接口的设计以及和JS的互操作得到了Reason团队很多反馈,希望将来能推出下一个版本的UI框架,这样有可能React Native 有可能真的跑在原生的后端上(OCaml 能在iOS平台编译出原生的汇编)。

BuckleScript未来的发展,我们制定了以下路线:

  1. BuckleScript把OCaml编译成JavaScript。所以,我们会跟进OCaml的最新发展,并升级到最新版本的编译器。最近OCaml中有很多令人兴奋的新特性,我们会从中受益。例如,Flambda的优化将会使我们的编译器更快。
  2. 我们将与其他的团队(Bloomberg内部的或外部的)合作,为BuckleScript提供更多的绑定(NodeJS、Electron和React)。
  3. BuckleScript的编译器也被编译成JavaScript,这意味着用户不仅可以在任意地方运行OCaml/Reason,同时也可以在任意地方写OCaml/Reason。我们将所有的东西都打包成一个JavaScript文件,用户可以快速上手不会遭遇JavaScript疲劳。同时,我们也将提高我们的playground,使之成为更好的Web IDE。
上一篇 下一篇

猜你喜欢

热点阅读