用AI编程构建RSS阅读器:一次启迪与不适的体验
概述
“氛围编程”确实有效。作者并不希望如此,但它的确能很好地工作。除非发生某种颠覆现有新秩序的变革,否则机器学习的发展已不可逆转。
今年早些时候,作者订阅了每月20美元的某机构Claude服务,并用它编写了一个用于监控新闻源的Web应用。这是一次启迪但又不适的体验。
有人希望阻止AI发展,作者祝愿他们顺利。但作者始终认为,问题不在于AI本身,而在于那些利用AI获利却逃避责任和义务的人。
迄今为止,每一次AI的失败都源于某人决定实施AI系统时未能完全理解可能发生的后果(或者他们理解了,但知道自己能逃脱责任)。我们只能责怪自己:允许软件驱动的汽车上路、接受AI代码洗白的合法性、放任AI系统提供糟糕的医疗建议。要阻止当前形式的AI,至少在美国,要从投票箱开始。
AI编程的演变
2019年,AI因产生古怪内容而引人注目。到2022年,它开始生成偶尔可用的代码,并引发法律诉讼。2025年2月,AI研究员Andrej Karpathy创造了“氛围编程”一词,当时意指从机器学习模型中哄骗出的糟糕代码。
到2025年底,随着某机构Opus 4.5和某机构Codex 5.2的发布,模型已改进到“氛围编程”就等同于编程的程度。它们生成的代码足够好——不完美、未优化、不巧妙也不优雅,但也并非差得可笑。
开发者们注意到了这一点,结果除了某代码托管平台提交量大幅增长外,还涌现了大量关于人们如何利用AI模型完成特定项目的证言。
资深开源开发者转AI影响者Simon Willison写了一个典型例子:“我用氛围编程实现了梦想中的macOS演示应用”。安全研究员Michael Taggart最近发表了看法:“我用了AI,它有效,我讨厌它。”Taggart的评估很准确。
构建内容与所学所得
作者从20世纪80年代初学习BASIC开始就成为了一名业余程序员。在iPhone问世后对编程更加认真,使用跨平台Lua框架Corona SDK编写了一些iOS/Android游戏,并沿途学习了Python、JavaScript、TypeScript、Dart和Flutter。
大约八年前,加入某机构后不久,作者开始开发一个名为Vulture Feeds的Electron应用,用于通过RSS/Atom跟踪新闻。随着对编码的了解加深,作者将该应用重命名为RSSputin并一直使用至今。
在报道AI几年后,作者决定尝试使用某机构Claude Code创建一个托管版的、改进版的RSSputin。首次提交于2026年2月22日,经过七周和337次提交后,RSScal现在成为一个可运行的商业应用。
大部分代码由Claude Code生成,并在非专业和AI审查后手动提交。如果代码真的非常糟糕,应用很快就会崩溃。但作者谨慎乐观。目前作者喜欢使用RSScal,一些同事也在测试它。作者对Linux管理员的同情增加了,因为现在需要照看服务器。
RSScal是否具有商业可行性还不好说。但作者能在两个月内以40美元的订阅费或约200美元的令牌成本,加上每月14美元的小型VPS托管实例,就搭建出一个竞品,这表明关于SaaSpocalypse的讨论应该被认真对待。创建软件从未如此容易。
技术栈详情
RSScal运行在Docker容器中。后端使用Python (FastAPI)、Celery、Redis和PostgreSQL (某机构)。前端使用SvelteKit和Tailwind CSS。
依赖AI的利弊
依赖AI的一个批评点是学不到东西。但作者对Docker、Python和SvelteKit的熟练程度已显著提高。如果你在所有事情上都使用AI而不主动参与,AI绝对会限制你的学习并导致技能退化。但它也可以成为帮助你克服障碍的工具——作者发现Claude在组装复杂命令行字符串方面远比“搜索某技术问答网站”要好。
与Claude Code这样的AI模型合作很困难,因为你必须在脑中同时持有两个矛盾的想法——模型既能力超强又完全无知。
有些情况下,作者提交更改后出现问题并向Claude询问。模型会建议一个不适用的修复方案,因为Claude假设作者在处理开发版本而非生产版本,或者假设直接操作数据库而非通过Docker。或者Claude会实现某个功能但未能包含基本的安全功能,如速率限制。
同时,Claude有时会添加作者未要求但最终证明很有价值的细节或界面元素。它提出的一些关于网页设计的“创造性”建议被作者保留了。
总结
基本应用创建的商业化已经进行了多年。一旦一个应用变得流行,人们就会创建克隆版本并通过各种市场出售。AI将加速这种商业化,但编写代码只是其中的一部分。
Claude Code不能让你成为伟大的营销人员,也不能确保你在正确的时间、正确的地点拥有正确的想法。它不能建立企业所依赖的信任或发展关系。它不能使你的RSS应用成为一个好主意。但它可能会打开那些你原本可能错过的门。FINISHED