- 主题:今天跟AI聊天得到的一个关于JavaScript和TypeScript的感悟
TypeScript是大企业病或者官僚主义强加在JavaScript上的产物,它没有解决技术问题,也没有解决管理问题,它只解决了管理需求满足的问题。
--
FROM 223.101.87.*
软件工程就是个玩笑,只是公司官僚主义的一种具体表现而已。
ts只是为了迎合这个需求而生。
【 在 shaolin 的大作中提到: 】
: 解决了工程化问题。
: ts的优缺点跟熟练度/个体都有关系。
:
--
FROM 223.101.87.*
20年前我就开始写js了
【 在 shaolin 的大作中提到: 】
: 你写过js/ts吗
:
--
FROM 223.101.87.*
主要是你无法在项目早期就确定最终的约束,除非你按照软件工程那套方法论来推进项目,但是这个又完全背离了JavaScript语言设计的初衷。如果你频繁调整约束,那到底是在约束什么?
【 在 buildtolast 的大作中提到: 】
: 没用过,但是现在不是都在加type吗?比如python。增加一些约束,在早期发现问题不好吗?我感觉主要是JS这玩意儿项目都不大,重构什么的需求不大,所以大家不喜欢TS,觉着成本划不来。
:
:
--
FROM 223.101.87.*
如果增加约束的机制同无约束的js代码兼容,也没那么招人烦,比如用注释的方式添加约束等等。
但现在的ts明显朝着田氏代齐的方向前进了,在ts工程里嵌入js代码有无处容身的感觉。
【 在 lvsoft 的大作中提到: 】
: 增加约束是好事,但Python的type annotation和ts这种都是在原来的基础上以向下兼容的形式做的。这种做法说明它们在哲学上选择了渐进演化,而不是creative destruction的路线,所以它在享受向下兼容既有生态的时候,必然要面对因此产生的各种麻烦。
: 加type约束对ai来说不是啥问题,但现实是让ai写ts代码,它也喜欢到处甩any。理论上ts开个strict也能杜绝,但这个就跟rust也可以到处写unsafe是一样的,并不是说语言层面你能不能做到,而是这个生态就决定了它是这种风格。
: :
--
FROM 223.101.87.*
别怪他们,他们可能就没见过js的好,只是人云亦云而已。
【 在 xeagle 的大作中提到: 】
: 你胆子好大啊,一个几乎要统治世界的语言被你这么贬低
: 发自「今日水木 on iOS」
--
FROM 223.101.87.*
我以前在本版发过类似观点:编程语言的约束是限制人类程序员犯低级错误的,经过训练的AI编程工具很容易规避这些低级错误,所以编程语言自带的约束必然走向末路,未来人类程序员可以用js之类的语言随心所欲的做一些创新性的代码编写,待POC验证完成后,产品化和工程类的苦力活让AI去搞就可以了,所以ts这类语言必然会走向末路,包括你现在喜爱的rust——你会用rust做产品原型开发吗?
【 在 lvsoft 的大作中提到: 】
: 约束之所以叫约束,那是因为它得有强制性。
: 没有强制性那就是过家家。
: Python type annotation好多年前就有了,到现在也没成气候,就是因为Python的type annotation就是你说的,近似于注释,加不加完全看心情。
: ...................
--
FROM 223.101.87.*
这就是我总结的跟chatgpt的讨论结果哈哈
【 在 gfkid 的大作中提到: 】
: 试试把你的帖子发给chatgpt,问问它,这段话说的对不对
--
FROM 223.101.87.*
AI编程必然带来编程范式的革新,我个人觉得未来将是人类编写原型验证代码(不需要考虑产品化和工程化)+AI完成产品化和工程化,而ts之类的语言是不适合做原型验证代码编写的,它的核心优势(如果有的话)只是为了迎合工程化需求。
【 在 gfkid 的大作中提到: 】
: 如果能自己决定用什么不用什么,确实挺好的。
: :
--
FROM 223.101.87.*
我理解你的顾虑,其实这跟大家津津乐道LLM的一些低级错误的情况类似。AI编程目前在高速发展阶段,顶级公司都在探索AI编程的上限,没有多少人关心AI编程的一些细节问题,尤其是这些问题很容易通过强化训练等方式解决的情况下。等到AI编程的上限被探索清楚了,业界就会将精力集中在解决诸如低级错误这类问题上,到那个时候你会发现这些类型错误根本不是问题了。
【 在 adamhj 的大作中提到: 】
: AI更容易犯低级错误,各种约束就是为了及早让AI发现出错了,编辑的时候报一个类型错误提醒,就比运行时才出错对AI来说更友好
:
--
FROM 223.101.87.*