@
sagnitude 前端现状很好,只是表面上而已,看看前端技术变化就知道前端有多么糟糕了。前端混乱是因为 JS 设计上有问题,而且各大浏览器标准不统一,当然引入新的技术、语言肯定会在一定程度上增加混乱程度,技术过渡嘛
@
YuJianrong JS 发展到现在已经成了浏览器端的汇编,看看现在基本上主流语言都有所谓的 transpiler 将自身编译成 JS ,然而事实上 JS 并不能胜任这个职位:第一这是一门高级语言;第二这门语言设计上有太多的坑;第三运行性能很成问题。既然 JS 本身不能胜任,为什么不让浏览器真正支持"汇编"呢。如果其它语言能无痛转成浏览器能执行的"汇编",也就没多大必要使用设计不好、用起来蛋疼的 JS 了。
TS 和 CS 转 JS 效果当然很不错,因为它们本身就是在 JS 基础之上构建的(ts/cs 编译器都是 js 写的),但是你用其它语言的 transpiler 就会知道以 JS 为目标语言是多么痛苦了,生成代码庞大,语言自身的一些特性被阉割。 ES 的确在不断演化,变得也越来越好用,然而现在大家不也都是需要将 ES6/ES7 编译到 ES5 才敢往线上放么。 JS 是一门很高级的语言,不适合作为汇编使用,只有出来一个低级底层一点的语言,其它语言才可以无痛 compile/transpile 到这个目标语言。
没记错的话 asm.js 只是 js 的一个子集,而且似乎并不是一个标准, mozilla 最先搞的,其它厂商并不一定买帐,而 webassembly 则是各大浏览器厂商共同制定标准。
有了 webassembly 这种格式,以前可能需要十几兆甚至更大的 JS 才能实现的功能,以后经过编译优化可能只需要几百 k ,性能也会有很大提升,所以以前写 JS 不敢想象的东西和功能,以后 webassembly 就变得现实。
说这么多其实我并不是前端,也没写过几行 JS ,上面只是基于个人的一些认识,至于未来是否就是 webassembly 统一前端也只有时间能说明了