[ 当记者把“未来程序员职业会消失吗”这个问题抛给ChatGPT,它给出的答案是:这个职业的未来可能会发生变化,但不太可能完全消失。AI大模型的出现可以帮助简化某些编程任务,特别是在自动生成代码、自动化测试和优化等方面。这可能会减少一些传统编程工作的需求。 ]
日夜敲代码开发出大模型的那群人,要被大模型颠覆了?
“基本上说,以后其实不会存在程序员这种职业了。”不久前百度董事长李彦宏在一次电视节目中大胆预测。
类似地,近日英伟达CEO黄仁勋也在公开场合再次提起“编程无用论”,“你只需要看看YouTube,看看所有使用提示工程(prompt)的人,所有孩子正在用它(AI)做出惊人的事情”。
360董事长周鸿祎对此并不认同。他很快反驳并预测:程序员热十年内不会减弱。“尽管未来人人都会用电脑,所谓人人都是程序员,但不同的人用电脑创造的产品完全不一样,AI时代更需要计算机专家和程序员,他们可能是各行各业最有发言权的。”
就在业界展开辩论之际,3月12日晚的大洋彼岸,初创公司Cognition发布了首个AI软件工程师Devin,它目前尚未公测,但根据官方的报告,只需一句指令,就可端到端地处理整个开发项目。
加速发展的AI,或许某一天真能替代程序员?
第一财经记者采访了中美多名身处一线的程序员。他们普遍表示,尽管未来的危机感隐隐出现,但目前并不强烈。一些程序员认为,目前体验的AI离解决复杂问题还差得远,他们更多地将AI视为一个高效的“搜索引擎”。
“现在AI还没有到那种程度,等到什么时候百度不招程序员了,或许AI就可以(代替)了。”大厂程序员徐天对第一财经记者说。
程序员革程序员的“命”
李彦宏的观点并非没有依据。用AI生成代码已经应用在百度的工作流程中。去年11月的一次公开场合,他曾透露目前百度有20%的代码是由AI来完成,并且这个比例正在不断增加。
黄仁勋也从技术演进角度做了进一步解释:在未来的10年里,英伟达将会把深度学习的计算能力再提高100万倍,从而让AI计算机不断训练、推理、学习、应用,并持续改进,未来不断将超级AI转变为现实。
ChatGPT推出至今,AI究竟能帮助人类程序员做什么?
多名程序员告诉第一财经记者,以往用谷歌等搜索引擎寻找解决方案,但问GPT3.5或GPT-4,可以在一分钟内解答,并且很多答案质量比搜索引擎搜索更好。自ChatGPT推出,大模型就开始替代人工检索。
作为大厂一线的程序员,徐天现在每天都会用AI。“写代码的时候会用到很多库,有时候一些库忘了,这个时候可能懒得搜,就用比较大白话的自然语言先和AI说一下,我再从它的结果里找一些关键词去搜索引擎搜,就比较省力。”
从业8年的游戏程序员郑嘉也会在每周使用几次AI,他将其当作一个新型的搜索工具,能提高一些效率。
“比如之前我有一个功能会用到一个算法,要把一个公式写成代码,不想自己去再去推演一遍或者去查,就直接问AI能得到结果,可以节省很多时间。”
“在知识性问题上,GPT-4有不错的上下文理解能力,可持续追问,而不用反复用搜索引擎检索。引擎中的函数实现也能直接丢给GPT-4,GPT-4大概能理解并给出意见,数学运算也能给出精确解释。”周闻涛告诉记者,他是一名游戏开发者,自去年ChatGPT推出后就常用大模型辅助工作,并试探大模型能解决代码问题的边界。
据周闻涛判断,GPT还能协助方案设计,但无法解决技术细节的问题。方案设计后续还要跟各方对齐需求,这部分GPT无法介入。长文本理解能力也有问题,一个项目的代码库可达几百万行,新发布的Claude 3三个模型支持100万token上下文输入。若长文本理解能力不足,意味着AI无法完整给出适配于项目的代码。
“程序员的工作自上而下包括业务需求分析、架构设计、功能开发、测试、性能优化、安全性等。现在功能开发和测试已经能看到AI的影子,主要起到辅助作用,性能优化方面,大模型输出的很多代码便已经过优化。” 陈斯对记者表示。
陈斯在国内头部互联网公司工作,工作内容包括研究大模型应用落地,工作约6年来,所做工作从产品侧如何接入AI功能,到如今关注大模型应用, “或许未来有一天大模型能理解整个项目的代码也说不定”。
他认为,大模型在认知层面体现出来的水平,已经能辅助程序员和文案人员做很多工作了,例如写前端UI甚至写项目框架,广告文案素材也能生成具有吸引力的图片。
不过在写底层代码方面,AI目前能发挥的空间还十分有限。在硅谷工作多年的程序员Jason接受第一财经采访时说,自己负责的是较底层的算法代码,AI代码还很难提供工作上的辅助。
Jason认为,相比AI,人类更能够对于代码的结果把关,例如,在排查代码错误时,自己亲手编写的代码往往能够更快地定位问题所在,而试图理解并修复AI生成的代码中的问题,常常是一项令人头痛的任务。此外,他对使用大型AI模型编写代码持谨慎态度,还出于对安全因素的担忧。在借助第三方大型模型编写代码时,他担心可能会不慎泄露企业的商业机密。不过他依然认为,长远来看程序员这个职业确实有可能会因AI而消失。
火石控股董事长、风险投资人吴渔夫也在思考程序员的职能变化,他投资或孵化了一些互联网和游戏团队,也做过游戏制作人。
他对记者举例,在游戏研发技术小组里,有三个等级的程序员,初级程序员会负责游戏中的活动和宠物系统等小系统编写,很多代码已经能用AI生成,低级程序员会被取代掉一部分。中级程序员会写战斗系统、经营系统、核心玩法等,难度较大,AI还做不到。而高级程序员做核心引擎优化,以提升游戏运转效率,例如游戏同服超2万人时如何优化运转,程序员有时还要通过汇编语言优化内存,AI难以替代程序员优化内存、优化引擎和代码的工作。
“程序员需要会用AI快速辅助写代码,形成自己的工作流,并将自己的精力放在更高等级的编码上,这是程序员的必经之路。如果做不到这样,公司会请能达到要求的程序员去替代他。”吴渔夫表示,就像20年前会开车的人不多,司机相对稀缺,如今会开车的人越来越多,市场需要的则是专业的司机。“未来市场需要的是程序员去完成更难的代码。”
无法替代人类同事
如果把AI想象成同事,能够替代人类程序员,郑嘉、徐天等程序员们认为现在的AI还远称不上合格。
例如,作为观点的另一方,周鸿祎认为,自然语言没有办法做到精准描述。他举了个例子,“我们人跟人之间沟通,比如产品经理将需求告诉程序员,程序设计师将想法告诉工程师,老板布置一个任务给公司CTO,这里面语言上还经常出现误解,理解得大相径庭,做的东西也不是所要的”。
他认为,当人真的要准确地和计算机打交道、要准确描述做一个什么东西时,可能最精准的还是一种严格符号化的语言。这也意味着懂编程的程序员同样重要。
郑嘉对此深感认同。“拿你的想法和人类沟通,人类都不一定能知道你心里面想要什么,更何况机器?”他表示,如果是问AI一个公式或者一个理性的问题,它或许能给出一个最优解,但是非确定性的问题,AI给的不一定是你想要的,很有可能是大相径庭的结果。
“比如做游戏,你要写代码去展示这个游戏怎么玩,部分地方要带给玩家不一样的感受,要通过代码去触发一些东西,让整个游戏不管从视觉还是听觉上,整体给人一种很惊奇的感受,AI理解不了你想表达的意思。”郑嘉认为,现在的AI还完全不能替代编程,尤其是大部分编程都是和业务紧密嵌合在一起,AI理解不了。
退一步来说,即便某个策划能够理解游戏的视觉、听觉或玩法的一些创新,想要AI去执行完成这些创新,也并不简单。
徐天则认为,大模型虽然对AI编程有帮助,但离解决复杂问题还是有很长的距离。
徐天表示,直接提一个比较宽泛的事情让AI做,那AI能做到的应该还差得很远,但如果自己已经有很清楚的思路和步骤,可以试着一步一步翻译给AI听,没准可以搭积木一样慢慢搭起来,“前提是你有需求,而且你已经把这个问题拆得很细了,其次你需要想好每一步怎么向AI表达可以让它听懂。”这个搭起来的过程其实也需要程序员本身有一定能力,并且最终是人来判断AI的回答是不是准确的,AI只是变成了解决问题的工具。
在他看来,虽然现在很多人都在用AI,但用好的人少之又少,目前阶段来说, “我感觉大部分人来说可能还是偏新鲜感多一点,甚至更像是玩具的一个存在”。
程序员职业未来会消失吗
虽然不能解决复杂问题,但AI会不会能够取代一些基础编程的程序员?当记者问到这一问题时,郑嘉表示:“放心吧,AI还没出来,这种程序员就会被淘汰了,因为现在行业里‘卷’的程度也和AI差不多了。”
他同时承认,AI确实会让行业门槛变低,提高工作效率,“我觉得如果真的会被AI淘汰,应该不是说被AI给取代了,而是因为不会用AI被淘汰了。”
周闻涛认为,业务逻辑的代码并不难写,像这种堆人力而不依赖创造力的工作,AI最容易替代。但程序始终需要有人负责,特别是监督AI不要犯错或纠正AI的错误,这部分工作依然依赖人类程序员。”
陈斯则判断,功能开发、测试和性能优化三个环节的工作,未来极大可能会被替换掉,但业务需求分析、架构设计仍是复杂工程,至少在现阶段,AI难以满足业务实际需求。而AI本身的开发者,仍有改进AI的职责,则不会被替代。
当记者把“未来程序员职业会消失吗”这个问题抛给ChatGPT,它给出的答案是:这个职业的未来可能会发生变化,但不太可能完全消失。AI大模型的出现可以帮助简化某些编程任务,特别是在自动生成代码、自动化测试和优化等方面。这可能会减少一些传统编程工作的需求。
ChatGPT同时认为,程序员的角色不仅仅是编写代码。他们还负责设计软件架构、解决复杂问题、与团队合作以及理解客户需求等任务。这些任务需要创造性思维、逻辑思维和人类智慧,而目前的AI技术尚不能完全取代这些方面。因此,虽然AI大模型可能会改变程序员的工作方式,但是程序员仍然会继续发挥关键作用,并且需要不断适应新技术的发展。
对于程序员之于未来的重要性,周鸿祎也给出了三个理由。首先,未来这个世界将会被软件重新定义,需要更多计算机专家和程序员来实现。其次,大模型爆发,对程序员人才的需求会越来越大,AI时代意味着更多计算机人才、数学人才的缺口。另外,未来一定是跨学科、跨领域的跨界人才带来更多想象力和冲击力,他认为,最佳组合是人工智能+生物学。
陈斯认为,程序员的很多工作被AI替代,并不意味着整个行业没有好工种。在很多案例中,新生事物未必替代传统时代,就像移动互联网并未替代传统行业,而是提升了效率,程序员可以拥抱AI并适应改变。
周闻涛则表示,未来或不是只有AI替代程序员这个趋势,对留下来的程序员而言,更应该面对的是越来越高的要求。当AI能完成更多工作、加快更多流程,人类程序员更应该做上层的思考和设计,凸显自身价值。AI提升效率也不意味着人类程序员的工作会更加轻松,市场竞争会加快业务迭代速度,程序员的工作仍面临挑战。
(郑嘉、徐天、陈斯、周闻涛为化名)