生成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时代延续的开发者生涯中,能遇到这么令人兴奋的变化也许是幸运的。

虽然追赶很辛苦,但能在最前线体验这个革命时代,是工程师的特权。

虽然对太快的变化感到困惑,但想作为享受变化的开发者。

不会停下脚步。一直跑在尖端的人创造下一个时代——怀着这样的想法,想在这激流中游泳。