Language Service Protocol
曾几何时,我在 DOS 下写代码,蓝幽幽的背景上印着黄色文字,连关键字都不会高亮的代码编辑器叫做 Turbo Pascal ,这是我开始写代码的地方。学习深度优先,练习搜索算法,写各种界面和好玩的东西。代码提示是什么东西,当时是完全没有概念的,直到后来的 Delphi 7.0 和 Visual Studio 上的 Visual assets。
当你敲下代码,顺着代码跳跃出来的提示信息窗口提示着你写代码下一步可能会使用到的关键字或数据项时,已让当时的我雀跃欢呼,原来写代码这件事可以变得那么好玩。似乎不再需要去敲入一个个字符,也不用一个个函数去记忆,提示信息窗口足够富足的信息展示,让你只需要记忆少量的东西就可以把代码写好,写代码的效率自然有了提高。 后来微软制定了 LSP (Language Service Protocol) 协议,于是各种语言都迎来了专属的代码提示支持,这慢慢也成为了写代码的标配,在没有代码提示的编辑器中写代码,这是什么鬼新的折磨人的方式?
直到 20 年后,AI 出现了
写代码怎么着也不是简单的工作,我至少觉得不是。而在这个世界上越难去做的事情,就应该越难被淘汰。但偏偏 AI 在编程的领域被大规模的应用起来,这也许是程序员们天生就和 AI 走得比较近的原因。
于是现在写代码已经变成一项和 AI 的聊天工作,每天告诉 AI 今天我要完成哪些模块,然后把各模块之间的框架先让 AI 设计出来,继而生成出代码。然后各单元的细化和业务逻辑的填充也每天和 AI 一同讨论,然后让它生成出来。“生成出来”,是的。以前能做代码提示已经会觉得 IDE 非常智能了,而现在是一大段一大段的代码直接按照你描述的需求生成出来。
效率和被淘汰的人类
AI 写的代码,现阶段还不能说是完美,特别不同的模块之间的风格可能会是各式各样。你若介意你的代码是否健壮,那你一定会花上特别多的时间与 AI 一同改进代码,将公共代码提取出来,做成公共函数或者包,供其它的模块调用。其实写代码的逻辑没有变,变的只是 AI 在做而已,而你,通过使用 AI 可以更加快速和准确的获得需要的信息,写出代码。以前写代码,会花大量的时间查询各种各样的资料,而现在,你甚至可以把需要的资料喂给 AI,让它把资料读完后对代码中的错误进行修订。
优秀的程序员产出会翻数十倍都不止,而对于写代码没有什么追求的程序员,就会被淘汰。慢慢的,在未来若你不能掌控一个项目,你将会成为最早被淘汰的那批人。
我们要怎么办?
Ilya Sutskever,OpenAI 的首席科学家,最近回到他的母校,多伦多大学发表了一个 10 分钟的演讲。他简要说明了 AI 的基础运作方式和人脑的运作方式并没有什么区别,并且说未来所有的工作一定都会被 AI 替代掉,只是时间长短的问题。我们能做的,只能是尽早地拥抱 AI,使用 AI,让自己不要那么早被淘汰。
Elon Musk 曾经说过,碳基生物只不过是硅基生物的一段引导程序而已,你们真的不要太把自己当一回事。