2017值得一瞥的值得一瞥的JavaScript相关技术趋势相关技术趋势
2017值得一瞥的JavaScript相关技术趋势从属于笔者的Web 前端入门与工程实践,推荐阅读2016-我的前端之路:工具化
与工程化获得更多关于2016年前端总结。本文主要内容翻译自,笔者对于每个条目进行了些许完善。
本文中提及的这些趋势可能离大部分开发者还很远,或者说离真正的大规模工程化应用还很远,不过不妨碍我们提前两三
年了解下。本文仅代表原作者个人看法,不喜留言轻喷,译者也很好奇大家对这个列表的看法。
跨年前两天,Dan Abramov在Twitter上提了一个问题:
JS社区毫不犹豫的抛出了它们对于新技术的预期与期待,本文内容也是总结自Twitter的回复,按照流行度降序排列。有
一个尚未确定的小点是既然函数式编程已不再是少数派,是否要把它踢出红毯呢?
WebAssembly
去年笔者表示过了对于WebAssembly的期待,WebAssembly是面向Web平台的底层代码。其初衷是希望能够使所有语言
都能够编译运行到Web平台,这一点对于很多函数式编程、响应式编程的粉丝充满吸引力。特别是随着这几年JavaScript社区
的突飞猛进,很多开发者并不能跟得上这门语言衍化的速度,因此他们也非常希望能够直接用自己习惯的语言而不是要去重头
学一门从入门到直接放弃的语言。不过JavaScript目前还处于明显的上升势头,暂时还没人唱衰它。并且WebAssembly仍处
于襁褓中,才进入到预览阶段,离真正的发布还有很长的距离。总结而言,笔者建议我们都应该对WebAssembly保持一定的
关注,毕竟它会对未来的JavaScript造成极大的影响。如果你对于WebAssembly有兴趣,那么推荐阅读Eric Elliott的相关博
客。
Elm
笔者个人不太意愿使用Elm,不过其特性还是很有借鉴价值
2016年不少的开发者参与到Elm的开发中,Elm不仅仅是JavaScript的扩展库,而是一门可以编译到JavaScript的编程语
言,对于很多热衷于函数式编程的开发者是个不错的选择。参考Elm 入门介绍,Elm提供了如下特性:
· 并不会存在运行时错误,没有null,没有undefined is not a funtion。
· 非常友好的错误提示信息能够辅助你开发。
· 比较严格的代码规范与项目架构,保证了你的应用在快速迭代中依然保持着佳实践。
· 自动为所有的Elm包添加语义版本描述。
总而言之,Elm为我们提供了的工具来保证编写干净、简单与碎片化的代码,并且因为Elm是可以编译到JavaScript,因
此很多JavaScript开发者都可以保持下关注或者尝试下。
babili(babel-minify)
Babili早于2016年8月份发布,它是基于Babel工具链上的支持原生ES6语法的压缩工具。Henry Zhu在这篇文章中称述了
为什么我们需要另一个压缩工具,关键点如下:
目前大部分压缩工具只能
够处理ES5代码,因此在压缩之前需要先进性编译,而Babili能够支持直接输入ES2015+。随着浏览器性能的提升,越来
越多的浏览器支持直接运行ES2015的代码,因此我们不需要再进行转换编译。另外Babili也可以作为Babel preset引入到现有
的Babel配置中,也可以作为直接使用的命令行工具。
这里举个简单的例子,我们编写了如下的ES6类:
class Mangler {
constructor(program) {
this.program = program;
}