← Dwarkesh Podcast

Uncle Bob: 代码的长臂

Uncle Bob - The Long Reach of Code

第2020-11-28期2020-11-28简体中文会员内容

嘉宾:Uncle Bob

收听本集00:00 / 45:50
阅读设置
按你的习惯阅读
正文字号
下载播客精读
把这一篇,带走慢慢读

中文 · 精读 · 当前版本

下载功能还未开放

正文语言

精读 · 按主题梳理核心观点、论证与案例。

§01GPT-3 会让程序员失业吗:一个干脆的「不」

节目从 2020 年那个显而易见的问题开场:GPT-3 刚由 OpenAI 发布,看起来能写出一些基本的方法——比如判断回文——因为它是在大量 GitHub 仓库上训练的。那是否意味着编程的未来就是自动化?Robert Martin 的回答是一句干脆的「不」,理由不是对机器学习的谦逊,而是一个关于「编程是什么」的论断。

要复制编程,你需要一台像人那样编程的机器——而这意味人类意识。而我们离那种机器还非常非常远。为什么需要意识?因为必须有人来规定程序将如何工作,而那份规定实际上就是程序本身。任何别的规定都不够。

§02规格就是程序:程序员是细节管理者

业务用户写出一份粗略的规定,然后依赖程序员的人类直觉与人类智能,去填满业务人员省略掉的所有可怕的小空白。他说,程序员是细节管理者;他们处理所有混乱。正是他们去应付「文本文件有时用换行符结尾、有时用反斜杠序列结尾」这种事——原因可以追溯到五十年前的电信打字机、Unix 和 DOS。

正是他们写那些愚蠢的小 if 语句,去处理没有哪个业务人员愿意想一想的古怪例外。如果我们要造一台能处理所有这些的深度学习机器,我们会得到一台 HAL 9000——某种具有人类智能的东西。而我们离那太远了,所以「某台深度学习机器终将夺走所有程序员的工作」这个前景,一点都不让他担心。

§03我们一直在与机器结对编程

Dwarkesh 重新框定问题:不是替代,而是共生——开发环境先进到你是在与机器一起工作,而不是在机器上工作。Martin 的回答是,这就是编程的整段历史。最初的程序是用二进制写的:图灵在自动计算引擎上工作时,真的用二进制写,因为当时没有语言。然后我们造出了汇编器。想想汇编器相对二进制的收益——那些你必须做的可怕的二进制算术,再也不用做了,你可以用符号形式写代码。那已经是巨大的

优势。然后 John Backus 带着 1953 年的 Fortran 规范出现,相对汇编语言又是巨大的优势。ALGOL 很快跟上。到 1966 年,Ole-Johan Dahl 和 Kristen Nygaard 发明了对象——那是图灵用二进制编程二十年之后,你有了第一个面向对象语言。C 在 68 年出现,C++ 在十二年后出现。我们有了这一连串对程序员帮助极大的进展。然后在九十年代后期,我们的工具里开始出现那些疯狂的东西:IntelliSense、重构工具、检查器、重复代码查找器。

好对话,值得读完整。

免费试读到此结束。开通书架会员,继续阅读全文,解锁中英对照与电子书下载。