现实中的编程的最大的难点在于对于情势的把握,比如算法设计过程中,当内存不足的情况下,需要时间换空间,比如采用一些压缩状态算法(比如用nfa代替dfa)、或者一些概率算法(bloom-filter)来、或者使用一些动态生成算法(各种lazy算法),反之,如果内存足够但是对性能有极致的需求,则应该考虑空间换时间,则尽可能使用状态预展开算法(比如所有的nfa尽可能展开成dfa)。又比如,在测试环节中,高水平的人类测试人员,总能将故障的条件定位到最相关的几个点上,而低水平的测试人员,则只会描述一些有关和无关的现象,AI驱动的测试能做到最小相关吗?而当代码的规模达到上万以后,需要考虑的情势的数量将会是巨大且无法枚举(这就导致AI是根本无法事先使用学习好的策略进行应对的)、难以描述、甚至是互相矛盾的。
所以,我的观点是,对于产品定义、需求分析、架构设计、算法设计、平台选择、编程语言、单元测试和系统测试、系统部署和运维、软件升级种种软件开发过程,把握情势--即根据现实的特点找到最有效的对策的能力才是软件开发活动的最大的难点和最耗时的地方,在这个环节中,如果没有像人类一样的逻辑处理能力,而仅凭如鹦鹉学舌一般的大模型是完全无法做到的。
【 在 debi 的大作中提到: 】
: 前天写了很多被吞了,再写试试。
: 其实我想说的是:代码量大了以后各种问题都会碰到,即使不考虑coding的错误,还有大量的其他问题。我前面举的网页登录的例子说的是需求描述很难早期就很详尽,需要不断检查改进,这些都需要大量时间。还有比如算法不够全面无法覆盖所有场景,比如性能不足,比如很难考虑到的并发问题等等,这些都是我曾经碰到过的问题,而这些可能都需要花费很多时间去发现去解决。
: 以楼主所说的每天一万行代码的速度,我写过的所有代码加起来恐怕还不到人家一个月的量。那么我碰到过的问题他是不是也应该都会碰到过类似的。下面是几个我曾经碰到过的困难,看看哪个能在有AI的情况下轻松解决:
: ...................
--
修改:heideggerr FROM 175.169.213.*
FROM 175.169.213.*