How to keep enjoying programming in a world of LLMs
How to keep enjoying programming in a world of LLMs
在大语言模型(LLM)时代,如何保持编程的乐趣
Are you steering towards AI burnout? Afraid of losing your job to someone with little programming skills, no aspirations to quality, and a huge Claude account? Disappointed about the code quality in your projects, or worse in “your” own code? This is for you.
你是否正走向 AI 倦怠?是否担心自己的工作会被那些编程技能匮乏、对质量毫无追求,却拥有海量 Claude 使用额度的人取代?是否对项目中的代码质量感到失望,甚至更糟——对“你”自己的代码感到失望?这篇文章就是为你准备的。
There are significant and legitimate ethical concerns about frontier LLMs run by big tech companies, these have been discussed at length, I’m aware and agree, this post is not about them. Please don’t mistake me for a pro-LLM techbro.
大型科技公司运营的前沿大语言模型存在重大且合理的伦理担忧,这些问题已被广泛讨论。我对此知情并表示认同,但本文不打算探讨这些。请不要把我误认为是那种盲目推崇 LLM 的科技狂热分子。
Also: Since people have mistaken my texts for LLM-generated before, I’ll tell you that it is 100% human written without any AI-assistance.
另外:由于之前有人误以为我的文章是 LLM 生成的,我在此声明,本文 100% 由人类撰写,没有任何 AI 辅助。
Souls in the Great Machine
巨型机器中的灵魂
There is a great book of this title by Sean Mcmullen that I enjoyed reading as a teenager, and at the first glance it describes the opposite of our situation: A big computer where the individual components are human, and work together to form a calculating unit. On the other hand, LLMs are themselves running on actual computers and pretending to be (super-)humans. At a second glance, story and reality are not so far apart though: Our role in the process of producing software is being degraded slowly from being actors to cogs in a machine. The spec-driven-dystopia is that we just get handed down some spec, hammer it into the LLM, and weep when our tokens run out because a technofeudal lord decided to hand out fewer of them.
肖恩·麦克马伦(Sean Mcmullen)写过一本同名的好书,我青少年时期很喜欢读。乍一看,它描述的情况与我们现在的处境恰恰相反:那是一个由人类作为独立组件共同协作,从而构成计算单元的巨型计算机。而另一方面,LLM 本身运行在真实的计算机上,却在假装成(超级)人类。但仔细一想,故事与现实其实相差无几:我们在软件生产过程中的角色,正慢慢从“行动者”降级为“机器中的齿轮”。这种“规格驱动的反乌托邦”在于:我们只是被动地接收规格说明,将其塞进 LLM,然后当我们的 Token 用完时,只能因为某个“技术封建领主”决定减少配额而哭泣。
As a Haskell programmer, I enjoy writing Haskell. Yes, I like the product we make at work a lot, I like what you can do with my open source libraries, but I really enjoy just the process of expressing my thoughts in this language. I’m assuming this to be true for most of you, and also it not to be true in many other languages, which explains to some amount why enthusiasts of different programming languages have different opinions on how bright or dark the LLM-assisted future is.
作为一名 Haskell 程序员,我享受编写 Haskell 代码的过程。是的,我很喜欢我们在工作中开发的产品,也喜欢大家利用我的开源库所做的事情,但我真正享受的,仅仅是用这门语言表达思想的过程。我相信你们大多数人也是如此,而在许多其他编程语言中,情况可能并非如此。这在一定程度上解释了为什么不同编程语言的爱好者,对于 LLM 辅助的未来是光明还是黑暗,持有不同的看法。
When I generate code, a lot of that enjoyment is at risk. So, don’t, maybe. I want to keep writing (at least the enjoyable parts of) Haskell programs, and not having to read and review (too much) generated code. At the same time, I want to put those tokens to some good use that doesn’t slowly burn my brain away.
当我生成代码时,这种乐趣的很大一部分就面临风险。所以,也许我们不该这么做。我想继续编写(至少是那些令人愉悦的)Haskell 程序,而不必去阅读和审查(过多的)生成代码。同时,我也想把这些 Token 用在刀刃上,而不是让它们慢慢耗尽我的脑力。
I want to show you a way to keep enjoying programming, and at the same time becoming moderately more productive with LLM, instead of appearing to be much more productive and losing all the joy.
我想向你们展示一种方法,既能保持编程的乐趣,又能适度提高使用 LLM 的生产力,而不是仅仅“看起来”生产力大增,却丢掉了所有的快乐。
If you want to just be LLM-abstinent, that’s great as well, and you already know what you’re doing. But there might be reasons you don’t want to be, e.g. you actually need to bring some real productiveness gain to the table, or you don’t want to be left behind while the rest of your team, your company, your industry, is moving towards heavy LLM adoption.
如果你只想彻底远离 LLM,那也很好,你很清楚自己在做什么。但可能有些原因让你无法做到这一点,例如你确实需要带来实际的生产力提升,或者你不想在团队、公司和整个行业都在向深度使用 LLM 转型时被抛在后面。
Keep writing code
继续编写代码
If you want to keep owning your codebase, you need to keep writing some code. If you let it all be generated, it will turn into an LLM wasteland that only your coding agents can thrive on. So you should keep writing code, otherwise…
如果你想继续掌控你的代码库,你就必须坚持编写代码。如果你让一切都由 AI 生成,它最终会变成一片只有你的编码代理才能生存的 LLM 荒原。所以,你应该坚持写代码,否则……