flintjs,主打Super Hot Reload

flintjs 将颠覆前端 UI 开发?

知乎 上 看到尤雨溪 针对 flintjs 的问答

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:尤雨溪
链接:http://www.zhihu.com/question/37234467/answer/71143805
来源:知乎

没想到还真有人问了。首先楼下什么『我也有能一个月内干掉 bat 的思路』,就一边歇着去吧。
人家这个不是思路,是已经做出来了。
创始人之一 Nick 是 20 under 20 的 Thiel Fellow,25 岁不到就卖掉了自己的第一个公司,恕我直言,人家这种执行力有一个思路和你有一个思路,不是一个层次。
我说它是个颠覆,并不是说这东西一出来就能在实际生产中取代 React Angular 之类的东西,
而是因为它代表了一种更先进的开发模式,而且可以预见将来不仅仅是前端开发,
而是所有的 UI 开发都会向这个模式发展。
【补充一段,这里一开始没讲清楚,Flint 作为一个框架也就是简化版的 React,但我觉得颠覆的主要是它提供的即时反馈的开发体验。】
Bret Victor 的演讲很多人都看过,但他的 demo 并不普适,他虽然自己能做出那样的 demo,
却并没有告诉我们如何提供一个普通人都可以使用的即时开发环境;LightTable 搞了那么久也没见几个人用,
感觉基本已经坑了;Swift Playground 已经做得很接近,但也只能用来做 prototyping。可以说 Flint 的颠覆性在于把这种实时反馈的开发模式第一次做到了和实际生产环境接轨。
Flint 的核心实际上是一套实时代码编译 + 热更新系统,也就是在你一边打字的时候就一边对你的代码进行实时编译(不需要存档,注意这个功能需要依赖 atom 编辑器插件,目前还没有公开),
保留应用当前状态,实时反馈,并且有完善的错误提示甚至类型检查。这是个什么概念,你不亲手用下可能体会不出来。
我看到有些人说 figwheel 已经实现啦,其实还是不一样。因为 Flint 直接利用编辑器插件,所以你打下每一个字母的时候它都知道。
借此 Flint 极大地优化了它的 parsing,直接在现有的 AST 局部进行修改,而不是对整个文件重新 parse。
大部分情况下,你按下一个字母,20ms 以内就会有反馈。想象一下,从手动 F5 到 auto reload 带来了开发体验的一个质的提升,
从 auto reload 到 hot reload (on save) 又是一个质的提升,从 hot reload on save 到 hot reload on type… 又是一个质的提升。
如果说几个月前看 Dan Abramov 的 hot-reload 演讲大家是被惊艳的话,看过 Nick 的实际 demo 后真的只能用震撼来形容。
它最后产出的代码是标准的可用于生产环境的 React 代码… 是否经受过工程检验是一回事(实际上 Flint 现在就有 FB Apple 的人作为 beta tester 在使用),
但你不能否认一旦这玩意儿成熟了,你不会再想用旧的模式去开发 UI。就算最后不是 Flint,
也一定会有另一个项目把这个模式发扬光大。一个 trivia: Flint 最早的版本是用 Haskell 写的,只是因为用 Haskell 的人太少了所以才用 js 重写(Elm 哭了)。

热评文章