当软件开发只需一个星期
*这是我开发这个论坛的起因。*
最近 AI 编程的飞速发展,确实给广大码农带来了不小的冲击:软件产品似乎一夜之间变得不再那么“值钱”了。但换个角度看,它也切实赋予了我一种过去无法想象的能力,让我能够轻松地去实现一些纯粹出于个人兴趣的奇思妙想。
比如这个历史论坛,其实二十年前我就在脑海里构思过,但那时候也仅仅是“想一想”而已。当时要搭建、运营这样一个网站,无论是开发成本还是服务器带宽成本都极高,根本不适合当作业余爱好来玩。而现在,时代完全变了。
首先是运营成本几乎降到了零。现在市面上有非常多的免费网页托管和数据库服务。我的这个论坛,前端网页服务部署在 Cloudflare,后端数据库和边缘函数(Edge Functions)则托管在 Supabase。当然,这些免费档位都是针对我这种流量不高、纯属自娱自乐的业余项目的。
更颠覆的是软件开发的效率。当年利用业余时间从零开始啃代码、搭一个功能完整的论坛,估计少说也要两年;而现在,顶多一个月。
我以前利用业余时间写过书。在我的认知里,花两年时间去写一本书是值得尝试的,因为写书的中间过程是线性的。即使中间遇到不可控因素写不下去了,把已经完成的章节分享出去,也不算白忙活。但开发软件的逻辑完全不同,如果一个系统中途而废,它就是一堆无法运行的半成品,毫无用处,时间等于完全浪费。
然而,当软件开发的周期被 AI 缩短到一个星期甚至几天以内的时候,这种底层逻辑就彻底变了。现在我脑子里冒出什么想法,根本不需要纠结,立刻就能动手做出来试一试,试错成本极低。
刚开始接触 AI 编程时,我先拿几个最经典的小游戏投石问路,比如《小蜜蜂》、《坦克大战》、《弹力球》。我已经很多年不玩游戏了,这些完全是凭着童年记忆让 AI 去复刻的。
初尝甜头后,我又尝试了几个稍微复杂一点的。首先是《雷电》,做起来之后我发现它的底层核心逻辑其实很简单,就是个加强版的小蜜蜂。但这个游戏的真正挑战在于美感——我复刻出来的画面怎么看怎么别扭。唉,不得不承认,我个人的美工底子实在太差,这点即使有 AI 帮忙也拯救不了。后来我又试着去复刻当年的经典 3D 游戏《主题公园》,这个就复杂得多了。不过它最难的部分还不是 3D 画面,而是策略型游戏的数值平衡。无论我怎么调,都很难达到好玩的临界点。现在玩这个复刻版,基本上进去几分钟就会因为把钱赔光而破产。(我做的这几个小游戏都放在这里,感兴趣的朋友可以去踩个坑:https://qizhen.xyz/games)
在玩腻了游戏之后,我让 AI 帮我写的第一个工具,是一个类似 LabVIEW 的网页版图形化编程软件。做这个程序的初衷源于我多年前的一段情结。当年我离开 NI(国家仪器)公司之前,公司内部正准备启动网页版 LabVIEW 的研发,当时技术选型选了 Silverlight。我当时对此耿耿于怀,怎么也想不通为什么不用更开放的 HTML5。当然,后来经历得多了,我也意识到商业软件的成败往往取决于商业决策,技术本身没那么重要。
但现在,既然个人借助 AI 已经拥有了如此强大的工程能力,我便决定亲自了却这个当年的遗憾。网上关于那些经典小游戏的开源代码一搜一大把,AI 能做出来并不稀奇。我想看看,面对网上几乎没有开源代码可参考的、类似 LabVIEW 这样的程序,AI 还能不能搞定。
结果 AI 的表现超出了我的预期。虽然我非常确信网上找不到现成的 LabVIEW 源代码,但 AI 一下子就抓住了核心本质:这东西在结构上跟“流程图”差不多,完全可以采用类似的数据结构来处理。结果,仅仅花了一个星期,它就帮我把 LabVIEW 最基础的几个数据流核心功能给实现了。因为当时只是想验证一下 AI 的极限,并没有真正打算造一个能用的编程语言,所以实验成功后我也就止步于此了。
再接下来,就是现在这个历史互动论坛了。这一次,我一共花了两个星期的业余时间把它彻底搭了起来。
坦率地说,目前的 AI 编程也远非完美。虽然搭建的时间被大大缩短了,但测试工作只能由我一个人手敲,根本测试不过来,代码里肯定还隐藏着无数尚未发现的 Bug。安全漏洞估计也有一堆,如果这是个商业应用,我是绝对不敢直接上线的。但好在它只是个娱乐工具,那就无伤大雅了。
针对安全问题,我采用了一个非常极端的“解法”:那就是不在我的数据库里保存任何涉及用户隐私的内容。
论坛的用户登录系统我直接接入了 Supabase 的第三方验证,我这边既看不到也绝不保存用户的密码。同时,登录用户在论坛里只能发布公开的帖子,我压根就没给用户提供任何可以填写私密或敏感信息的地方。既然没有隐私,自然也就无惧泄露。
从想入非非的二十年前,到两周成型的现在。AI 让软件不再高不可攀,终于把纯粹的创造乐趣,给了我这中喜欢折腾,有没有太多时间的码农。