其实,现在的体验已经没有一开始好了……
我是 18 年初开始玩的 Flutter,那会还是 alpha 版,开发体验爽得不行,爽主要体现在:
1. sdk 源码很简洁,结构很清晰,虽然有些 bug,但是很容易追源码,有问题的地方可以自己改
2. dart 语法简洁,多数场景下都有几乎唯一的写法,很少骚操作
3. 代码提示逆天,当时的 dartlang server 代码提示效果极好,多数情况下即使是没用过的组件和 api,单靠代码提示就能写得下去
而发展到现在,Flutter 确实修复了很多 bug, 增加了很多特性,生态和资料也多了很多,但是日常开发过程给我的体验反而是退步的,与上面逐一对比:
1. sdk 代码量膨胀,增加了很多组件,官方文档却跟不上,有时难以找到需要的组件,有些组件代码很混乱难以使用调试
2. dart 语法迭代,增加了不少新的语法糖,虽然确实在某些场景解决了一些问题,但也导致了一些情况下写法的不一致,增加了出错的概率和理解的难度
3. 目前 flutter 的代码提示几乎是废的……参考这个 issue [
https://github.com/dart-lang/sdk/issues/43657#issuecomment-724590463](
https://github.com/dart-lang/sdk/issues/43657#issuecomment-724590463) ,他们想实现"更好的"自动导包,所以对 dartlang 的 lsp server 进行了大改,结果破坏了原本的智能提示类型排名,现在提示出来的类型列表几乎总是无关的东西排在最上面,甚至连 String 这样的基本类型都要一个一个字母全部打完,提示都还在找各种包里所有包含 "string" 这个字符串的定义,可以说是非常难用了