- 主题:动态语言不写类型是不是自己给自己挖坑?
脚本语言不写类型的优势是,偶尔写个拿来跑一遍两遍的东西,类型不对也影响不大。另外搭原型项目的时候,也往往都是水平比较高的人放飞自我快速搞出来个东西给大家瞅瞅。这些情况下省掉类型实际上是划算的,因为最重要的需求就是快,其它都不重要
涉及到多人协作的时候,缺少类型保障的缺点就体现出来了。团队越大,效果越明显。缺少类型信息产生的低级 bug 所浪费的时间,迅速超过写类型消耗的时间。从成本上考虑,自然就是团队越大,类型信息越有必要。
天朝的环境比较特殊,可能意识不到。其实很多国家绝大多数公司也就3、5个码农而已,除了一两个刚入职的新人以外,大家水平都差不多。在这个规模下,类型产生的问题并不明显。好歹也得到了两位数,类型的作用才能体现的出来。
typescript 有一点儿特殊,那就是它的流行跟 vscode 是分不开的。毕竟 ts 是自家的语言,而且 vscode 本身又是用 ts 写的,包括 lsp 的设计基本上是量身定做的。什么插件都不用装,对 ts 直接完美支持。根据我的观察,虽然我们公司里绝大多数人都装了我列出来的 vscode 的插件,但几乎没有人真正研究过每个插件到底干嘛用的,到底应该怎么用。要是不给当面演示一遍,就是装上了而已,绝对不会主动研究怎么用。所以 rails 的开发环境基本上是没有统一的体验的,从来不看插件的报错信息或者不想着怎么解决,于是每次打开环境都报错,该有的自动提示从来就没有。在这点上 ts 一点儿问题都没有,我们公司里除了一个用 vim 的抱怨以外,其他人都觉得用起来没问题。虽然我还是不能理解,为啥还是会提交编译不过的代码,明明在 vscode 里应该都是红线的。
【 在 threebird 的大作中提到: 】
: 不写类型但事实是有类型,类型不对还不执行,typescript又补上了类型。
--
修改:eGust FROM 222.153.172.*
FROM 222.153.172.*
这个结论跟类型完全没关系啊。人不是机器,在类型上犯低级错误再正常不过了,再勤快再聪明也避免不了
【 在 Qlala 的大作中提到: 】
: 结论就是大多数人又懒又笨?
--
FROM 222.153.172.*
这个原因稍微有点儿复杂
一个是我们用 vue,需要装一个新的插件才能检查 template 里面的 ts 类型。如果没更新的话,应该是不会显示有红线的。
另外我们也在用 eslint,而且非 ts 部分的代码属于十多年前的代码,基本上整个屏幕都是红的。所以也许会有种误会就是不理红线也没关系,反正代码跑起来正常——也是因为我们用了 vite,在 dev 模式下不做类型检查,所以会产生代码没问题的错觉
【 在 Qlala 的大作中提到: 】
: 带红线的代码就提交 这不是又懒又笨么
--
FROM 222.153.172.*
这点我赞同,需要长期维护的代码,类型信息也会非常必要的。我自己的临时代码经常就放飞自我,隔上一个月再需要改的话,基本上都是折磨
【 在 GoGoRoger 的大作中提到: 】
: 不需要多人协作,时间长了,自己写的都看不懂了,“动态一时爽,重构火葬场”不是白说的。
--
FROM 222.153.172.*