大二下接近尾声,诸多课设“开发”任务的 Deadline 也开始逼近。java OOP 课程要求写一个聊天系统,我负责写客户端部分。客户端用的是 java swing (一门也许比我年纪还大的技术)进行开发。我翻了翻 Oracle 提供的 java swing 文档 —— 不出意料,我几乎很难看懂上面写的每一个字。于是,我转向 ChatGPT 求助。一开始,我只是向 ChatGPT 问问具体类的成员方法的用处之类的;后来我渐渐发现,只要我输入的 Prompt 足够细致,我可以让 ChatGPT 直接帮我生成一个窗口出来。java OOP 课程还布置了十道需要在 Online Judge 上完成的编程题,ChatGPT 能够直接正确的回答其中的七道题,另外三道题在我稍稍调整后也通过了 Online Judge 的评判。

就在昨天,我看见一位朋友写的数据结构课程设计的前端页面 —— 在我看来,写的挺像模像样的。本人身边的朋友多数不太喜欢做图形界面开发,所以我一直在“查找”身边的做过客户端或者前端开发的同学。经过一番交谈,我发现这位朋友的前端技术也是“速成”出来的 —— 这位朋友花了大约两个月的时间首先了解了 html,css,js 的一些大致开发功能,之后在 “B 站大学” 学习了一下 vue 框架的运作模式(为什么这些机构不愿意多录制一点 React 的教学视频?React 可比 vue 好学多了),最终,在 GPT 4 老师的帮助下,这位同学迅速形成了一套可行的,可用的,界面美观的前端页面

这使我感到有一些震惊,虽然我本人也是经常依赖 ChatGPT,可是我没想到 ChatGPT 竟然能使一位没有过前端开发经历的人在这么快的时间内做出来这么一套东西。回想起我第一次开发前端,一路上有无数的挫折……我现在还能想起来,2021 年 12 月,那时的我是多么困惑于 React 中的那个玄妙的“副作用”!(拜 B 站缺少 React Hook 的教学视频所赐!)

在没有 GPT 的帮助的日子里,我大约花了半年的时间(2022.1 ~ 2022.7)才大概理解了前端开发的一些要点,并且可以自己写出一些功能没那么复杂的网页(还必须有厉害的人能在旁边提点我几句,不然遇到问题就卡壳了)。之后,我又花了半年时间(2022.9~2023.5),理解了 JavaScript 重要的一些语言特性(单线程异步,原型链等),大致了解了一些“大前端”的开发框架(例如 Electron,React Native),又实际上手做了一两个比较完备的前端项目 —— 到这时,我才大概能够独立的开发出一点可以用的前端页面和基于前端工具链的一些应用。

而现在,有了 ChatGPT,前端开发变得更加的简单了,你都不需要对框架的细节有过多的掌控,你只需要大概的了解这个框架的核心概念(如果你不知道这些核心概念,那你就没办法写 Prompt 了,这个懒 ChatGPT 还暂时不能帮你偷),就可以役使 ChatGPT 帮你生成代码,你再调一调就可以把代码写出来了。ChatGPT,我想,他最大的好处就在于,他把我们从具体工程中的漫天文档中解救出来,让我们不用关心那么多繁冗的细节。在没有 ChatGPT 的时候,开发者形成对这些繁冗细节的良好理解力的最好的方式是积累开发的经验 —— 然而 ChatGPT 的出现正好让一个缺乏具体开发经验的人也能写出来一个不错的项目。

在这篇短文里,我也不想发出类似于“前端已死!”这样的感叹 —— 一来我的资历仍然还是浅薄的很,并不支撑我做如此论断,二来天天呼喊“狼来了”也纯属庸人自扰,徒引人发笑耳。

只是,ChatGPT 强大的功能,让我构想出第三次工业革命时期的一个画面:一位原本自得于娴熟操纵复杂机械的工人,看着一台袖珍的计算机用密密麻麻的电线向机械以一秒钟上万次的频率控制着机器,心中暗忖自己这几十年的“技术”算是白干了。