拥有 20 年行业经验的 CS 讲师 Beej Jorgensen 在博客中坦言,尽管他使用 Claude Code 生成了代码、小说和木刻版画,但他无法将这些 AI 辅助产物视为"自己做的"。
他认为只有亲手完成的工作才能带来真正的成就感,而委托他人或 AI 代劳的作品会让他感到不适与失落。 这种对"创造"定义的坚持,折射出 AI 编程时代部分开发者对技艺流失的深层焦虑。
TLDR:通过创造东西,我获得了很大的满足感。我不认为由他人在我的要求下建造的东西是我自己创造的,因此满足感要小得多。然后我会感到难过。本文起初很有力,然后逐渐偏离主题。
已经有很多文章写到我称之为“AI开发分裂”的现象,我认为这些文章中有很多是真实的:
我们暂且认为这些对不同开发者来说是正确的。但还有一些其他让我困扰的事情。
在开始之前,我先讲点背景,这样你可以更好地理解我的观点:
在这篇文章中,我将使用“AI”来指“生成式AI和大语言模型”。抱歉,那些经历过多次AI寒冬的老手们。
在开始之前,我想和你们分享一下我最新的科幻小说。有些人可能不知道,除了《Beej's Guides》,我也写科幻小说。
凯尔将背靠在破碎的舱壁上,等离子体在距离他面前几厘米的空气中划过。Vorrkai攻击无人机已经预判了他们通过下层甲板的路线,而现在琳的手臂透过夹克袖子流血,老马雷特因通风冷却液仍然弥漫在走廊而无法停止咳嗽。凯尔计算着每次射击之间的脉冲间隔。三秒。也许四秒。这就是宇宙给予他的全部。
然后他看到了:在坍塌的发电机舱后面的维修井,通风格栅被同一次爆炸冲开了一半,正是那次爆炸使他们原本的出口坍塌。空间狭窄,不美观。它直接穿过Vorrkai的前沿阵地,这条路要么是最危险的,要么是他们绝不会想到去监视的最后一条路。凯尔抓住马雷特的衣领,无言地指了指。老人的眼睛瞪大,然后变得坚毅。他点了点头。琳已经开始行动。
凯尔最后一个到,绕过舱壁角盲目开火,不是为了击中任何东西,只是为了制造噪音,并给无人机一些热量可追踪,同时他的人趁机钻进黑暗。一个炮弹击中了发电机外壳,整个结构呻吟着,火花洒落在他们头顶的井道里。他拉自己进来,膝盖在撕裂的金属上灼烧,然后关上了身后的格栅,发出的声音让他确信甲板上的每一个Vorrkai单位都听到了。在前方的黑暗中,琳的手找到了他的手腕。“动,”她的握力在说。现在。于是他们照做了。
——摘自 Brian "Beej Jorgensen" Hall 的《Vorrkai 间隔》
而且,在我如今大量的空闲时间里,我开始做艺术!这是一个木刻,用粉彩上色,展示了一些我最喜欢的题材。
《机器之镜》,作者 Brian "Beej Jorgensen" Hall,价格 $1300。
木工?当然,我也涉猎!我最近重建了前甲板。旧甲板腐烂了,所以我拿了一堆雪松并组装起来。我本来早就想做这件事,但一直找不到时间。
最后,这是我为一个TUI冒险类Roguelike写的一些代码:
我是一个极其多产的博学者,相信你也会同意!
我不喜欢说谎。然而,我觉得,亲爱的读者,我可能误导了你。是的,过去的一切(包括我的甲板)都是被创造出来的,而我是所有创造的发起者。但我并不真正觉得我是它们的创造者。声称我创造它们让我感到不自在。
既然你现在肯定意识到以上所有内容都是AI生成的(除了我的甲板,那是由专业、付费的工匠制作的),也许你会对我声称自己做了这些事情感到有些不舒服。
然而,我认为并不是每个人都会有这种感觉。我认识很多人请承包商建造东西,而他们会把话说成是自己建造的。
“我安装了一个新的前甲板,”他们会这么说,即使其他人做了所有工作。就我个人而言,我觉得那是误导。我更倾向于说“我请人安装了一个新的前甲板”。
当我让 Claude 为我创建某些东西时,我就是不能说是我做的。其他人可以,但我就是不能。再说一遍,我更倾向于说:“这段代码是别人为我写的。”我甚至不觉得把这些(非雇佣的)工作以 MIT 许可证开源是舒服的,如果法律上允许的话。我只是把它们都 Unlicense:https://unlicense.org/。
作为一个经理,我从不会说是我开发了产品。我会说:“我的团队开发了这个。”而作为 LLM 的经理,我会说:“我的代理创建了这个。”
对我来说,这在创造方面几乎没有任何分量。
我觉得自己什么都没做。我喜欢做事。我在做事中找到自豪感。
完成项目是很棒的。我喜欢完成项目。资本家喜欢完成项目。真正的艺术家交付作品。
但让别人完成我发起的项目对我来说完全没有那么充实。
不仅仅是失去了手艺、解决问题的挑战或其他什么。更是失去了创造的过程。
我的妻子想要一个简单的西班牙语学习抽认卡系统。“我只想要一个可以在表格里放入想要的单词然后在抽认卡上查看的东西。”一个提示!
所以我手动写了它。我确实用 Claude 学了一些基础,比如如何最快地从 Google Sheets 获取数据(剧透:是 CSV 接口),但我告诉它不要生成任何代码。
花费时间不长。只是比 Claude 做要慢大约 50 倍。
但我可以在那段代码上署上我的名字,并说是我写的。代码很多吗?不。很前卫或很棒吗?当然不是。但我对那段代码的自豪感远超我让 Claude 写的任何代码,因为我根本无法为后者感到自豪。
而我妻子也不会去她的读书会说:“我写了一个西班牙语学习抽认卡系统。”诚然,部分原因是她不想看起来很宅,但更多是因为这不是真的,尽管她发起了这个过程。
毕竟,你创造了提示,不是吗?你说过你为做事而自豪。那不是在做一件事吗?既然完成了这么多,难道不是更算是在做一件事吗?
我不反对。我也同意,在某些重要方面,这确实需要技巧。
并不是所有提示都同样有效。并不是所有人工智能的用户都同样高效。这里有一个非常人性化的贡献可以做。
但关键在于如何有效地请别人为你制作某样东西。
“领导力是一门艺术,把别人做你想做的事,因为他自己也想去做。”
我是那种非常怀念编写软件的人。对我来说,为软件提供提示并不等同于制作软件。这就像是请别人去做一样。
这不就是一直往下都是乌龟吗?
对于任何给定的 C 或 Rust 程序,我写了这个程序吗?我用 C 写了它。我没有写任何机器码。计算机写的。
在我看来,这里面有些不同。我不确定是不是在 C 与机器码之间的数学精确关系……?然而这一点没有被明示。我依赖某个黑客对 CPU 的深厚了解,在我愚蠢地把某数除以七的时候生成那组优秀的优化指令。而且严格意义上,这并非完全确定性,因为 Clang 和 GCC 会发出不同的指令。不同平台又如何呢?C 是可移植的,而机器码不是。即使我个人只在 Linux 上构建过它,我是否写了在 Windows 上运行的那个程序?
更进一步,在模糊的灰色地带,如果我指示一个大型语言模型(LLM)成为 C 编译器并为某个平台生成汇编代码,会怎样呢?
哇,真是完美的黄金比例!它甚至用 XOR 设置了退出状态为 0,这个调皮的家伙!
那么我写了那个程序吗?是的,我觉得我写了。(事实上,我刚刚手写了斐波那契程序——我在上课时已经做过一百万次了。)我觉得我写了这个程序,即使我没有写汇编代码,而汇编代码才是实际运行的程序!那是 LLM 写的!
严格来说,运行的是机器码,但从汇编到机器码,现在我们真正进入了严格、无脑、数学精确的翻译领域,我觉得这并不削弱制作行为的意义,就像使用锤子钉钉子一样。
在那个灰色地带真正的区别是什么?我不确定。我认为关键在于‘制作’与‘请求制作’之间的差别,即使这条界限并不是特别清晰。
——美国最高法院大法官波特·斯图尔特
我让别人按我的指令做的事情(受到一次不错的资本主义投资启发):
当我让ChatGPT创作一幅画时,我并不觉得那是我画的。
当我使用锤子时,我并不觉得我是在让锤子为我做什么。对C编译器或汇编器亦是如此。
然而我刚让Claude编译了一些C代码。那是我写C代码并运行它吗?还是我在让某物为我编写软件?我毫不怀疑,我本可以用英文描述我的需求来提示Claude,并得到同样的输出。
是因为AI看起来像人类吗?你用不精确的、人类语言要求它们做事。它们以人类的方式回应并完成你要求的事情。而在这种情况下,我们习惯的关系更像是管理者与下属,而不是同事与伙伴的关系。而我们与编译器的关系更类似于与锤子的关系。
然而……审视那个灰色地带让我更有信心地认为,让AI为我制作某物实际上是一种创造行为。如果我有一把AI驱动的锤子,让它帮我敲钉子呢?有什么区别?但到那时,我无法说是我敲的钉子。这个区别对我很重要。为什么?
亲爱的读者,如今我想我们可能都已筋疲力尽,也许我们应该在此停下,反思一下。
我觉得以一些经典的文字作结是合适的:
“我只想说,”计算机大声喊道,“我的电路现在已经不可逆转地致力于计算生命、宇宙及一切问题的终极答案。”它停顿了一下,确认自己吸引了所有人的注意,然后才更轻声地继续:“但程序运行需要一些时间。”
福克不耐烦地瞥了一眼手表。
“七百五十万年,”深思者说。
伦克维尔和福克互相眨眼。
“七百五十万年!”他们齐声喊道。
“是的,”深思宣称,‘我说过我得考虑一下,不是吗?而且我意识到,运行这样的程序必然会为整个哲学领域带来巨大的公众关注。每个人都会对我最终得出的答案有自己的理论,还有谁比你们自己更适合利用这个媒体市场呢?只要你们能够相互激烈争论,并在大众媒体上互相诋毁,并且拥有聪明的代理人,你们就可以终身坐享其成。这听起来怎么样?’
TLDR: I gain a lot of fulfillment by making things. I don't consider things built by others at my request to be made by me, and are therefore much less fulfilling. And then I feel sad. This article starts strong and then heads off into the weeds.
There have been a lot of pieces written about what I'll call "the AI dev schism" And I think there's a lot of truth to those:
We'll just grant those as being correct for various developers. But there's something else that troubles me.
Backstory before we get going, so you can get a better idea of my perspective:
I'm going to use "AI" to mean "Generative AI and LLMs" in this essay. Sorry, veterans of so many AI winters.
Before we begin, I'd like to share with you a bit of my latest sci-fi novel. Some of you might unaware that, in addition to Beej's Guides , I also write science fiction.
Kael pressed his back against the shattered bulkhead, plasma scoring the air centimeters from his face. The Vorrkai assault drones had anticipated their route through the lower decks and now Rin was bleeding through her jacket sleeve and old Maret couldn't stop coughing from the vented coolant still hazing the corridor. Kael counted the pulse-intervals between shots. Three seconds. Maybe four. That was all the universe was offering him.
Then he saw it: the maintenance shaft behind the collapsed generator housing, its grate blown half-open by the same explosion that had caved in their original exit. It was tight. It was ugly. It ran directly over the Vorrkai's forward position, which was either the most dangerous path imaginable or the last one they'd ever think to watch. Kael grabbed Maret's collar and pointed without a word. The old man's eyes went wide, then hard. He nodded. Rin was already moving.
Kael came last, returning fire blind around the bulkhead corner, not to hit anything, just to make noise, and to give the drones something thermal to track while his people scrambled into the dark. A bolt caught the generator housing and the whole structure groaned, raining sparks down into the shaft on top of them. He hauled himself in, knees burning on the torn metal, and pulled the grate closed behind him with a sound he was certain every Vorrkai unit on the deck had heard. In the black ahead, Rin's hand found his wrist. Move, her grip said. Now. And so they did.
—Excerpt from The Vorrkai Interval , by Brian "Beej Jorgensen" Hall
And, in my now-copious spare time I make art! This is a woodcut, painted in pastels, showing some of my favorite subjects.
Mirrors of the Machine by Brian "Beej Jorgensen" Hall, $1300.
Carpentry? You bet I dabble! I rebuilt my front deck recently. The old one was rotting out, so I grabbed a bunch of cedar and put it together. I'd been meaning to do it for a while, but couldn't find the time.
And, finally, here's some of the code I wrote for a TUI adventure roguelike:
I'm an extremely prolific polymath, I'm sure you'd agree!
I don't like lying. And yet I feel, dear reader, I have misled you. Yes, all that has been created (including my deck) and I was the initiator of all that creation. But I don't really feel like I made any of it. I'm uncomfortable claiming that I did so.
Since you are certainly aware by now that all of the above is AI-generated (except my deck, which was created by skilled, paid craftsmen), perhaps you feel a little bit of discomfort with me claiming credit for doing those things, too.
However, I don't think everyone feels this way. I know many people who ask contractors to build things and they phrase it like they built it.
"I put in a new front deck," they'd say, even though other people did all the work. Personally, I feel that's misleading. I'm more of a "I had a new front deck put in" kind of person.
And when I do have Claude create something for me, I just can't say that I made it. Other people can, but I just can't. Again, I'm more prone to say, "I had this code built for me." I don't even feel comfortable MIT-licensing that (not-for-hire) work, if that's even legally possible. I just Unlicense:https://unlicense.org/ it all.
As a manager, I'd never say that I built a product. "My team built this," I'd say. And as a manager of LLMs: "My Agents built this."
And that, for me, has very little weight in terms of making .
I don't feel like I did anything. And I like doing things. I find pride in doing things.
Completing projects is great. I love completing projects. Capitalists love completing projects. Real artists ship.
But having others complete projects I initiated is entirely less fulfilling to me.
It's not just the loss of the craft and the problem-solving challenge and whatever else. It's the loss of making .
My wife wanted a no-frills flash card system for learning Spanish. "I just want a thing where I can put the words I want in a spreadsheet and then see it on flash cards." A prompt!
So I wrote it. By hand. I did use Claude to learn some basics, like the easiest way to get the data out of a Google Sheet (spoiler: it's the CSV endpoint), but I told it to generate no code.
Didn't take long. Only about 50x longer than it would have taken Claude to do it.
But I can put my name on that code and say that I made it. Was it a lot of code? No. Was it groundbreaking and amazing? Certainly not. But I'm infinitely more proud of that code than anything I've had Claude write, because I'm not capable of being proud of the latter.
And my wife wouldn't go to her book club and say, "I wrote a flash card system to study Spanish." Admittedly, part of this would be because she didn't want to appear a geek, but mostly it's because it's untrue, even though she initiated the process.
After all, you create the prompts, don't you? You said you were proud of doing things. Isn't that doing a thing? And since so much got done, isn't it even more of doing a thing?
I don't disagree. And I do agree that there is skill here in some important ways.
Not all prompts are equally effective. Not all users of AI are as effective as one another. There's a very human contribution to be made here.
But the skill is in effectively asking someone to make something for you.
"Leadership is the art of getting someone else to do something you want done because he wants to do it."
And I'm the kind of person who really misses the making of software. And prompting for software, to me, isn't the same as making the software. It's the same as asking someone else to make it.
Isn't it just turtles all the way down?
For any given C or Rust program, did I write that program? I wrote it in C. I didn't write any machine code. The computer wrote that.
There's something different in my mind about that. I'm not sure if it's the mathematically-precise relationship between the C and the machine code...? And yet that's not spelled out. I'm relying on some hacker's deep knowledge of the CPU to generate that magnificent set of optimized instructions when I stupidly divide something by seven . And it's not deterministic, strictly, in that Clang and GCC emit different instructions. What about different platforms? The C is portable and the machine code is not. Did I write that program that's running on Windows even though I personally only ever built it on Linux?
Going further in the murky gray, what if I instruct an LLM to be a C compiler and emit assembly code for some platform?
Well, holy golden ratios! It even used XOR to set exit status 0 , the cheeky devil!
So did I write that program? Yes. I feel I did. (I actually did hand-code the Fibonacci thing just now—I've done it a million times for classes.) I feel I wrote the program even though I didn't write the assembly, which is the program that actually runs! The LLM wrote that!
Technically, it's the machine code that runs, but going from assembly to machine code now we're really getting into the land of strict, brainless, mathematically-precise translation, which I feel doesn't take away from the act of making any more than using a hammer to drive nails does.
What's the real difference in that gray area? I'm not sure. I think it hinges on something that has to do with making versus asking to be made , even if that line isn't particularly clear.
—US Supreme Court Justice Potter Stewart
Things that I ask others to do at my command (inspired by a nice capitalistic investment):
When I have ChatGPT create a painting, I don't feel like I painted it.
When I use the hammer, I don't feel like I'm asking the hammer to do something for me. Same with a C compiler or assembler.
And yet I just had Claude compile some C code right up there. Was that me writing C code and running it? Or was it asking something to write software for me? I have no doubt I could have prompted Claude with an English description of what I wanted and gotten the same output.
Is it because AIs seem human? You are asking them to do things in imprecise, human language. They respond in human ways and do the things you ask. And the relationship we are used to in those circumstances is more one of manager-report than one of colleague and peer. Whereas our relationship with a compiler is more similar to that of one with a hammer.
And yet... looking into that gray area makes me feel more confident that telling the AI to make something for me actually is an act of creation. What if I had an AI-powered hammer and asked it to hit a nail for me? What's the difference? But at that point, I can't say that I hammered it. It is important to me, this difference. Why?
By now, dear reader, I suspect we're both running out of steam and maybe we should leave it here to ponder.
I feel it's appropriate to conclude with some classic DNA:
"All I wanted to say," bellowed the computer, "is that my circuits are now irrevocably committed to calculating the answer to the Ultimate Question of Life, the Universe, and Everything." He paused and satisfied himself that he now had everyone's attention, before continuing more quietly. "But the program will take me a little while to run."
Fook glanced impatiently at his watch.
"Seven and a half million years," said Deep Thought.
Lunkwill and Fook blinked at each other.
"Seven and a half million years!" they cried in chorus.
"Yes," declaimed Deep Thought, "I said I'd have to think about it, didn't I? And it occurs to me that running a program like this is bound to create an enormous amount of popular publicity for the whole area of philosophy in general. Everyone's going to have their own theories about what answer I'm eventually going to come up with, and who better to capitalize on that media market than you yourselves? So long as you can keep disagreeing with each other violently enough and maligning each other in the popular press, and so long as you have clever agents, you can keep yourselves on the gravy train for life. How does that sound?"