专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
51好读  ›  专栏  ›  程序员大咖

2017值得一瞥的JavaScript相关技术趋势

程序员大咖  · 公众号  · 程序员  · 2017-02-21 19:00

正文

请到「今天看啥」查看全文



Babili最早于2016年8月份发布,它是基于Babel工具链上的支持原生ES6语法的压缩工具。Henry Zhu在这篇文章中称述了为什么我们需要另一个压缩工具,关键点如下:
目前大部分压缩工具只能

够处理ES5代码,因此在压缩之前需要先进性编译,而Babili能够支持直接输入ES2015+。随着浏览器性能的提升,越来越多的浏览器支持直接运行ES2015的代码,因此我们不需要再进行转换编译。另外Babili也可以作为Babel preset引入到现有的Babel配置中,也可以作为直接使用的命令行工具。


这里举个简单的例子,我们编写了如下的ES6类:

class Mangler {   
   constructor(program) {   
     this.program = program;   
   }   
 }   
 // need this since otherwise Mangler isn't used   
 new Mangler();

之前,利用传统的Babel进行编译与压缩,会得到如下代码:

// ES2015 code -> Babel -> Uglify/Babili -> Minified ES5 Code   
 var a=function a(b){_classCallCheck(this,a),this.program=b};a();

而Babili的效果如下:

// ES2015 code -> Babili -> Minified ES2015 Code   
 class a{constructor(b){this.program=b}}new a;

OCaml


OCaml本身和JS没啥关系,不过列表接下来的两项都是基于OCaml,因此还是要先介绍下。如果你关注了近两年来的函数式编程崛起之路,你或许听过Haskell。而得益于OCaml能够编译到就S,其以后来居上的姿态凌驾于Haskell。Facebook的不少开发者都是OCaml的粉丝,他们的Hack、Flow以及Infer都是基于OCaml构建的。


BuckleScript


BuckleScript是基于OCaml实现的服务端框架,由著名的Bloomberg团队创造而来。Duane Johnson对他们的解释如下:


BuckleScript或者bsc,是个基于OCaml编译器的相对较新的JavaScript服务端框架。换言之,你可以使用优秀的函数式、自带类型的OCaml语言,同时也能继续背靠基于npm包管理器的Web生态系统。


我们来简要的看下BuckleScript代码风格,譬如用BuckleScript实现简单的服务端:

let port = 3000   
 let hostname = "127.0.0.1"   
 let create_server http =   
   let server = http##createServer begin fun [@bs] req resp ->   
       resp##statusCode #= 200;   
       resp##setHeader "Content-Type" "text/plain";   
       resp##_end "Hello world\n"   
     end   
   in   
   server##listen port hostname begin fun [@bs] () ->   
     Js.log ("Server running at http://"






请到「今天看啥」查看全文