从Stack Overflow到AI时代的开发者工具演变
评论文章回顾软件开发工具的历史演进,反思AI对开发者生态的影响。
评论文章回顾软件开发工具的历史演进,反思AI对开发者生态的影响。
一场关于编程史的讽刺之旅。
欢迎来到软件开发博物馆。
请勿触摸展品。
这里陈列的某些技术十分脆弱、很不稳定,却不知为何至今仍运行在银行的生产系统中。
今天的参观路线包括:论坛时代的开发者 → Stack Overflow 时代 → 框架扩张时代 → 教程繁荣时代 → 资深开发者 → AI 时代 → 消失的仪式 → 从未改变的开发者。
第一件展品就在下面。
在这里,我们看到了一位已知最早期的程序员,正身处其自然栖息地。
那是 phpBB、vBulletin 和 Usenet 新闻组的黄金年代:每个编程问题都会开启一个帖子,而每个帖子都是一场冒险。
请注意周围的环境:
论坛时代的开发者主要依靠社区精神,以及偶尔直截了当的重定向存活下来。提问通常会得到这样的神圣回应:
“发帖前请先搜索。”
资深开发者应该认得它未经和谐的版本。
或者更高级的版本:
“重复主题。已锁定。”
历史学家认为,许多初级开发者正是在这个时代站稳脚跟的——他们只是阅读了成千上万个归档帖子。答案早就在那里,你只需要花四十五分钟一页一页地翻过去。
啊,没错。集体知识的黄金年代。
请小心靠近。
大约在 2008 年,Stack Overflow 把获取编程帮助这件事,从散落各处的论坛考古,转变成了井然有序的集体受难。
这个文明凭借一项革命性的发现,实现了前所未有的技术进步:
“在你之前,已经有人遭过这份罪了。”
Stack Overflow 时代的开发者并不会以传统方式解决问题。相反,他们会执行一套神圣的四步仪式:
“拜托现在还能用。”
请注意这台保存完好的工作站。研究人员从中找到了:
一种非常有趣的行为是:即使面对以下场面,他们也能纯凭直觉识别出正确的 Stack Overflow 答案:
经验丰富的开发者似乎总能知道该复制哪一个。科学至今无法解释这种现象。
截至 2021 年,Stack Overflow 已经为开发者提供了超过 500 亿次帮助。集体受难化为了集体智慧。
而那段岁月,辉煌无比。
大约在 2013 年,前端生态进入了历史学家如今所称的:
“用十七种不同方式重复开发同一个应用的时代。”
靠近这件展品时,请保持冷静。
这个时期的主要特征,是框架飞速演进,以及轻微的心理耗竭。
一位开发者可能只是休了个假,回来后便发现:
“为什么你所知道的一切都是错的”
如今,即使是简单的网站也需要:
不同的社区围绕彼此竞争的理念逐渐形成:
React 开发者认为一切都应该是组件。
Angular 开发者认为一切都应该是一张企业架构图。
Vue 开发者原本只想开开心心地写代码,直到有人开始询问它的可扩展性。
一个在 2014 年还被视为革命性突破的框架,到了 2017 年便会被称作“遗留技术”。
考古学家至今仍在现代前端技术栈的地层下,挖掘那些被遗弃的 monorepo。每一个仓库都讲述着一个关于乐观、野心和失败迁移计划的故事。
这个展厅献给那些未完成的梦想。请放低音量。
玻璃展柜中保存着一些 GitHub 仓库,它们的名字包括:
netflix-clone-final-v2-REAL
startup-idea-v3
ai-app-new-new
todo-app-final-FINAL
其中大多数都包含一套坏掉的身份认证流程、至少一个已经过期的 API key,以及一份只写着下面这句话的 README:
“还在做。”
随着在线学习平台让全球数百万人都能接触软件开发,教程时代就此诞生。这是人们第一次只凭好奇心和网络连接,便能以低得惊人的门槛开始构建真正的应用。
研究人员后来发现了一种反复出现的成长症状,通常表现为:
“20 分钟构建 X”
许多开发者相信,只要再看一个教程,自己就能终于“成为真正的开发者”。
奇妙的是,这种想法并非完全错误。
现代历史学家已不再将本展厅中的这些仓库归类为失败作品。如今,它们被理解为实验、坚持和技能形成早期阶段的历史遗物。
这里记录的不少开发者后来都成为了高级工程师,尽管他们中的许多人,至今仍在桌面某处保留着一个名为 final-final-v2 的文件夹。
你可能注意到了,这个展区看起来空无一人。
在那里。
角落里。
资深开发者通过尽量减少移动和积极进行模式识别来保存能量。研究人员认为,他们已经目睹同一种行业趋势循环了大约四次,只不过每次的包装和名称不同。
他们的常用语包括:
“这个服务是谁写的?动它之前先问问那个人。”
“2016 年的时候,我们尝试过类似的东西。”
资深开发者拥有几种不同寻常的能力:
当有人向资深开发者介绍一个“革命性的新 JavaScript 框架”时,他们通常会问:
它的 bundle 有多大?
两年后它还会存在吗?
研究人员起初误以为这种行为是消极。
后来,它被重新归类为经验。
请谨慎前行。
这件展品正在实时演化。
几十年来,开发者一直在互联网上寻找答案。
后来,答案开始回话了。
现代开发者不再独自编写代码。如今,AI 时刻坐在他们身边:速度无限快、信心永不枯竭,偶尔也会错得极具灾难性。
请观察下面这套保存完好的 AI 辅助工作流:
Developer:
"Build me a scalable auth system with retry logic,
clean architecture, and proper error handling."
AI:
[creates something impressive and deeply suspicious]
Developer:
"Not like that."
AI:
[creates something different and equally suspicious]
Developer:
[accepts 73% of it, fixes the dangerous parts,
and ships to production]
几乎一夜之间,整类工作都发生了改变。
样板代码消失了。
记忆语法变成了可选项。
初级开发者开始用几天时间交付过去需要数周才能完成的功能。
取而代之的是一种新的技能:
知道如何解释自己真正想要什么。
Prompt engineering。沟通。上下文。清晰思考。
事实证明,这些东西比所有人预想的都更加重要。
资深开发者则以不同的方式适应了变化。他们的价值从快速编写代码,转移到了在细微的架构错误进入生产环境之前识别出它们。
有人这样形容这种体验:
“与一位读完整个互联网、信心无限充足的实习生进行 Pair programming。”
如今,整个 codebase 都能在一夜之间出现:
最终仍然由人类 review。仍然由人类做决定。仍然由人类在周五深夜部署 hotfix。
有些传统能够在每一次技术革命中幸存下来。
许多古老的惯例已经悄然消失。博物馆将它们保存在这里,供后人学习。
阅读文档。它曾被视为第一步。如今,人们往往要等到第三个 Stack Overflow 帖子和两轮 AI prompt 都失败后,才会尝试这样做。讽刺的是,文档其实已经悄悄变得好得多了。
记忆语法。现代开发者会询问 AI。平心而论,这大概没什么问题。
关闭浏览器标签页。大约在 2017 年被宣布为不可能完成的任务。至今看不到恢复的迹象。
“临时修复”。虽然名字里有“临时”二字,但 2014 年留下的几个临时修复至今仍在生产环境中运行,如今已经被视为承重基础设施。
凌晨两点部署。它曾是一项深受喜爱的传统:开发者心怀乐观,对后果抱着一丝淡淡的不以为意,在周五深夜将变更推向生产环境。尽管官方并不鼓励,但仍有人在野外目击这种行为。
有些仪式消失了。
另一些只是进化了。
尽管三十年来经历了剧烈的演化,不同时代的开发者仍然拥有相同的核心行为。
每一位开发者,无论来自哪个时代:
工具变了。语言变了。框架变了。AI 来了。
但开发者仍然是同一个人:凌晨 2 点 13 分坐在屏幕前,读着一条报错信息,思考着自 2008 年以来每一位开发者都曾想过的某种相同念头:
“互联网上肯定已经有人遭过这份罪了。”
确实有人遭过。
他们还给出了答案。
答案至今仍在那里,获得了 847 次赞,来自一个创建于 2011 年的帖子。
感谢参观本博物馆。
礼品店出售机械键盘、未完成的业余项目,以及印着“it depends”的马克杯。
你属于哪个展区?欢迎在评论区留言。
我会先在评论区说说自己属于哪一个。
部分评论可能仅对已登录的访客可见。请登录以查看全部评论。
如果需要采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。