最近在 Hacker News 上看到一个分享,是一个用纯 ARM64 汇编写的 web server。
网友的想法和我差不多:这年头大家基本上都不怎么写代码了,竟然还有人纯汇编手撸 web server ,这才是热爱编程,是真正的 hacker 。
网友感叹,过不了多久,传统意义上的程序员要么转型(成为彻头彻尾的 AI 指挥员),要么因转型失败而失业。 好在到了那时候,我们仍然可以在业余时间手写一些小玩意来聊以慰藉,怀念一下曾经作为程序员的时光。
也有悲观的看法:十年前看到这种项目,我会折服于作者的创造力;但如今只会想“用 LLM 写个同样的东西要花多久?” 编程作为一种艺术形式或许已经死了。
当然这对于真正热爱编程的 hacker 来说不是问题,因为他们享受的是解决问题和创造的过程,并不在乎实用主义,更不在乎他人的眼光。 “什么?你说我打磨一年的软件,你一个外行人用 LLM 只花一个下午就净室复刻了,性能更好、有丰富的文档,还 100% 测试覆盖? 没关系,我写代码爽到了,而你只是花钱买 token 造了个没人用的玩具罢了。”
我在想,我自己要不也在业余时间“古法编程”鼓捣点小玩意,来缓解一下日常 AI coding 带来的疲倦和不适(心理上的而不是生理上的)。
我现在日常开发 95%+ 使用大模型。代码还是会看的,但写是几乎不会去写的。 不是因为不懂,而是因为这套庞大的代码库,已经迭代成了适合 AI 维护而不适合人类维护的模样。 在不改变产出质量的前提下,如果说我们团队原先的开发效率是 1x ,现在用 AI 大概是 3~5x 。 但如果抛弃 AI 重新恢复手动开发,那效率会下降到 0.5x 左右。 这一点在我们之前去涉密机关驻场做二开的时候就深刻体现出来了(没有外网,只有内网部署的一个小型 LLM 可用)。
使用 LLM 开发的过程,就像我上面说的,非常的心累。 以前“古法编程”时,解决难题确实累,但是有动力让我坚持,最后问题搞定时也很有成就感。 但是使用大模型开发是另外一种累,解决问题后也完全没有成就感。
LLM 既不像一个工具(比如编译器,对于确定的输入有着确定行为的输出),也不像人(能够正常理解用自然语言描述的技术细节)。 和 LLM 的沟通非常别扭,必须得用“反人类直觉”的方式去构建 prompt ,才能让它输出自己想要的东西。 做这样的工作,感觉自己既不是一个程序员,也不是技术管理者,而是像(前 LLM 时代) AI 圈子里经常调侃的“炼丹师”。
工作强度也挺高的,基本上就是一个人在做以往三人份的活,根本没有闲着的时候。 工资也不是三人份的工资(现在北京税前 14.5k 对应届生来说算是偏低的了吧?) 说好的 AI 解放生产力呢?
不知道还能坚持多久,估计这种日子也没有头了,就算跳槽也改变不了现状。 在自己被裁员彻底失业(或者在那之前精神崩溃疯掉)之前,还是在业余时间重拾一下程序员的感觉吧, 那个让我热爱和憧憬,如今正逐渐消失的 coding 的乐趣。
目前的计划是重拾一下我之前做的那个“目标是 100% 兼容 Linux 和 *BSD 的操作系统”。 当时是纯 LLM 开发的,实现了常见 syscall ,把 busybox 部分功能跑通后就没再弄。 现在打算放下 LLM ,试着“纯古法”继续开发。对我来说是很大的挑战,但同时也是一种救赎。