后 ChatGPT 时代,写程式这件事将要灭绝了吗?

2023年5月20日

💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

这两天在 GitHub 上有一个开源隔天即破千颗星星的新专案 smol developer,又掀起生成式 AI 应用在程式开发上的新一波讨论。在工程师社群中,玩过 smol developer 的人,几乎都觉得它比 AutoGPT 更好用。所以 smol developer 是什么? 它跟 AutoGPT 有什么不同? 工程师可以如何用它来加速完成开发工作?

在往下读之前,推荐大家直接看 demo 影片,看完会更懂下面的分析在讲什么。在 demo 中,透过一个指令,smol developer 直接帮忙写出一个 Google Chrome 的插件,非常惊人!

特点一:极致发挥 10 万 token 数的强大

前几天号称 ChatGPT 最强竞争对手之一的 Anthropic Claude 发表了 10 万 token 数的上下文,而 smol developer 善用了这点,进一步做到过去做不到的事。在过去几个月,已经有许多人拿 ChatGPT 来帮忙写程式,但多半都只是一个函式,或一个元件;透过 10 万 token 数,smol developer 可以帮忙直接写一个完整的应用程式,而不只是一小段代码。

特点二:足够聚焦的场景,带来整合性更好的体验

AutoGPT 是以通用的使用场景出发,而且目前的介面受限于命令行介面,所以实际在用没有真的那么方便 (AutoGPT 团队目前正在开发 GUI,期待之后的发表)。但 smol developer 因为聚焦在程式开发的场景,搭配代码编辑器,用起来非常方便。

特点三:人机协作而非全自动化

smol developer 在开源专案中提到其定位是 Your own personal junior developer,意即他的存在目的不是取代工程师,而是让你有多个初阶工程师的帮手。比起 AutoGPT 指令下完后就全由 AI 下去思考与执行,smol developer 的做法是,让你当资深工程师,而它当你的帮手,所以互动起来会是它的初步产出后,你要帮忙做 code review,然后再进一步下 prompt 去让它优化成果。

实际玩了一下 smol developer,真的就像有了几个初阶工程师,能帮忙生出完整但不尽完美的产出,但在稍微调整一下后,就能有不错的成果。读到这边,你可能会想虽然 smol developer 是人机协作,不是全自动化取代人类,但这仍意味着「初阶工程师」将被取代,未来一个资深的全端工程师搭配数个 smol developer (或其他 LLM 辅助开发工具),不就可以直接顶替一个开发团队?

你不是第一个这样想的人。前几个月前哈佛大学电脑科学系教授 Matt Welsh 就在 ACM 上分享这个观点。他认为传统的「写程式」将在未来灭绝。读到这你可能心里会想「哪来又一个在贩卖恐惧、唯恐天下不乱的名嘴」,不过并非如此,虽然他认为人类写程式这件事会灭绝,但没有说工程师会因此不再被需要,只是会有另一波演化。为什么他会这样说? 他看待写程式的观点又为何,导致他觉得人类不再需要写程式? 让我们先从他的背景开始说起。

Matt Welsh 毕业于加州大学柏克莱分校博士班,是前哈佛大学电脑科学系的教授,他还在哈佛当教授时,脸书的创办人祖克柏是他课堂中的学生。在 2010 年他离开哈佛,转往业界发展,在 Google 当到首席工程师 (Principal Engineer)。当年辞掉哈佛的教授工作时,在学界与业界都掀起一阵讨论,也有不少媒体报导,毕竟世上有多少人恨不得能读哈佛,更不用说当哈佛教授,但他却选择辞去,由此可见他有着与一般人不太同的观点。

回到谈论写程式这件事,不像那些不懂程式却跟风乱喊 AI 将取代工程师的技术门外汉;在电脑科学与程式领域上,Matt Welsh 有超过十年的学术经历,也累积超过十年的业界历练,所以当他说「写程式这件事将要灭绝」,他不是随口说说。更具体一点来说,他认为会灭绝的「写程式」,是指传统由人用程式语言撰写程式这件事会灭绝。

所谓的写程式,不论是底层由 0 跟 1 来编写的机器语言,或是 Python 这类几乎像是英语的高阶语言,在做的事情不外乎是在对机器下指令,让机器做到你想做的事情。然而随着大型语言模型、生成式 AI 时代来临,人类与机器沟通的媒介,可以不再是程式语言,而是可以自然语言来跟机器沟通,而代码将转由机器来写。

假如代码由机器来写,难道工程师都要失业了吗? 非也非也。 Matt Welsh 认为在机器写程式的时代下,两种技能会特别重要,一个是产品经理的技能,换句话说能够清楚表达需求;另一个是 code review 的技能,意即能给予机器产出的程式反馈,进而生出更高品质成果。把这两点加起来看,简单来说,未来的好工程师,要有能当 AI 老师的能力。

其实这件事早已不是新闻,假如你对工程师的职涯发展有一定了解,基本上越往上升的工程师,越少时间花在写程式上面,越多时间会在需求厘清、技术规划,以及给予初阶工程师反馈。这也是为什么在工程师面试,越资深的工程师面试,越会着重在系统设计、行为面试,而不是代码的实作。而随着 AI 时代到来,好的资深工程师会越能彰显其价值。

总的来说,人用程式语言写程式这件,看起来不久将来的确可能消失。而工程师的工作内容会大幅往资深移动。因此,假如你现在还是初阶工程师,得要加速往资深迈进了!

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們