我真的很反感有些人一边无脑吹捧 ai 编程,一边说手写代码是“古法编程”。
大语言模型确实是一项划时代的技术,它的技术边界也在不断的被突破,但是任何技术都是有边界的。 那些无脑吹捧 AI 编程的人,我很怀疑,他们是不是陷入一种“盲目的狂热”或者“拜 AI 教”。
一、编程的本质,计算机的范式(冯诺依曼架构)并没有发生改变。
有人将其类比为汇编到高级语言的进化,这是完全错误的。编程语言具备正交性,你的每次运行,结果是一致的。而大语言模型的结果是非正交性的,初始值的一点微小的改变,都会对结果产生巨大的影响。
编程和大语言模型在我看来,具有外在的相关性,但是本质上两者解决的是完全不同的两个问题,是求精确解和模糊解的的区别。
另外,现有的所谓代码生成,从本质上看,其实不过是将过去的 ctrl+c 、ctrl+v 自动化了,仍然是对现有解决方案的“复刻”。
二、从工程角度来看,ai 编程并没有降低开发的复杂度,而是从编码转移到了设计、验证等环节。
有人幻想,通过 ai 可以极大的降低软件开发的复杂度,这完全是幻想。
软件开发本质是对真实世界的投射和抽象,ai 编程可以降低一定的编码复杂度,但是它不可能降低真实世界的复杂度。
软件开发的真正复杂的地方也从来不是编码。
那些希望通过 ai 减轻码农负担的想法,终究是不现实的。别人花钱雇佣你,就是希望你来减轻复杂度的,如果你无法减少这种复杂度,或者有更廉价的方案,那别人雇佣你干什么呢?
当然,我不是建议大家不要学 ai,我反对的是那些只会简单的使用,却自鸣得意的。
我认为,应该从编写 agent 开始,真正的业务结合起来,而不是简单跑个页面,然后陷入一种虚假的自我满足。
1
JoeJoeJoe PRO |
2
shoushen OP @Tink @sillydaddy 麻烦移动一下,谢谢!
|
4
JoeJoeJoe PRO |
5
Anarchy 2 天前
这几年的 AI 发展已经让我开始怀疑这个想法了,人类的特殊性在一点一点被 AI 蚕食。边界肯定是有的但你举的例子所概括的“边界”说服力在降低,现实世界的复杂性也随着 AI 的发展也再重新定义。
|
6
shortawn 2 天前
我同意。
因为 AI 并不真正具备思考和创造的能力,它的全部能力都来自于训练数据,而这些训练数据是曾经的大量真人程序员创造的。 之所以看上去很牛逼,貌似能解决我们当前遇到的实际问题,纯粹是因为 AI 实在是身经百战,见得太多了。没有任何一个人类个体能同时掌握这么多技术,也没有任何一个团队能在掌握这么多不同技术的同时还能高效地把它们融会贯通地运用起来。这一点,only ai can do. 但是,说到底,这些数据、这些“思路”、这些形式正确的代码,都来源于真人。 在电脑和手机普及后,现在很多人只会敲键盘打字,也认识这些字,但要用笔在纸上写字,就会很茫然。同样的,如果真人大量依赖 AI ,那么,代码必然会越来越“同质化”,而真人程序员也渐渐变成“能看懂代码,但不会写”,甚至也很难跳出 AI 给定的代码和思维框架,他们只会对 AI 说:“你是一位资深的软件工程师……”“请检查代码是否存在错误并修复……”“请提出优化方案并实施……” 因为这些方法是有效的、是可以解决眼下问题的,谁还会去那么深入地学习呢?就像在愚公的时代,如果大家都有直升机,谁还会想着移山呢。 |
7
yxd19 2 天前
编程语言具备正交性,你的每次运行,结果是一致的。而大语言模型的结果是非正交性的,初始值的一点微小的改变,都会对结果产生巨大的影响。
不理解你说的正交性是什么比喻。 |