I’m a Normie. Can Normies Really Vibe Code?
I’m a Normie. Can Normies Really Vibe Code?
我是个普通人。普通人真的能靠“感觉”编程吗?
The dog that ushered me into the technological future was “low and thick.” That’s all my mother registered before it T-boned her in a city park earlier this year: dense, heavy, and traveling fast enough to fracture her right tibia. But enough about her. Let’s discuss what this set in motion in my life: Having successfully learned nothing about coding for two and a half decades, I would soon be attempting my very first software development project.
那只把我带入技术未来的狗是“又矮又壮”的。这是我母亲今年早些时候在城市公园被它撞倒前唯一的印象:它结实、沉重,且速度快到足以撞断她的右胫骨。不过关于她的事就说到这儿吧。让我们谈谈这件事在我生活中引发的连锁反应:在过去二十五年里,我成功地没学会任何编程知识,但很快,我就要尝试我的第一个软件开发项目了。
If you’ve ever had a low and thick dog break your mom’s shin bone, you know the stream of lesser indignities that follows. Case in point: the hours my father spent navigating phone trees, trying to manage my mom’s medical care. Are frustrating telephone calls significant in the grand scheme of things? No. But that stupid dog had chosen a technologically interesting moment to do its thing. For the first time in history, a problem no longer needed to be serious to bring serious tools to bear.
如果你曾经历过母亲被狗撞断腿骨的事,你就会明白随之而来的那一连串琐碎的屈辱。举个例子:我父亲花了数小时在自动电话语音系统中周旋,试图处理我母亲的医疗护理事宜。从宏观角度看,这些令人沮丧的电话重要吗?并不。但那只蠢狗选择了一个技术上很有趣的时刻来捣乱。历史上第一次,一个问题不再需要变得“严重”才能动用严肃的工具来解决。
For as long as Silicon Valley has been selling a frictionless tomorrow, we ordinary people have been its passive shoppers—scrolling the App Store, hoping someone has gone to the trouble of building whatever we need. Enter AI and its democratizing sidekick: vibe coding. If the promise is real, suddenly we can build our own apps, as niche and trifling as we please, with zero programming skills. We merely gesture toward whatever irks us and a constellation of large language models, code generators, and development environments will click their heels.
长期以来,硅谷一直在兜售一个“无摩擦”的未来,而我们普通人一直是其被动的消费者——在应用商店里翻找,希望有人已经费心开发出了我们需要的东西。现在,人工智能及其民主化的伙伴——“感觉编程”(vibe coding)登场了。如果这一承诺成真,我们突然间就能在零编程技能的情况下,构建出我们想要的任何小众且琐碎的应用程序。我们只需指出困扰我们的问题,一系列大语言模型、代码生成器和开发环境就会立刻听候差遣。
Niche and trifling? That’s me! Where others vibe code résumé reviewers and inventory trackers and automated assistants to boost their work productivity, I had a different target in mind. Over the past couple years I’ve grown particularly fixated, personally and professionally, on what the policy world calls sludge: the rising tide of tiny administrative obligations that increasingly seems to define modern existence—and corrode our ability to get anything done. The hassle of dealing with insurance, or connecting that insurance to your doctor, or staying on top of airline miles, or navigating your kid’s school portal. The steps required to dispute a charge, or unsubscribe from a streaming service you forgot you had. Each of these feels like its own discrete assault on our time. But they’re not discrete. They’re separate mushrooms sprouting from the same mycorrhizal network.
小众且琐碎?那正是我!当别人用“感觉编程”开发简历审查工具、库存追踪器和自动化助手来提高工作效率时,我却有不同的目标。过去几年里,无论是在个人生活还是职业生涯中,我都特别关注政策界所说的“淤泥”(sludge):那股日益增长的微小行政义务浪潮,它似乎正定义着现代生活,并腐蚀着我们完成任何事情的能力。处理保险的麻烦,将保险与医生对接,管理航空里程,或是操作孩子的学校门户网站。为了对一笔费用提出异议,或者取消一个你早已忘记的流媒体服务,所需要经历的步骤。每一项都感觉像是对我们时间的独立攻击。但它们并非独立,它们是从同一个菌根网络中长出的不同蘑菇。
In a way this is a calibration issue. While bigger problems might at least theoretically attract attention—legislation, journalism, a Senate hearing—the smaller ones, too petty to litigate, simply become a fact of life. The arc of history may bend toward justice, but when it comes to fighting a one-dollar bank fee, it bends toward hold music.
从某种程度上说,这是一个校准问题。虽然更大的问题在理论上至少能引起关注——比如立法、新闻报道或参议院听证会——但那些太琐碎而无法诉诸法律的小问题,却成了生活的一部分。历史的弧线或许会向正义弯曲,但当涉及到对抗一美元的银行手续费时,它只会向等待时的背景音乐弯曲。
Which is where the fantasy of vibe coding captured my attention. Those hassles aren’t just accidental byproducts of complexity; they’re often features. A confusing portal, a dropped call, a process just opaque enough to discourage follow-through. At scale, they function less like bugs than like policy. The app I envisioned would expose this phenomenon, make the cumulative weight of these obligations a little harder to ignore. The image I’d like you to summon is a field of mushrooms trembling.
这就是“感觉编程”的幻想吸引我的地方。这些麻烦不仅仅是复杂性带来的意外副产品;它们往往是(系统设计的)功能。一个令人困惑的门户网站、一通中断的电话、一个故意设计得晦涩难懂以至于让人放弃跟进的流程。从规模上看,它们与其说是漏洞,不如说是政策。我设想的应用程序将揭露这一现象,让这些义务的累积重量变得难以忽视。我想让你脑海中浮现的画面是:一片正在颤抖的蘑菇地。
What my mom lacks in healthy legs, she makes up for in a Claude Pro subscription. Having needled her repeatedly over the past couple years about AI’s environmental, political, and economic implications, I brushed all that aside on a recent Sunday and drove to her house. After a little tibia talk, I opened her computer and began emitting vibes.
我母亲虽然腿脚不便,但她拥有 Claude Pro 订阅作为补偿。过去几年里,我曾多次就人工智能的环境、政治和经济影响对她进行“说教”,但在最近的一个周日,我把这些统统抛在脑后,开车去了她家。在聊了几句胫骨伤势后,我打开了她的电脑,开始释放我的“感觉”。
I’d like to create a communally shared app that gathers and shares information related to how much time and energy we devote to fighting burdensome administrative tasks, bureaucratic sludge, Kafka-esque unsubscribe mazes, byzantine insurance portals, wrongful charges, denied claims, confusing membership plans, and the like.
我想创建一个社区共享的应用程序,用于收集和分享信息,记录我们在应对繁重的行政任务、官僚“淤泥”、卡夫卡式的退订迷宫、复杂的保险门户、错误收费、被拒赔付、令人困惑的会员计划等事项上,究竟投入了多少时间和精力。
With as much clarity and detail as I could muster, I proceeded to describe a dashboard that would record the scale and scope of our collective sludge. Users would log frustrating incidents from their lives, entering how much time they’d spent, how annoying it was, and what they’d rather have been doing. Every submission would be dopaminally rewarded with an inspiring resistance quote and a photo of a kitten, puppy, or baby chimp. I’d train Claude to generate some “wider context”—a paragraph discussing how the frustrating incident fits into systemic sludge patterns—and a complaint letter to the relevant regulatory bodies.
我尽我所能清晰详尽地描述了一个仪表盘,它将记录我们共同面临的“淤泥”的规模和范围。用户可以记录生活中令人沮丧的事件,输入他们花费的时间、烦躁程度,以及他们本想做的事情。每一次提交都会获得多巴胺式的奖励:一句鼓舞人心的反抗名言,以及一张小猫、小狗或小黑猩猩的照片。我会训练 Claude 生成一些“更广泛的背景”——一段讨论该沮丧事件如何符合系统性“淤泥”模式的文字——以及一封写给相关监管机构的投诉信。
Claude noodled. Not for the first time, I feared my vibes would simply manifest an error page. I recalled, dimly, some of the advice I’d seen in Reddit forums: “I’d learn how computers and code works first.” “I’d look into going through harvards CS50.” “Instead of learning AWS or servers, use something like Kuberns.” I began to worry that vibe coding was a kind of stone soup: Sure, anyone can do it, you just first need a Harvard-level understanding of several dozen programming languages and cloud platforms.
Claude 开始思考。我不是第一次担心我的“感觉”只会导向一个错误页面。我隐约想起在 Reddit 论坛上看到的一些建议:“我建议先学习计算机和代码是如何工作的。”“我建议去看看哈佛的 CS50 课程。”“与其学习 AWS 或服务器,不如用像 Kuberns 这样的东西。”我开始担心“感觉编程”就像是“石头汤”:当然,谁都能做,你只需要先拥有哈佛水平的几十种编程语言和云平台知识。
That worry lasted about three Kuberns of a second. Claude stopped thinking and proceeded to explore what, by nature, it had to concede was an amazing concept: “This is a fantastic idea—genuinely useful, with a clear mission and a great sense of humor about a real problem. Let me give you an honest lay of the land before we dive in.”
这种担忧只持续了大约三个 Kuberns 秒。Claude 停止了思考,开始探索这个它不得不承认是一个绝妙概念的想法:“这是一个很棒的主意——非常实用,使命清晰,而且对一个现实问题有着很好的幽默感。在我们深入之前,让我先为你诚实地梳理一下现状。”
A couple clarifying questions later, I was staring at a real interface. The “Log Incident” and “Dashboard” tabs didn’t work yet, we hadn’t arranged for the entries to be saved anywhere, and I still needed to teach Claude the wider context part. But the beginnings of an online app had materialized.
在几个澄清问题之后,我盯着一个真实的界面。虽然“记录事件”和“仪表盘”标签还不能用,我们还没安排好条目存储在哪里,我也还需要教 Claude 如何处理“更广泛背景”的部分,但一个在线应用程序的雏形已经出现了。
I spent the next hour ironing out kinks. Some fixes Claude could make, some it had me make. I understood nothing and was merely following orders (while also being the one who gave out the orders). But steadily we made headway, and help—confident, reassuring, clear—was always a…
接下来的一个小时里,我都在解决各种小毛病。有些修复 Claude 可以自己完成,有些则需要我来操作。我什么都不懂,只是在听从指令(尽管我也是那个下达指令的人)。但我们稳步取得了进展,而那种自信、令人安心且清晰的帮助,始终就在……