智能编程工具:早期困境折射科技革命历史
2025年中,人工智能在编码领域的图景呈现出鲜明的悖论。尽管作为开发者普遍使用的平台GitHub的首席执行官大胆宣称,人工智能将很快处理所有编码任务——并且这是一项积极进展——但许多程序员使用当前AI编码工具的现实却讲述了不同的故事。这些工具非但没有提高效率,反而常常降低生产力,即便它们让用户产生一种自己工作效率更高的错觉。
这种期望与实际表现之间的脱节引发了一个根本性问题:一项最初阻碍用户的技术,最终能否转变为不可或缺的资产?历史提供了一个引人注目的相似案例,表明这种转变不仅可能,甚至可能是不可避免的。要理解这一发展轨迹,我们可以回溯七十年前,看看格蕾丝·霍珀海军少将的开创性工作。1955年,霍珀启动了FLOW-MATIC的开发,这是第一个旨在通过类似英语的命令而非复杂符号进行数据处理的高级计算机语言。这项创新很快为COBOL铺平了道路,COBOL至今仍出人意料地普遍存在。
霍珀,一位前数学教授,面对她的愿景受到了相当大的阻力。1955年,美国只有大约88台电子计算机在运行,计算能力是一种极其稀缺和昂贵的资源。它被一群精英数学家和工程师们嫉妒地守护着,他们认为处理周期和内存太宝贵了,不能“浪费”在将人类可读的词语翻译成机器指令上。他们认为,迁就那些不愿或不能学习机器级符号的人是不可接受的。然而,霍珀认识到这种态度具有深刻的局限性,特别是如果计算要变得普及的话。她的远见被证明是正确的;尽管当时的资源限制是真实的,但技术的快速进步很快使那种特定的批评变得过时。
然而,资源限制与根深蒂固的思维相结合这一潜在主题却持续存在,并在每一次随后的技术飞跃中浮现。随着计算机走向更广泛的普及,新的突破往往会引入最初的性能开销,这似乎有利于那些为原始效率而优化的旧编程实践。例如,C语言对早期小型计算机上的跨平台软件至关重要,但最初被汇编程序员嘲笑为不过是“花哨的宏汇编器”。同样,在微型计算机的萌芽时代,中间表示(IR)的引入——编译器首先生成一种通用格式,然后通过虚拟机将其转换为可执行代码——也遭到了怀疑。早期的IR实现,如Pascal的P-code和Java的字节码,出了名的慢,以至于出现了关于崩溃的C程序与运行中的Java应用程序性能无法区分的笑话。
Java的生存和最终普及,很大程度上归功于摩尔定律预测的处理能力的指数级增长以及无处不在的网络兴起。如今,IR是现代软件开发的基石,LLVM等技术就是例证,甚至C语言本身现在也在Nim和Eiffel等语言的编译器中充当IR。这种分层抽象是我们所居住的丰富而强大的互联编码世界的基础。
这一历史进程表明,虽然抽象程度的提高常常会带来最初的性能障碍,但最终会解锁更大的复杂性和能力。事实上,当今主流IT中运行在硅片上的许多代码从未被人类直接接触甚至看到;它们由机器生成和优化,通常通过多次转换。
这把我们带到了人工智能。当前编码领域的人工智能工具面临三重挑战:它们的名称本身、随之而来的炒作以及它们对资源的高要求。人工智能的核心在于擅长复杂的数据分析和推理;它并非人类意义上的“智能”,将其如此标记设定了不切实际的期望。尽管人工智能在明确定义的特定任务上非常有效,但它常常被宣传为一种通用解决方案,进一步加剧了怀疑并强化了根深蒂固的态度。当前的不适源于巨大的资源需求,特别是训练大型AI模型的需求,这往往只有最大的云提供商才能负担。这一点,再加上可疑的商业模式,共同创造了一个难以开发真正有效的AI编码工具的环境,使其在早期阶段喜忧参半。
然而,这种情况注定会改变,遵循历史模式。正如格蕾丝·霍珀所清楚理解的,消除人类思想与技术执行之间的障碍会加速进步。编码中的人工智能正准备这样做。随着技术的成熟和资源限制的缓解,人类的主要贡献将转向更深层次的预见、设计以及更清晰地阐明所需成果——这些目前往往是发展不足的学科。这让人想起一个古老的编程笑话:当计算机可以用书面英语编程时,我们会发现程序员写不好英语。希望技术进步的无情步伐将使这一观察像最初对高级语言的抵制一样过时。