我有个问题。
实际上,我有 84 个公开的 GitHub 仓库。
我查过了。
八十四。
而这还只是公开的那些。
平心而论,它们并不都是活跃项目。有些很旧了。有些是实验。有些是小工具。有些被废弃过、复活过、改过名、重建过,或者被另一个我显然认定绝对有必要存在的项目取代了。
但还是那句话。
84。
我一直是那种还没做完上一个想法,就已经对新想法兴奋起来的人。AI 编程工具并没有制造这个问题。
但它们确实移除了几乎所有曾经用来控制这个问题的障碍。
以前开始一件事要更难一些
不一定难,但存在摩擦。
你有了一个想法。
也许你会想上一阵子。研究一个库。读一些文档。琢磨想怎么组织它。判断学习一个不熟悉的框架是否值得这么麻烦。
有时在这个过程的某个环节你会意识到:
你知道吗?我其实没那么在乎这件事。
而这大概是健康的。
现在我可以冒出这样的念头:
要是有个终端 MIDI 播放器就酷了。
十分钟后我就有了一个 Rust 项目、一个 Ratatui 界面、部分可用的 MIDI 播放、一个名字、一个 logo 想法,以及对布局的各种意见。
我大脑里负责的那部分甚至都没收到会议邀请。
AI 摧毁了活化能
这可能是 AI 编程工具改变我构建软件方式的最大体现之一。
它们不只是让编程变快了。
它们让开始变得极其容易。
一门新语言不再那么令人生畏,因为我可以在做的过程中提问。
一个不熟悉的库不再意味着要花一个周末读文档才能动手。
样板代码几乎无关紧要了。
我不必记住自己用过的每个框架的确切配置。
如果我想知道某个古怪的想法在技术上是否可行,我不一定非得先花三个小时去研究。
我可以直接试一试。
老实说,这相当了不起。
我用 Rust 做了一些东西,要不是这样,我可能还不会碰这些。我尝试过终端 UI、本地 AI 模型、MCP 服务器、桌面应用、浏览器 API、图像工具、音频工具、小工具、开发者工具,以及一大堆其他东西。
有些变成了真正的项目。
有些教会了我一些有用的东西。
有些大概只活了一个晚上。
我不觉得那些时间有哪一点是浪费的。
但肯定有一个副作用。
现在每个想法都能变成一个项目
这就是事情对像我这样的人变得危险的地方。
以前,在以下两者之间有一道天然的过滤器:
“那会挺不错。”
和
“我要把它做出来。”
AI 让那道过滤器变得极其薄。
有时甚至不存在。
我会在做某个项目时遇到一个小小的烦人之处。
那个烦人之处给了我一个做工具的想法。
我问一个 AI 编程智能体这个想法是否可行。
它说可以。
显然这不可接受。
现在我得把它做出来。
两个小时后,原来的项目被遗弃在另一个终端标签页里,纳闷我去了哪里。
甚至不总是什么大想法。
有时候是:
- 我希望这个命令能多做一件事。
- 要是我有个小 UI 来做这个就好了。
- 为什么这个工具不显示这个信息?
- 我敢打赌我能让这个在终端里跑起来。
- 要是这个能直接接受粘贴的图片呢?
- 我能把这个改成在本地运行吗?
- 我想知道这个模型能不能在浏览器里跑。
- 这个现成的工具几乎就是我想要的,除了……
最后那个尤其危险。
除了。
在我的 GitHub 账号上,没有什么比“这几乎就是我想要的,除了……”生成了更多的仓库。
做原型变得便宜得离谱
而且我说的便宜不只是钱。
时间、精力和脑力的成本都下降了。
我可以在完全投入之前先测试一个想法。
这是个巨大的优势。
有些项目我一开始做,就很快意识到这个想法没有我以为的那么有趣。过去,我可能要花好几天才能弄明白这一点。
现在有时候我一个小时就能弄明白。
删掉它。归档它。继续前进。
那不是失败。
那是一个原型在履行它的职责。
问题在于,完全同样的东西也让追逐下一个闪亮想法变得非常容易。
然后是下一个。
再下一个。
AI 让从 0% 到 30% 变得快得惊人。
不幸的是,30% 也恰好是另一个想法开始显得非常令人兴奋的地方。
开始和完成是完全不同的技能
这是 AI 尚未神奇解决的部分。
开始一个项目令人兴奋。
你从零开始创造一切。每个小时都能产出可见的东西。架构很干净,因为你还没有足够的时间去毁掉它。没有用户。没有奇怪的边缘情况。没有人提 issue 解释说你那套完全合理的代码会在用户名包含 emoji 并且他们在冰箱上跑 Linux 时崩溃。
一切都是可能性。
完成则不同。
完成意味着:
- 修复无聊的 bug
- 处理边缘情况
- 编写文档
- 测试那些你以为已经能用的东西
- 清理你在原型阶段走的捷径
- 打包
- 部署
- 无障碍
- 更新依赖
- 意识到你三周前加的功能弄坏了某个完全不相关的东西
AI 能帮忙做所有这些。
但它不会让那个阶段感觉像一个闪亮的新项目。
而这才是真正的陷阱。
当开始变得几乎毫无阻力,完成面临的竞争比以往任何时候都多。
但我其实并不想把阻力找回来
这就是奇怪的地方。
我不认为解决办法是强迫自己停止开始新东西。
我喜欢做实验。
非常喜欢。
我学到的一些最有用的东西,来自那些我完全没资格开始的项目。
有时我做一个东西,主要是因为我想要学一个库。
有时我想看看一个想法是否行得通。
有时现有软件让我烦。
有时我只是觉得某个东西会很好玩。
不是每个仓库都需要变成一个产品。
不是每个副业项目都需要用户。
不是所有东西都需要路线图、变现策略、发布计划,或者对“这解决了什么问题?”给出令人信服的答案。
有时答案是:
我想看看我能不能做出来。
这仍然是我最喜欢的编程理由之一。
AI 让这种实验变得容易得离谱。
我不想失去这一点。
我只是需要偶尔记住,GitHub 也允许你在已经存在的仓库上工作。
显然如此。
我正试着把实验和承诺区分开
我开始更多思考的一个区别是,我是在探索一个想法还是启动一个项目。
这两者不必是同一回事。
我可以花一个晚上测试某个奇怪的概念,而不在心里把它加进我那堆“总有一天必须完成的事”里。
这比听起来要难。
尤其是当你已经给它起了名字的时候。
起名字通常就是我栽跟头的地方。
一旦它有了一个可爱的名字和一个图标,我们就进入了危险地带。
但我觉得,允许自己自由地做原型、同时对什么能被提升为真正持续进行的项目更加挑剔,这其中有些有用的东西。
也许这个实验已经教会了我我想知道的东西。
也许这个想法不够强。
也许另一个项目已经解决了它。
也许它足够有趣,值得继续下去。
也许我三天后打开这个仓库,立刻想:
哦,太棒了。我还是想要这个。
这大概是比最初那阵兴奋更好的信号。
这可能是 AI 编程最奇怪的影响之一
我们一直在讨论 AI 是否让开发者更有生产力。
它写代码能快多少?
一个智能体能完成多少任务?
哪个模型得分最高?
这些事很重要。
但我觉得还有另一种更难衡量的影响。
AI 改变了我们愿意尝试的东西。
以前不值得付出搭建成本的想法,突然就值得了。
感觉太陌生的技术变得可以接近了。
微小的个人工具变得值得构建了。
荒唐的实验变成了一个周二晚上。
从好奇到能运行的代码之间的距离变得短得不可思议。
对于已经患有慢性“我也能做那个”综合征的开发者来说,这既美妙又绝对糟糕。
因为它,我学到了更多。
我尝试了以前不会尝试的东西。
我构建了我真正在用的工具。
我也积累了足够多的仓库,GitHub 大概以为我是好几个人。
所以不,我不认为是 AI 让我变成了一个习惯性启动项目的人。
我自己完全有能力做到这一点。
它只是给了我一把快得多的铲子。
而且显然我一直在深挖。