AI程序员会让程序员失业吗?

前天百度创始人李彦宏还在说,以后的人,会说话就具备写程序的能力。昨天,英伟达CEO黄仁勋又说,不要再学编程了,机器会替代程序员。

但是在今天,首位AI程序员就诞生了。刚刚,一家叫Cognition的10人初创公司,才成立不到2个月,就研发出全球第一款AI程序员Devin。它可以掌握云端部署、底层代码、改bug、训练和微调AI模型。这让身为程序员的我突然瑟瑟发抖起来。我心想,难道我要失业了吗?忽然一想,哦,我去年就失业了,算了,不害怕了。

那么,AI程序员到底能不能写代码呢?他们官网的宣传片是否真实呢?

我们来验证一番吧。

假设我有一个需求,那就是将一个张图片从中间劈开,看看AI能不能写出来。

询问AI内容:请编写一段代码,将一张图片从左到右,一分为二,并保存为文件。

AI回复:

ini 复制代码
from PIL import Image

# 打开图像文件
image_path = 'img.png'  # 替换为你的图片文件路径
image = Image.open(image_path)

# 计算新图像的宽度和高度
width, height = image.size
new_width = width // 2

# 将原始图像一分为二
left_image = image.crop((0, 0, new_width, height))
right_image = image.crop((new_width, 0, width, height))

# 保存每个部分为新的文件
left_image.save('img_left_half.png')
right_image.save('img_right_half.png')

print("图像分割完毕,左半部分保存为 'img_left_half.png', 右半部分保存为 'img_right_half.png'")

代码写得不错,也有注释。下面,我们找一张图片试试。运行一下,它做到了。

如果这段代码让程序员写。做过类似功能的程序员,可能就是复制粘贴的时间。如果没做过这个功能,那可能要花上几个小时的时间去编写了。

再来实验一个功能。假设老板让我写一个功能,把用户上传的txt文档,转为Excel存储。那么,这个功能让AI写代码,效果会如何呢?

询问AI内容:请编写一段代码,读入一个txt文件,然后按行写入excel,列以空格拆分。

AI回复:

ini 复制代码
import openpyxl

def txt_to_excel(txt_file, excel_file):
    # 打开txt文件进行读取
    with open(txt_file, 'r', encoding='utf-8') as txt:
        lines = txt.readlines()

    # 创建一个新的Excel工作簿和工作表
    wb = openpyxl.Workbook()
    ws = wb.active

    # 逐行写入Excel,以空格拆分列
    for row_num, line in enumerate(lines, start=1):
        # 以空格拆分列
        data = line.strip().split()
        # 写入Excel行
        for col_num, value in enumerate(data, start=1):
            ws.cell(row=row_num, column=col_num, value=value)

    # 保存Excel文件
    wb.save(excel_file)

# 使用示例
txt_to_excel('input.txt', 'output.xlsx')

运行一下,查看效果:

果然是可以的。

随后我又试了几个,功能包括数据库读写,算法计算,文件处理,多线程,UI渲染等,这些功能AI都可以写出来。而且,100%可以流畅运行。

并且,对于bug的排查,AI也是可以轻松找出问题所在。下面是我故意写了一段运行有问题的代码。

交给AI排查时,AI这么回答:

看来,让AI写代码是可行的。其实,这也不是什么新闻了。早在ChatGPT 3.5训练完成时,开发人员就惊喜地发现了AI具备代码编写的能力。而这项功能,是出乎设计者的意料的,他们也没有想到。

一年多时间过去了,现在有创业团队慢慢地深耕这一个领域,算是作出一个垂直领域的成果。这也是在意料之中,只不过是个时间长短关系。

目前来说,AI程序员虽然能够编写代码,排查bug以及部署程序。但是它还无法完全取代现实的程序员。

因为编写代码不仅仅是机械的任务,还涉及到创造性的思考和设计。人类程序员能够理解业务需求、制定系统架构,并根据具体情境做出灵活的决策。因为许多软件问题是复杂的,需要深入领域知识,并提出创造性的解决方案。AI目前仍然还是个通用模型,难以处理所有领域和问题。比如,都是处理同一项计算,在金融和电力行业,规则是不一样的。

另外,软件开发通常是一个团队协作的过程,这涉及到与其他团队成员、客户或利益相关者的沟通。人类程序员具有良好的沟通能力和团队协作技能,这些方面的工作是难以被AI完全替代的。除非将一个巨大的任务,从上游到下游全都交给AI来做。显然,这是不可能的。

此外,软件开发领域不断发展,新的技术和工具不断涌现。人类程序员通常更容易适应这些变化。而AI程序员虽然也能进行学习,但是前提是先有这些工具,并且有了一定量的训练数据,它们才能学习。而且,在人类不指定工具的情况下,他们会更倾向于采用旧技术,因为这类技术的数据资料占比最大。

随着技术的不断发展,AI程序员会越来越智能,可以解决更多的问题,也会进一步提高开发效率。

但要完全取代人类程序员,目前看来仍然是一个遥远的未来。这就如同大家都会做饭,但是厨师依然存在一个道理。

相关推荐
舒一笑4 小时前
基础RAG实现,最佳入门选择(三)
人工智能
知识趣动4 小时前
AI 入门启航:了解什么 AI
人工智能
rocksun7 小时前
认识Embabel:一个使用Java构建AI Agent的框架
java·人工智能
Java中文社群8 小时前
AI实战:一键生成数字人视频!
java·人工智能·后端
AI大模型技术社9 小时前
🔧 PyTorch高阶开发工具箱:自定义模块+损失函数+部署流水线完整实现
人工智能·pytorch
LLM大模型9 小时前
LangChain篇-基于SQL实现数据分析问答
人工智能·程序员·llm
LLM大模型9 小时前
LangChain篇-整合维基百科实现网页问答
人工智能·程序员·llm
DeepSeek忠实粉丝9 小时前
微调篇--基于GPT定制化微调训练
人工智能·程序员·llm
聚客AI10 小时前
💡 图解Transformer生命周期:训练、自回归生成与Beam Search的视觉化解析
人工智能·llm·掘金·日新计划
神经星星10 小时前
从石英到铁电材料,哈佛大学提出等变机器学习框架,加速材料大规模电场模拟
人工智能·深度学习·机器学习