说AI取代程序员怕是为时尚早
人生苦短,不如养狗
作者:闲宇
从ChatGPT横空出世之后,关于程序员即将被取代的言论就一直甚嚣尘上,尤其是在近年来人工智能愈加火热而互联网呈现疲软态势的情况下,这样的言论貌似有愈演愈烈的态势。但是在我尝试使用ChatGPT零基础开发一款iOS应用近三个月后发现,说AI取代程序员怕是为时尚早。
教学意义大于工程意义
这样一个问题对于绝大多数使用过类似AI助手工具的朋友应该深有体会:当你描述完一段需求逻辑之后,ChatGPT更多的是给出一段demo样式的代码使用案例,而这段代码绝大多数情况起到的是相关API或者SDK的使用演示作用,对于实际的业务来讲,还有更多非逻辑的问题需要处理,比如分布式情况下数据一致性问题、耗时逻辑是否应该变更为异步流程问题、业务流程异常处理/补偿机制等等。这就导致了这样粗糙的代码并不能直接的放到项目当中使用(当然也不排除胆大的朋友)。当然也有的朋友会说是我在一开始没有讲需求和逻辑提清楚,可问题是我们的目标不是奔着取代开发无脑AI吗?我这全给你考虑全了,我还要AI干个锤子。而且这样明确清晰的开发思路你指望一个完全没有开发经验的人能够提出来?朋友,我怀疑你不是为了省事,你怕是来搞事的吧!
而对于零基础学习和使用一门语言的朋友,目前的AI助手一定是非常优秀的教学助手,你可以在完全不清楚这些语言基础的情况下通过ChatGPT抄一个demo出来,并且这个demo还会有非常详细的解释。在这个过程中你实践了,你理解了,你收获了,而当这个过程反复出现之后,你甚至可以自行使用对应SDK解决可能出现的场景。虽然你可能依旧不太理解其中的一些语法,不理解代码运行的机制和原理,但是没关系,此时的你已经走出了 独自(alone) 开发的第一步,即你入门(keng)了。
教人开发应用不如直接成为应用
其实在使用ChatGPT开发的过程中,我一直在想一个问题,为什么我想要一个功能一定要开发一个应用呢?为什么AI不能直接给我提供这样的功能呢?毕竟没有哪家老板让助理冲杯咖啡是让助理教会自己怎么冲咖啡,然后后自己动手冲咖啡的吧,不应是动动嘴皮子然后咖啡就来了吗?
因此,我个人觉得无论是从取代程序员的角度,还是能力提供的角度,当前的AI多少有点问题。容我细细论(hu)证(che),让我们思考一个问题:到底是应用满足了我们的需求,还是应用提供的这些能力满足了我们的需求?答案一定是后者,毕竟同样的能力我可以放到A应用当中,也可以放到B应用当中。也就是说能力和应用并没有必然的相关性。那么作为程序员的我们是如何实现这些能力的呢?通过编写代码的方式告诉计算机这一个又一个能力的具体执行逻辑,然后让计算机通过硬件能力来完成这些功能。推理到这里,好像程序员的地位依旧无法取代,但事实是这样吗?让我们尝试抽象一个这个过程,某类人通过某种语言和机器沟通说:“老哥,我这有个功能XXXX,需要你帮忙实现一下”,然后计算机毫无怨言地完成了这样一个功能。这样一想想,程序员不就是有感情的翻译工具吗?难道AI就不能直接完成这一步吗?话说机器和机器沟通不应该是更简单的一件事情吗?这样又一想想,我需要那么多花里胡哨的应用干个锤子,你AI根据我说的实施调用各种硬件能力直接实现这些能力然后聚合成一个超级应用不就完事了?现在这种左一个应用、右一个应用的,不仅是开发费劲,用户也费劲啊!
总结
综上,AI取代程序员这样的言论还是有点早。但是我还是非常希望这一天能早点到来,不要让我再学这个语言、学那个技术了,很辛苦的。