正在生成图片...
正在生成图片...
新体验
AI辅助编程可分为同步和异步,异步类型的代表是devin,目标是把整个开发任务委托给 AI,人类扮演设计师和监工的角色。 类似于 Level 5 自动驾驶, 整个过程 AI全权把控。采用这一方式的产品在今天都还只是雏形,无论最终能否实现,还有很长一段路要走。
绝大多数的AI编程工具都在挤同步辅助这个赛道, JB 家族, VSCode, Zed, Curosr, Trae, Windsurf 都是在开发者编码的过程中提供协助。从早期 IDE的代码补全到如今 Cursor 的丝滑 Tab,交互变化只是表象,其核心始终都是对开发人员意图的推测,不同之处是后者利用大模型将推测能力提升了一个台阶。
如果只是更好地补全或重构,AI辅助编程的重点仍在“辅助”,再厉害无非也就是步枪变加特林,只是一件更趁手的工具罢了,还得要专业人士才能充分发挥其能力。
但 Composer 等 Agent 模式的编程工具切底改变了以前的开发方式,无论是不是噱头,今天你经常能看到“零基础小白上架了一款应用”,“从未学过编程的我也上线了一个网站”等类似标题的文章。这说明现在的 AI辅助编程不再是开发者独有的利器,开发的门槛被大幅降低了,只要具备一定的产品思维,能清楚地表达需求,越来越多的人会在 AI的协助下完成自己的产品。
目前 AI 还并不具备全自动构建复杂应用的能力,所以“零基础”开发者在构建产品这件事上虽然有人取得了不错的成绩,这种从 0 到 1 的构建主要还是集中在个人和较为简单的场景。但无论如何现在的 AI 在很多开发场景中已不能简单地被归为辅助角色了,尤其是对新手开发者来说,AI 更像是一个耐心的熟练开发者,带着自己一步一步完成开发,整个过程中自己才是Copilot。
新挑战
既然 AI 大幅降低了开发的门槛,专业选手的生存空间必然被压缩。由于新人的开发能力还局限在简单场景,产品针对的市场非常细分甚至只是个人需求,尚未与科技企业和独立开发者正面竞争,整体来说主要压力并不是来自市场这边。
对程序开发者来说,压力来自于被替代和无法适应AI带来的变化的忧虑。 AI编程在最新的评测中能力已相当于高级开发者,如果你对评测抱有怀疑,也可以参考Claude-3.5-Sonnet 带来的体感。看着生成的高质量代码,这种紧迫感是很强烈的。
AI 就像一把双刃剑,用得好的人能游刃有余,用的不好或适应不了的人逐渐会跟不上时代的步伐。
依赖症
自己在高强度使用了 Cursor 一个多月以后,患上了一种依赖症, 不易察觉但若 Claude 连不上反应会很强烈,以至于完全不知道怎么写代码。通常的缓解手段是暂时不写,等服务恢复后再继续。Cursor 带来的开发效率提升是明显的,但任由这种症状发展,我又担心自己会成为 Illiterate Programmer。
除了无脑 Tab, AI 一开始主要是帮我写正则、除虫和做一些重构,然后是生成各种函数,算法实现,现在我会直接让 AI 一并把设计决策做了, 留给自己的工作只剩下描述、提问和测试。
Vibe Coding 热
Vibe coding 由前 OpenAI 和Tesla计算机科学家 Andrej Karpathy 提出,作为硅谷大佬,Andrej 强调现在及将来最热的编程语言始终是英语,通过语言描述和一问一答的方式快速迭代出产品才是这个时代应该采用的方式,很快Vibe Coding 成为了硅谷新的流行词汇, Let’s vibe 也成了很多人的口头禅。这种方式的弊端也显而易见:初学者能够快速看到效果,但它可能会阻止他们去学习系统架构或性能相关知识。效率提升换来的是质量下降,技术债累计,开发人员不再思考导致技术债无法消除,甚至出现难以修复的 bug。
Vibe Coding + TDD
或许这才是 TDD 最好的时代,Kent Beck 在 20 多年前提出的这个概念是为了鼓励更好的设计和保证代码的质量——有测试覆盖的代码是安全的,而易于测试的代码是设计良好的。 但 TDD会需要额外的时间编写测试代码,这种付出的回报需要很长的时间才能观察到,测试覆盖率和短期开发效率的平衡一直是个难题,身背 KPI, 很多的开发者最终还是选择了短期效率。
AI 是 TDD 的解药,开发者编写测试的时间让 AI的代码生成能力找了回来,我们可以更加关注软件的设计和测试覆盖率,从而保证生成代码的质量。
推荐每一个开发者都尝试 Vibe Coding + TDD.
From Developer to Maker
开发的目的是构建产品,代码只是手段,如果质量的问题得以解决,我写还是 AI写有什么不同?是为了强调纯手工打造的“高级感”(为了产品上架时能打上“纯手工”或是“古法打造”的标签),还是内心不妥协?
最大的问题是,仅仅把代码委托给 AI 很难打造出有竞争力的产品。以前开发是开发者的专属权利,但现在很多人都可以做开发,如果开发者的优势只是在于效率更高一些,这种优势会越来越小。所以在把代码委托给 AI的同时还需要开发者做出其他的改变。
利用 AI 的速度,拓展自己的广度与深度
把代码实现交付给 AI 后,开发者得以专注在更高层次的设计和更关键的事务上, 后者才是重点。有了 AI, 我们可以快速构建原型获取市场反馈,还可以去做很重要但常被我们忽视或由他人代劳的工作,真正从代码细节中跳出来,实现技术商业两手抓。
这个时代很多的工作由于 AI 的介入会逐渐融合,不要再执着于开发者这个头衔。有人可以利用 AI 工具零基础开发产品,开发者也可以利用 AI 让自己更具竞争力。在代码之外广泛地摄取知识、理解商业、设计产品、关注用户、探索未知,这些以前需要很多人才能完成的工作,现在只需要很少的人甚至是一个人。
确定的是,AI 会进一步降低开发门槛,提升开发效率。出现大量同质化和粗制滥造产品的同时也会不乏很多充满创意的优秀产品。打造后者的人不一定是优秀的开发者,但一定是满脑子创意、善于独立思考还极具洞察力的创造者。
Professions come and go, only the maker remains.