BuckleScript 1.0发布,面向OCaml的开源JavaScript编译器

BuckleScript 1.0几乎完全兼容OCaml特性,同时改进了外部函数接口(FFI)以避免编写不安全的JavaScript存根。近日,InfoQ采访了BuckleScript作者张宏波。

\\

按照Bloomberg的说法,BuckleScript旨在通过以下几个方面,尝试解决用JavaScript构建的大型系统存在的问题:

\\\\
  • OCaml的工业级强类型安全 \\
  • 消除无效代码提升功能和模块级的性能,这要感谢成熟的OCaml类型系统 \\
  • 编译时优化,以提高运行时性能 \\
  • 支持JavaScript和本地平台\

与现有的其他JavaScript转译器比较,BuckleScript旨在提供更快的编译、可读和简洁的代码输出,保留和OCaml源码相同的模块结构。

\\

InfoQ采访了张宏波以了解更多BuckleScript的现在和未来。

\\

是什么原因促使BuckleScript从最初版本升级到1.0版本?

\\
\

主要是稳定的外部函数接口设计和bug修复。由于BuckleScript生成可读的JavaScript代码,JavaScript调用OCaml函数时不需要做太多的工作。我们已经花费了好几个月时间斟酌外部函数接口的设计,以方便用户从OCaml调用JavaScript。我们的目标是把OCaml这种表现类型系统(有一些BuckleScript定制的属性)的优势在不需要编写任何存根代码的前提下直接引入到JavaScript库模型。

\\

主要的亮点有:

\\
  1. \

    BuckleScript支持两种调用规范:uncurried(与JavaScript完全一样)和优化的curried调用规范(函数编程范式中使用)。

    \ \\
  2. \

    我们努力让JavaScript外部函数接口存在两种风格:一种是类似PureScript的功能性外部函数接口 ,另一种是对象外部函数接口,它采用OCmal表现对象类型系统实现。这允许我们严格模拟JavaScript结构类型。

    \ \\
  3. \

    我们还内置支持JavaScript this关键字的语义。

    \ \\
  4. OCaml中一些独特的特性,如用于模型事件监听器的多态变体(polymorphic variants)。相比TypeScript,这给我们提供了非常有力的类型安全保障。\

大家可以在我们产品见面会的介绍上找到更多BuckleScript外部函数接口的详细信息。

\
\\

你们最近正在努力的一个目标是整合Reason和BuckleScript。你能解释一下它是如何运作的吗?会给开发者带来什么好处呢?

\\
\

Reason是由Facebook Jordan团队开发的,它是为OCaml提供的JavaScript类前端语法。由于OCaml的编译工具链是非常模块化的,我们的前端很容易从OCaml转向Reason。要强调的是,Reason不仅仅是语法。Reason团队也在努力改善OCaml中的工具,像构建系统、IDE等。我们一起共同努力。比如,BuckleScript外部函数接口的设计得到了Reason团队很多反馈。

\
\\

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。\
\\

查看英文原文:Open-Source OCaml to JavaScript Compiler BuckleScript Hits 1.0

\\

感谢夏雪对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值