W11-务实主义:GPT的能与不能——论对软件开发的影响

务实主义的立场

更愿意支持偏好行动的务实主义者的观点。

正视现实,以发展的眼光去思考GPT如何影响软件开发,而不是能否取代人类。在终极命题上“打转”往往是空洞的。对悲观到放弃,或者乐观到无视的观点,都可以视作为懒惰。计算机的出现与流行足以称得上划时代,它所创造的东西远远大于所取代的,我们更应该关注生产要素的结构性变化给社会带来的切实影响。就像80、90后在小时候学习的心算、书法,已经不再成为当代家长的鸡娃项目。

从Copilot能看出什么

从Github Copilot、Tabnine 等IDE插件感受一下GPT的优劣

擅长的

  • 解放枯燥、重复劳动。如一次性脚本、CRUD、单元测试等。

  • 新领域的学习和探索。如用新语言、框架、库等快速上手。

  • 机器的优势。如写正则、SQL、CronJob等。

存在限制的

  • 安全问题。公司内现在就禁用了。

  • 著作权的问题。由于Copilot推理出来的代码片段来源于Github中的某个开源项目,所以会涉及到license相关产权问题。

  • 准确性问题。比起搜索引擎,GPT给出的错误答案更容易让人相信。GPT推理出来的答案是倾向于生成理想的答案(plausible answers)而非正确的答案(correct answers)。

对软件开发的影响

编码方面

  • 技能和学习方式需要升级。需要具备更加深入的计算机基础技能,比如编译技术。对于数据结构和算法,框架和第三方库的 API 如何调用,这些知识和技能已经非常容易获取,刷得熟练不见得是竞争力了。

  • 需要积累更多业务相关的知识,增强对业务的理解力和洞察力,提升自己在技术方面的创造性。编写应用程序的重点,可能不再是写代码,而是通过人工智能,训练出能够反映领域特点的模型。

架构方面

  • 架构师本质是业务和技术的桥梁,核心职责是深入理解业务需求,然后判断业务需求带来的系统复杂度,然后设计备选方案来应对或者降低复杂度,最后基于各种情况来做取舍。

  • 业务需求本身的差异性无法训练。比如不同的部门、不同的团队去做同一个产品,产生的需求是不一样的。

  • 架构设计过程中的判断无法标准化。架构师要根据利益干系人的诉求、团队的技术进程、业务的发展情况来做判断和取舍,这些事情不能标准化也不能被训练。

  • 技术本身在不断演进,架构过程需要创新能力。ChatGPT能创造出革命自身的下一代产品吗?目前的判断是不行。

最后更新于