R&B 我们今天要讲的R&B是Reason&BuckleScript。 What is reason? Reason简单理解就是用一个比较接近JS的语法去解OCaml语言。 What is BuckleScript? BuckleScript就是把OCaml编译到JS的一个编译器。 What is R&B? R&B实际上就是以近JS语法写OCaml程序并编译到JS。 Why BuckleScript? 在BuckleScript之前也有其它的编译器可以把OCaml编译到JavaScript,而BuckleScript的出现有几个因素。 第一个就是BuckleScript的性能非常强大,在所有编译到JS的编译器中,BuckleScript有可能是最快的。这就是它的“快速编译”。 FFI是语言的外部接口,就是JS和OCaml怎样相互调用,这一点BuckleScript做得也是比较好的。 还有一点就是它生成的代码可读性非常高,意味着能更容易去debug它。
BuckleScript BuckleScript是基于OCaml实现的服务端框架,由著名的Bloomberg团队创造而来。 Duane Johnson对他们的解释如下: BuckleScript或者bsc,是个基于OCaml编译器的相对较新的JavaScript服务端框架。 我们来简要的看下BuckleScript代码风格,譬如用BuckleScript实现简单的服务端: let port = 3000 let hostname = "127.0.0.1" for(var j = 0; j < count; ++j) { m.get(j); } } test(); 性能评测下,二者的执行时间对比为: BuckleScript : 1186ms JavaScript: 3415ms 编译后的体积为: BuckleScript (production): 899 Bytes JavaScript: 55.3K Bytes ReasonML
上午最后一场分享的讲师是张宏波老师,他分析的题目是《BuckleScript: large scale JS programming - the next step after Typescript》。 讲解的主题是BuckleScript,有种和TypeScript针锋相对的感觉呢,说实话,这场分享小编听得有些似懂非懂,还是掌握的知识太少了。 不过能感到BuckleScript确实是一个非常牛的东西,编译速度,代码稳定性等方面也非常不错,大家可以去看看张宏波老师一年前写的文章架构最快最好的To JS编译器进一步了解。
make-world", "start": "bsb -make-world -w", "clean": "bsb -clean-world" }, "keywords": [ "BuckleScript Js.log("Hello, BuckleScript and Reason!") // Generated by BUCKLESCRIPT VERSION 4.0.18, PLEASE EDIT WITH CARE 'use strict'; console.log("Hello , BuckleScript and Reason!")
大会共邀请国内外讲师16名,包括W3C的全球项目负责人Philippe先生、Google开发者平台工程师Michael Yeung、微软TypeScript专家Limin zhu以及编译器专家buckleScript
Reason/BuckleScript and OCaml stdlib uses this style as well: let examplemap = t_empty(false) |.
在彭博期间,他创建了 BuckleScript 编译器,将 OCaml 编译成 JavaScript。 [编者按:BuckleScript 已更名为 ReScript 编译器。]
如果想在复杂场景深入使用 immutable,可以看看这个 Reason + BuckleScript bindings to Immutable.js。
值得一提的是,张宏波本人不仅为多种编程语言做出了贡献,包括 OCaml、ReScript(原 ReasonML/BuckleScript)和 Flow,还曾是 Rescript 语言工具链几乎所有关键组件的作者
语言层面的转换,TypeScript、Flow、CoffeeScript 等,以及使用者不再一定是狭义上前端开发者的语言,如张宏波老师的 ReScript(原 BuckleScript)、Dart 等。