生成AI工具的猛烈进化
ChatGPT登场的时候,代码生成还只是"偶尔利用"的程度。
但不知不觉间,GitHub Copilot、Cline、Claude Code等,作为开发者期待的功能和服务接连登场。真是势不可挡。
而且,每个都超越了单纯的代码补全,达到了作为正式开发伙伴发挥作用的水平。
追不上的现实 - 连享受恩惠的时间都不够
问题是,因为更新太快,想享受恩惠却连那个时间都不够了。
觉得新工具出来了,马上就发布下一个版本。正想要掌握功能,又添加了新功能。
“这看起来很方便,试试看"的时候,下一波已经来了。真是追不上技术通货膨胀的现实。
而且,这不仅仅是代码生成的话题。图像生成AI(Midjourney、DALL-E、Stable Diffusion)、音乐生成AI(Suno、Udio)、视频生成AI(Runway、Pika Labs)…波及到了所有创意领域。
作为开发者,正想着"掌握代码生成AI”,又出现了"图像、音乐、视频也能用AI制作的时代,也应该活用那个"的新选择。
如果不聚焦到某个地方,就会完全被吞没的变化风暴。
特别是对个人开发者来说,尝试新工具的时间和实际使用它开发的时间的平衡成为了大课题。
在处理工作、家务和其他日常事务的同时,挤出私人时间开发,好奇心持续迸发,那种怀念的热血感觉不断复苏。
“新AI工具出来了!““想试试看!“的兴奋。就像以前遇到新编程语言或框架时的那种激动感。
但现实问题是,能削减的只有睡眠时间。虽然想着"今晚也熬夜试试新工具”,但明显对第二天的皮肤不好。
是个烦恼的选择。
生成AI已成为生活不可或缺
关于生成AI的话题说不尽,但最近已经到了没有它就无法生活的地步。特别是开发者。
- 代码模板生成
- bug原因特定
- 重构建议
- 文档制作
- 设计的讨论对象
不知不觉间,开发流程的各个场景都涉及生成AI。
就像"没有搜索引擎就无法查东西"的情况一样,没有生成AI开发就进行不下去的情况正在形成。
从BASIC·汇编时代看到的天翻地覆变化
我自己从BASIC和汇编的时代就一直致力于编程和软件开发,幸运的是也以此为业谋生。
当时的编程环境
以前的编程是:
- 在连像样的编辑器都没有的环境中编码
- 调试器是奢侈品
- 稍微出错整个系统就挂起
- 参考资料只有纸质书籍
- 连复制粘贴都做不到(只能物理打字)
现在想想,竟然在那样的环境中开发。
少年时代的鲁莽挑战
少年时代的我也怀有"想做马里奥、勇者斗恶龙、最终幻想那样的RPG!“的梦想。但处于"从哪里开始做?“的状态。
不像现在"用智能手机拍照"的时代,把CRT显示屏和借来的游戏攻略本描在纸上设计。从角色的点阵图到地图结构,全部手工制作。
但是,怎么才能像游戏那样呢?手头只有文本编辑器和BASIC(后来升级到Fujitsu HighC编译器笑)。
“能做到。我要做到。”
“首先从工具制作开始!做自己最好用的绘图编辑器!”
现在想想,可能是个有点疯狂的孩子。总之,活着的世界本身就像是由if、for和goto语句构成的感觉。
走在路上也会想"这个标识有bug!",或者"这条路虽然远但按概率走会更快吧”,完全可能是个恶心的家伙。
朋友说"买了游戏”,我就说"那我就做”。“买不起YAMAHA音序器(做音源的工具),就做个类似的!"。妈妈说"帮个忙”,我却说"开发中反而帮我debug?”
完全是个危险的孩子。
因为没有互联网,一直在与充满错误的书籍格斗,夜以继日地制作。现在想想,正因为有那时的纯粹热情和鲁莽,才能知道编程的乐趣。
没想到30年后会作为Pixnote在线上复活。
经历阶段性进化
之后,集成开发环境(IDE)的登场、互联网上的文档搜索、Stack Overflow上的信息共享、GitHub上的代码管理…切身感受到了阶段性的进化。
但是,哪个都是现有开发风格延长线上的进化。
天翻地覆般的革命
但是,生成AI的登场根本不同。
之前的进化是"让开发变轻松"“提高效率"的水平,而生成AI是"改变开发本质"水平的变化。
从机械化革命到智能革命
更俯瞰来看,到目前为止的技术进化只是制作物理工具的机械化革命。
- 更快的处理器(计算速度提升)
- 更大的内存(存储容量扩大)
- 更便利的编辑器(输入效率改善)
- 更高功能的IDE(作业环境统合)
全都是"物理上补完·扩展人类能力"的东西。
但生成AI不同。因为获得了智能这一人类拥有的特性,变成了与以往完全不同的世界。
思考、判断、创造…这些到现在为止都是"只有人类能做的"领域。AI开始承担这些的瞬间,开发这一行为的前提本身就改变了。
传统开发流程
问题定义 → 调查 → 设计 → 实现 → 测试 → 调试
生成AI时代的开发流程
问题定义 → 与AI对话设计 → AI生成代码 → 人类验证·调整 → 与AI调试
从"写程序"变成了"与AI对话关于程序”。
我认为这是天翻地覆般的革命性变化。
作为开发者的身份认同动摇
说实话,有时会有作为开发者的身份认同动摇的瞬间。
“自己花几个小时写的代码,AI只需几分钟就能生成”——面对这个现实时,超越复杂心情,反而因为太厉害而笑出来。
就像在眼前看魔术表演的感觉。“诶,真的?刚才怎么做的?“忍不住想对AI说话。有时甚至觉得神圣。
对消失职业的共鸣
过去技术革命中,送冰人、点灯夫、电话接线员、手工织布工、马车夫…都消失了。
“那些人的心情我有点明白…“这样想。
送冰人肯定也想着"切割运送冰是我的专业技术!",点灯夫也有"这个城市的灯光是我管理的!“的自豪吧。
但电力普及的瞬间,就变成"啊,按一下开关就亮了”。
现在的我们程序员,也许有一天会作为"手写代码的人"在博物馆展出。
“以前啊,人类敲击键盘制作程序” “诶~,好辛苦!现在只要对AI说’做○○‘就行了”
这样的对话好像听得见。嘛,那样也挺有味道的。
但同时,也感觉到"所以人类的角色正在改变”。
人类的新角色
- 看穿问题本质的能力
- 适当评价AI输出的能力
- 描绘设计全貌的能力
- 保证质量的能力
- 做出技术判断的能力
从写代码,转向通过与AI协作制作更好软件。
混乱与恩惠的共存
现在是混乱与恩惠共存的状况。
恩惠部分
- 开发速度的剧烈提升
- 想法实现门槛降低
- 学习效率提升
- 从单纯作业中解放
混乱部分
- 追不上工具的进化速度
- 质量保证的新课题
- 传统技能价值的变化
- 开发手法的摸索
生活在革命时代的实感
从BASIC开始,C、C++、Java、JavaScript、Python…也见证了语言的进化,但哪个都是积累的延长。
所以,能深刻理解现在这场革命的厉害。
看,写着文章热情就涌上来了…
各种回忆像走马灯一样浮现。
- 第一次显示"Hello, World!“时的那份纯粹感动
- 被指针困扰3天睡不着的夜晚的苦战
- 第一次GUI应用运行时的"成功了!“的兴奋
- 能在网上搜索源代码时"这么方便的时代来了"的冲击
- 在GitHub上看别人代码想"哇,还有这种写法"的惊讶瞬间
回顾这一个个体验,就会发现它们都是技术史的重要转折点。
而现在,通过俯瞰这几十年的技术变迁,能看到生成AI革命的本质。
传统的范式转换,全都归结于计算资源和工具链的效率化。但生成AI是从根本上改变问题解决方法本身的技术。
以前思考的是"怎么实现”,现在只需传达"想做什么”。可以说抽象化水平提高了一个阶段。
抽象化的历史进化
回顾技术史,能看到各阶段抽象化的进化:
- 从汇编到C语言:内存管理的抽象化
- 从结构化编程到面向对象:数据和处理结合的抽象化
- 框架的兴起:架构模式的抽象化
而现在的生成AI,实现了包含这一切的"从意图到实现的直接转换”,终极的抽象化。
我们也许正在目睹计算机科学史上最剧烈的抽象化瞬间。
对未来的期待与不安
这个变化会走向哪里,说实话还看不清。
但能确定的是,作为开发者生活下去,只能接受这个变化并适应。
而且最重要的是,如果有对技术的好奇心和学习意欲,就能享受这个革命时代。
实际上,我每天都兴奋得睡不着。
每次新AI工具出来就"这次能做什么?“地期待,把过去的经验、现在的技术革命,还有刚才的走马灯全部揉在一起,把全部当娱乐享受。
看到以前辛苦制作的功能AI一瞬间生成的样子就"哇~!“地叫出声,然后"那接下来把这个组合起来做点新东西”,享受创造本身。
总结 - 作为享受变化的开发者
生成AI驱动的开发风格,还在试错阶段。
但是,在从BASIC时代延续的开发者生涯中,能遇到这么令人兴奋的变化也许是幸运的。
虽然追赶很辛苦,但能在最前线体验这个革命时代,是工程师的特权。
虽然对太快的变化感到困惑,但想作为享受变化的开发者。
不会停下脚步。一直跑在尖端的人创造下一个时代——怀着这样的想法,想在这激流中游泳。