- 主题:动态语言不写类型是不是自己给自己挖坑?
不写类型但事实是有类型,类型不对还不执行,typescript又补上了类型。
--
FROM 118.81.87.*
不算挖坑。
类型是客观事实,怎么设计语言系统都改不了。
动态类型是设计目标,进一步是为了降低开发难度。
所以最后自然会有矛盾之处,可以算是动态类型的代价。硬要说是坑的话,那也是早在设计之初就知道的明坑。
typescript加上了类型,但并没有强制。
python也可以标注类型,但也是不强制。
【 在 threebird 的大作中提到: 】
: 不写类型但事实是有类型,类型不对还不执行,typescript又补上了类型。
--
FROM 183.192.17.*
你都说动态类型了,为什么还要纠结类型不对呢。鸭子类型的脚本语言大多数用于写小型程序,一把梭,写类型降低开发速度,打断思路。工程化大规模开发的时候,python 可以标注类型使用专门的工具做静态分析也是不错的办法。
你非要静态类型的动态语言也有,其实就是 java. 现存的 java 程序大量使用了反射和运行时代码生成。内部还有专门的鸭子类型方法调用字节码。
typescript 的应用场景是 web 开发,摆一下控件显示数据是计算机领域最简单的事情,网页开发可以说是小学生都会的东东,折腾出那么多事情我看就是没事找事。现在的 typescript 类似于以前的 ejb 这种企业级理解早晚被扫入历史的垃圾堆。
【 在 threebird 的大作中提到: 】
: 不写类型但事实是有类型,类型不对还不执行,typescript又补上了类型。
--
修改:hgoldfish FROM 117.24.95.*
FROM 117.24.95.*
脚本语言不写类型的优势是,偶尔写个拿来跑一遍两遍的东西,类型不对也影响不大。另外搭原型项目的时候,也往往都是水平比较高的人放飞自我快速搞出来个东西给大家瞅瞅。这些情况下省掉类型实际上是划算的,因为最重要的需求就是快,其它都不重要
涉及到多人协作的时候,缺少类型保障的缺点就体现出来了。团队越大,效果越明显。缺少类型信息产生的低级 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.*
结论就是大多数人又懒又笨?
【 在 eGust 的大作中提到: 】
: 脚本语言不写类型的优势是,偶尔写个拿来跑一遍两遍的东西,类型不对也影响不大。另外搭原型项目的时候,也往往都是水平比较高的人放飞自我快速搞出来个东西给大家瞅瞅。这些情况下省掉类型实际上是划算的,因为最重要的需求就是快,其它都不重要
: 涉及到多人协作的时候,缺少类型保障的缺点就体现出来了。团队越大,效果越明显。缺少类型信息产生的低级 bug 所浪费的时间,迅速超过写类型消耗的时间。从成本上考虑,自然就是团队越大,类型信息越有必要。
: 天朝的环境比较特殊,可能意识不到。其实很多国家绝大多数公司也就3、5个码农而已,除了一两个刚入职的新人以外,大家水平都差不多。在这个规模下,类型产生的问题并不明显。好歹也得到了两位数,类型的作用才能体现的出来。
: ...................
--
FROM 120.244.200.*
虽然没看前面的长篇大论,但这个结论我表示赞同
【 在 Qlala 的大作中提到: 】
: 结论就是大多数人又懒又笨?
--
FROM 111.193.166.156
这个结论跟类型完全没关系啊。人不是机器,在类型上犯低级错误再正常不过了,再勤快再聪明也避免不了
【 在 Qlala 的大作中提到: 】
: 结论就是大多数人又懒又笨?
--
FROM 222.153.172.*
带红线的代码就提交 这不是又懒又笨么
【 在 eGust 的大作中提到: 】
: 这个结论跟类型完全没关系啊。人不是机器,在类型上犯低级错误再正常不过了,再勤快再聪明也避免不了
:
--
FROM 120.244.200.*
这个原因稍微有点儿复杂
一个是我们用 vue,需要装一个新的插件才能检查 template 里面的 ts 类型。如果没更新的话,应该是不会显示有红线的。
另外我们也在用 eslint,而且非 ts 部分的代码属于十多年前的代码,基本上整个屏幕都是红的。所以也许会有种误会就是不理红线也没关系,反正代码跑起来正常——也是因为我们用了 vite,在 dev 模式下不做类型检查,所以会产生代码没问题的错觉
【 在 Qlala 的大作中提到: 】
: 带红线的代码就提交 这不是又懒又笨么
--
FROM 222.153.172.*
不需要多人协作,时间长了,自己写的都看不懂了,“动态一时爽,重构火葬场”不是白说的。
【 在 eGust 的大作中提到: 】
: 脚本语言不写类型的优势是,偶尔写个拿来跑一遍两遍的东西,类型不对也影响不大。另外搭原型项目的时候,
--
FROM 115.171.61.*