> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/zh/2023-nian/w11-wu-shi-zhu-yi-gpt-de-neng-yu-bu-neng-lun-dui-ruan-jian-kai-fa-de-ying-xiang.md).

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

### 务实主义的立场 <a href="#a1fb1ea1-fa48-44d0-bb65-5ec80413109a" id="a1fb1ea1-fa48-44d0-bb65-5ec80413109a"></a>

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

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

### 从Copilot能看出什么 <a href="#ce593370-e50e-4f6b-b33f-14d7e22a2eac" id="ce593370-e50e-4f6b-b33f-14d7e22a2eac"></a>

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

**擅长的**

* 解放枯燥、重复劳动。如一次性脚本、CRUD、单元测试等。
* 新领域的学习和探索。如用新语言、框架、库等快速上手。
* 机器的优势。如写正则、SQL、CronJob等。

**存在限制的**

* 安全问题。公司内现在就禁用了。
* 著作权的问题。由于Copilot推理出来的代码片段来源于Github中的某个开源项目，所以会涉及到license相关产权问题。
* 准确性问题。比起搜索引擎，GPT给出的错误答案更容易让人相信。GPT推理出来的答案是倾向于生成理想的答案（plausible answers）而非正确的答案（correct answers）。

### 对软件开发的影响 <a href="#fe7a1851-1071-4294-9dd3-9490d96308a6" id="fe7a1851-1071-4294-9dd3-9490d96308a6"></a>

**编码方面**

* 技能和学习方式需要升级。需要具备更加深入的计算机基础技能，比如编译技术。对于数据结构和算法，框架和第三方库的 API 如何调用，这些知识和技能已经非常容易获取，刷得熟练不见得是竞争力了。
* 需要积累更多业务相关的知识，增强对业务的理解力和洞察力，提升自己在技术方面的创造性。编写应用程序的重点，可能不再是写代码，而是通过人工智能，训练出能够反映领域特点的模型。

**架构方面**

* 架构师本质是业务和技术的桥梁，核心职责是深入理解业务需求，然后判断业务需求带来的系统复杂度，然后设计备选方案来应对或者降低复杂度，最后基于各种情况来做取舍。
* 业务需求本身的差异性无法训练。比如不同的部门、不同的团队去做同一个产品，产生的需求是不一样的。
* 架构设计过程中的判断无法标准化。架构师要根据利益干系人的诉求、团队的技术进程、业务的发展情况来做判断和取舍，这些事情不能标准化也不能被训练。
* 技术本身在不断演进，架构过程需要创新能力。ChatGPT能创造出革命自身的下一代产品吗？目前的判断是不行。
