这是个风起云涌的巨变时代:中美贸易战,俄乌战争,加沙冲突。战争-这个词语以不同的表达这几年不停的循环播放。谁知道那场真正的战争离我们还有多远。这个世界变得越来越像个草台班子,再显而易见的道理可以被轻描淡写的忽略,再胡搅蛮缠的胡作非为也可以名正言顺的成立。正义与邪恶之间的界限模糊,假假真真的游戏此起彼伏;逻辑已不重要,利益才是永恒。看官们嗑葵花籽,吃大西瓜比当事者还忙:吵得面红耳赤,争得不亦乐乎。单挑已经不解气,群殴才是王道。网上充斥着上纲上线的讨伐,稍有不慎就落入千古罪人的陷阱。
在这个暗流涌动,变换莫测的时代,好像唯有科学才算清流,只有数学公式才能严谨的推导对与错,表达美与丑。即使如此,也改变不了这个世界处于巨变之中,科学也不能置身之外:Transformer炸了个世界天翻地覆;2023年10月的Chatgpt 3.5摧毁了多少NLP的青春,掠去了多少软件工程师的信心;2024年年末Deepseek的横空出世连同哪吒2的一骑绝尘让我们过了一个扬眉吐气的年,同时宣判了中美AI领域的平起平坐,也几乎宣判了传统软件工程走到了历史的拐点:写软件,这个红火了30年的行业,何去何从。
作为生于70年代的软件从业人员,得到30年中国软件业发展的所有红利:不看人脸色,不陪人喝酒,不拍人马屁;衣衫不整,神情呆滞也可以升职,加薪,买房子。只需要做好一件事情:吃饭,打怪,写代码。这大概是个软件工程师完美的世界:伴随互联网的蓬勃发展,软件这个行业从未达到饱和。历史的转折从特朗普的制裁开始,接着是疫情,然后是真正AI时代的来临。经济在狂飙了40后刹车减速; AI奇点的出现带领着工业时代大调头(AI红的发紫,创业不说个AI拿不到投资;论文跟AI沾边门槛都会降低); 软件这个行业的裁员浪潮势不可挡的来临,大厂亦不能幸免。我们的房贷怎么还?我们还能干点什么挣钱养家?这是个令软件工程师毛骨悚然的竞争对手:在提示词的引导下,AI可以独立完成一个项目从零开始的代码编写,测试,交付。关系到生成代码好坏的要素是你的提示词写得是否足够好,而不是你对Python,Java有多熟悉。提示词的优劣决定了AI回答你问题的含金量:如何将数学题变成语文题,一篇小作文可能就是AI新时代逆天改命的独门绝技。
这是一篇写给自己,也是写给所有AI时代软件从业人员的安慰信,建议书。
1. 码农挑战
谁说大模型的来临对软件从业人员毫无影响都是嘴硬。无论你是菜鸟还是老鸟,都被大模型的出现撞闪了腰。无脑码代码的时代肯定过去了。那么你是否相信AI时代的来临会毁了程序员,至少是初级程序员?即使是kent beck也在最初的时候对大模型感到了不适。他曾经写道:“我很不情愿地用AI试着写代码,发现它可以让我的90%技能被取代,但是,它可以让我剩余的10%技能放大一千倍。”
2. AI下优秀工程师的机遇
是哪10%让kent beck感觉到了价值?大模型拥有超强的任务分解能力,并对这些分解的任务逐一编码;同时我们也看到大模型对代码的抽象能力并不擅长(天知道明年这是不是就不再是它的短板)。那10%无疑是代码之上的抽象与架构能力:如何从上帝视角去看到自己要写的软件,让其架构更有先进性和扩展性。培养自己的架构师能力,组合大模型的分解编码能力,工程师们在AI的加持下,通过编写框架/架构代码加AI填空题的方式,有能力快速产出更多高质量的代码。那些不愿束缚在大厂小厂做牛马的同学们,如果你们一个人就可以完成20个人的编码工作。有没有可能怀揣上你天马行空的梦想,牵着你的AI小伴侣去创业闯天涯。
3. 编程范式转变
函数式编程,声明式编程,流式编程,响应式编程在一定程度代表了高端程序员的炫耀资本。我们为响应式编程摇旗呐喊,因为它干净利落的语法表达可以消除异步编程中丑陋的回调陷阱;可以让你IO流操作变得优美高效。可是叫好不叫座的它从来没有真正意义的流行起来。在下却想斗胆在此预言一下:大模型时代必须是响应式的时代,基于大模型操作的响应式编程框架必须问世。这个判断基于两个观察:
- 大模型时代的编程将围绕大模型展开,大模型天然流式输出。而响应式编程是处理流式输出的最佳选择,相对要关心how的交互式编程,只关心what的响应式编程是围绕大模型流式输出的最佳编程范式。
- 大模型与计算机系统的处理性能有本质的区别,即使大模型进步得再快,一秒钟吐出的Token数量再多,它的处理性能依然以秒为计数;但是IT系统的响应时长通常是毫秒,微秒,甚至纳秒。大模型与系统的Rate Mismatch会对引发Agent运行时的流控问题,从而提高设计Agent非功能性特性的复杂度。屏蔽流控问题,Back Pressure(背压/反压)应该成为大模型编程,特别是Agent开发的标配,这恰恰是响应式编程范式携带的天然属性。
同学们,要不要考虑一下用你们的业余时间研究一下响应式编程?参考:大模型下的响应式编程
3. 围绕AI的编程
从2024年开始,脱离AI的应用开发几乎要被贴上标签:你的应用不沾点AI,就像八十年代不穿喇叭裤一样土。如何在新的业务代码里带上AI的能力,如何在老业务代码里榜上AI是每一个软件供给侧,消费侧共同焦虑的话题。可是在这波浪潮中银子花了不少,产出不见得多。这应该是为数不多投入产出比如此之低但依然趋之若鹜的投资。因为这就是趋势!半点侥幸心理都不应该有,时代的列车轰鸣向前,再也回不去了。
AI发展的速度实在太快,今天说的话可能一个月后就失效。我只能截止今天去判断明天我的代码应该注意什么:
- Deepseek的开源使得蒸馏这件事情变得更简单,特别是QA变成QRA后,蒸馏的效果出奇的好。那么RAG模块应该会一定程度弱化其在大模型编程整体链条中的重要性。
- 企业开始越来越大量使用大模型去打通以前的信息断裂点,形成更智能的自动化。EAI: Enterprise Application Integration,这个30年都占据重要地位的方向,有了新颖有效的解决方案:Agent。Deepseek的思维链(COT)能力使得Agent的设计更简单,运转更聪明。那么Agent在大模型编程中的重要性会显著提高。曾经封闭的IT系统会经历一轮改造,更开放,安全的API会被公布出来接受Agent的调度。
- 传统编程依然重要,由于大模型的持续介入,大规模mono应用的开发需求变少,给Agent提供碎片函数能力的开发变多。由此产生的函数/能力热插拔能力,插件化框架平台能力要求变高。
4. 程序员还有用吗?
- 好吧,如果你是不愿意接受现实,不愿意寻求改变的程序员,那么你就是昨日黄花
- 但是,如果你拥抱AI,利用AI的优势让你的代码变得更强大,那么你就是如虎添翼