能部分代工,但不能完全取代程序员 ChatGPT具备基础的代码能力,而且写起来速度更快。不过,如果真的把ChatGPT放在程序员的工作场景中,它还是暴露出了不少局限性。先说写代码这一基础环节。几位程序员的共同体验是,让ChatGPT写一些基础的脚本,为网页写一个功能,指导完成小程序的开发,从技术角度来说都是可行的。但是,“它只能写代码片段,不能写完整的代码。”阿晨解释,“可以这样理解,比如我想生成一个word文档,但ChatGPT只能生成一个文字形式,我如果需要两个word文档,它还是只能给我一段文字,要生成文档我还需要手动拷贝到office软件进行人工处理,而且ChatGPT是有字数限制的,最多15000个字符。”阿晨认为,只从写代码这个层面来说,不能写一个完整的程序是ChatGPT最大的劣势,因为开发人员是需要有把控整个框架的能力的。有人曾这样形容程序员工种的不可替代性:“程序员的核心竞争力不在于写代码,而是在于跟各种人扯皮,斗智斗勇。”实际上,在业务场景中,不管是前端还是后端,测试还是运维,程序员工作中最困难和耗费时间的是需求转换,测试、修改。简单来说就是明确公司要什么,然后做出来。这一项需要大量人类经验和创意的工作,ChatGPT目前还很难完成。阿晨举例,他们做的是健康管理类的APP,里面需要有一些减肥菜谱,这种菜谱之间存在一定逻辑,“如果让ChatGPT帮我实现一个菜谱查询的功能,它不知道这个减肥菜谱是怎么插入数据库、怎么调出来、工作人员怎么通过后台维护,需要我把步骤跟它讲一遍,但这样的步骤等于是我自己已经把代码的框架写完了,它只是帮我实现框架里的内容填充。”让ChatGPT理解业务,目前来看显然是一个伪命题,所以程序员在日常工作中最耗时耗力的那一部分,很难被取代。不仅是具体的业务难以理解,涉及一些复杂的极端的生产活动,ChatGPT也只能从自己的数据库中归拢总结一些“漂亮的废话”。樊高说,比如向ChatGPI提问“k8s中的Workload Type有哪些”,这个问题很基础,一般是用于面试程序员的,ChatGPT能非常完整地作答。“但是如果问‘如何做双十一淘宝的下单功能,让它支持54万/gps?’,它只能列举采用分布式架构、采用缓存技术、使用负载均衡、数据库优化、代码优化这几点。”樊高认为,这只是一个模棱两可的,没有给出具体模型理论和实操价值的答案。“而我们现实生活中的一些业务场景,只能使用人脑去探索和解决,这也是程序员的工作。解决这些专业性强,跟随市场变化的问题,人脑甚至都很难给出完美答案,AI暂时更是无法代劳。”“各行各业都有一些拧螺丝的工作,一般都会交给实习生或者刚入门的人员来做。在我们的工作中,比如设立一个技术方案,需要有人去具体地把它实现,但这个crud(数据库的增删改查)就比较无聊和繁琐。类似这种已经设计好了,只需要执行的工作,以后完全可以交给AI来做。”国内某大厂程序员阿冬认为,这种来自AI的‘侵入’是个好事,“能被AI替代的工作,本来我就不想干了。这些没有创造性的工作由AI接手,正好能让我有精力做更多有意思的事情。”从事基础工作的“底层程序员”也许会感到一丝凉意,前美的集团AIoT算法负责人连诗路告诉深燃,高阶程序员,也就是“大牛”是很难被取代的。“拿开发一个ChatGPT来举例。在搭建这个模型的时候,大牛会提出,第一个环节要用supervised deep learning(有监督的深度学习),而且用的是GPT3这样一个成熟的模型。”他解释,搭建框架的这拨人很难替代,原因就在于如果一个没有足够开发经验的人,万一把损失函数放到第一步,优化损失函数值的空间会极低,那对结果来说就是南辕北辙。“我认为底层程序员做的事情就是,大牛已经告诉他用什么框架,告诉他如何调整dataset和参数的大小,他只需要引入,写一些固定的代码即可,这部分ChatGPT就会做。这一拨人已经产生不了更高的价值,或者说这一拨人的价值会被ChatGPT替代。”“山脚下很挤,山腰上人少一些,山顶上就能呼吸到新鲜空气了。”连诗路说,归根结底,有顶层设计能力,并且能够发现和解决问题,创造新的生产力的程序员,才会在ChatGPT面前更加从容和自信。