ibegyourpardon
2021-07-29 09:57:02 +08:00
ts 不是只有好处没有坏处的。
一个是很多人提到的场景问题,前端开发中会存在着大量的月抛甚至周抛型任务,但这类任务中又有相当一部分需要从头开始开发,本身也不复杂,使用弱类型语言一把出货,又快又好,这种情况下上 ts 反而是徒增心智负担。
第二个,原因,是我个人感受。不知道有没有人和我持类似的想法,但这个可能没法解决。ts 里有一些优秀的特性我觉得应该是进入 js 里面去的,但 js 既然保证了对历史版本的兼容,意味着基本做不到了。ts 永远只能是一个方言的形式存在。
最后跑起来的还是 js,意味着,ts 是一个从开发层面实现了更友好支持的方言,但最终跑起来的运行时优化,是和 ts 本身没多大关系的。
这很像 python 里现在的类型提示,很大程度上可以借助 IDE 或者某些类库实现友好的提示,帮你写出更好的代码,但跑起来后还是一套动态一起上。
而真正的强类型,编译语言,是可以在运行时上做到针对性的优化的。这事,注定是 ts 的短板。
所以 ts 的场景,我们可以大概认为,它应该是主要面向开发这层做优化,更方便协作,能写出更工程化的东西。
但这样的事,我更觉得,应该让原生 js 增加这些 feature 才对。
ts 应该进入 js 。
但回头看看 js 这边的一些新提案,再看看 python 那边花里胡哨的一些提案……唔,感觉官方们都还集中在语言本身的 feature 改动上,而对工程化的支持,似乎都是社区在自行推进周边的支持。
目前看来最舒服的居然是 go …… 不挑刺,我知道 go 的问题和不爽,但总的来说,在工程化,效率,性能,语法上,我觉得当前阶段是一个蛮舒服的结合点的。