0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

扎心灵魂小拷问:有了AI编写代码之后,软件工程师会被AI取代吗?

北汇信息POLELINK 2024-05-24 19:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

软件开发者们有很多让他们焦虑的事情。他们最担心的不再是如何用他们最喜欢的编程语言(C、C++、Erlang、Java等)表达最新的算法。相反,这种担忧正逐渐被人工智能AI)所取代。

在这里,我们将探讨AI编写代码的过程,并回答这个问题:AI会取代程序员吗?

什么是AI代码生成?
近年来由于生成式AI使用的激增,在很大程度上是因为现在有足够的计算能力来运行深度学习算法,以及用于训练机器学习模型所需的大量数据的增加。

AI代码的生成是使用生成式人工智能和机器学习编写计算机代码的过程。

生成式AI编码工具正在改变软件开发的过程。但这样的进步带来了不确定性。随着AI编写代码,这对软件开发者意味着什么呢?

AI编写代码的未来
生成式AI的潜力已经在逐渐成形。AI正在改变行业,并准备加速创新。OpenAI进行的一项研究估计,生成式AI工具可能占据影响所有任务的47%,大大加快软件开发过程。

在Evans Data Corp进行的一项调查中,550名软件开发者被问及他们职业生涯中最令人担忧的问题。29%的人表示“我和我的开发成果已被人工智能取代”。

美国能源部橡树岭国家实验室的一个研究小组同意这一点。到2040年,机器学习和自然语言处理技术将先进到能够编写比最佳人类开发人员更好的软件代码,而且它们会做得更快。

牛津大学的研究“就业未来”警告说,随着机器学习的进步,软件工程师可能会变得计算机化,而软件设计选择将由算法优化。

软件开发,特别是在安全关键行业中,需要确保高代码质量,以满足功能要求。

所以,如果AI正在开发代码,那么代码应该是无错误和问题的。这也包括AI在软件测试中,因为它应该能够以人类不太可能配备的可靠性去检测出编码错误。

如果您确实有AI编写代码,请确保通过使用静态代码分析器来验证它是安全、安全和可靠的。

AI编写代码是否可能?
AI可以编写代码。

早在2015年,Andrej Karpathy就运行了一个使用循环神经网络生成代码的项目。他用GitHub的Linux存储库(所有源文件和头文件),将它们合并成一个巨大的文档(超过400MB的C代码),并用这个代码训练了RNN。

这是它产生的:

/*
* If this error is set, we will need anything right after that BSD.
*/
static void action_new_function(struct s_stat_info *wb)
{
unsigned long flags;
int lel_idx_bit = e->edd, *sys & ~((unsigned long) *FIRST_COMPAT);
buf[0] = 0xFFFFFFFF & (bit << 4);
min(inc, slist->bytes);
printk(KERN_WARNING "Memory allocated %02x/%02x, "
"original MLL instead\n"),
min(min(multi_run - s->len, max) * num_data_in),
frame_pos, sz + first_seg);
div_u64_w(val, inb_p);
spin_unlock(&disk->queue_lock);
mutex_unlock(&s->sock->mutex);
mutex_unlock(&func->mutex);
return disassemble(info->pending_bh);
}

static void num_serial_settings(struct tty_struct *tty)
{
if (tty == tty)
disable_single_st_p(dev);
pci_disable_spool(port);
return 0;
}

static void do_command(struct seq_file *m, void *v)
{
int column = 32 << (cmd[2] & 0x80);
if (state)
cmd = (int)(int_state ^ (in_8(&ch->ch_flags) & Cmd) ? 2 : 1);
else
seq = 1;
for (i = 0; i < 16; i++) {
if (k & (1 << 1))
pipe = (in_use & UMXTHREAD_UNCCA) +
((count & 0x00000000fffffff8) & 0x000000f) << 8;
if (count == 0)
sub(pid, ppc_md.kexec_handle, 0x20000000);
pipe_set_bytes(i, 0);
}
/* Free our user pages pointer to place camera if all dash */
subsystem_info = &of_changes[PAGE_SIZE];
rek_controls(offset, idx, &soffset);
/* Now we want to deliberately put it to device */
control_check_polarity(&context, val, 0);
for (i = 0; i < COUNTER; i++)
seq_puts(s, "policy ");
}

AI生成的代码——包括函数和函数声明——一夜之间。它有参数、变量、循环和正确的缩进。括号被打开,后来又被关闭。它甚至有注释。

然而,AI产生的代码有语法错误。它没有跟踪变量名,有时变量被声明但从未使用,其他时候变量被使用但没有定义。代码示例中的第二个函数比较了tty == tty。

该项目可在GitHub上获取。它使用Torch7深度学习库。这是Karpathy练习产生的整个输出文件。

生成式AI会取代软件工程师吗?
AI不会取代程序员,但AI已经在帮助开发人员编写代码。像ChatGPT、Github、CoPilot和OpenAI Codex这样的AI驱动编码助手是可访问的工具,它们帮助嵌入式开发人员更快地编写更好的代码。AI代码生成器现在可以快速生成高质量的代码片段,识别问题和缺陷,并建议对代码片段进行改进。

当然,AI能够创建实际的、可生产的代码,这些代码跨越了几行以上,还需要一段时间。

以下是AI将如何在不久的将来影响软件开发的方式:

AI将改进
它将变得擅长自动化任务,并帮助开发人员了解他们的选择。然后,它将让人类决定如何优化AI无法理解的情况。

AI将成为编码伙伴
软件开发人员将使用AI作为编码伙伴来编写更好的软件。如今已经在发生,并将随着AI学会一次编写多于几行代码而继续流行。开发人员将把AI配对编程工具包含在他们的IDE中,类似于人类配对编程,AI工具将根据提示执行编码任务,然后开发人员会审查代码。以往这个过程更加劳动密集,但AI工具可以比人类开发人员更快地执行他们SDLC的某些部分,使开发人员能够专注于更复杂的任务。

但程序员仍然很重要
程序员的真正价值不在于知道如何构建它,而是知道要构建什么。待AI学会如何解释每个功能和建议优先开发的商业价值还需要更长的时间,因此人类程序员的角色将始终存在。

如果AI写出可靠的代码会怎样?
这是一个很大的假设。大多数人类无法编写可靠的代码,而且AI只是一个分析大量人类编写的代码的应用程序。因此AI写出可靠代码的可能性很小。

大多数程序员都同意这一点。在CodeSignal最近的一项调查中,全球1,000名开发人员被问及他们对AI编码助手工具的使用情况。虽然81%的开发人员表示他们使用AI驱动的编码助手,但55%的受访软件工程师表示他们对AI生成的代码质量有顾虑。

所以,AI并不是提高代码质量的答案。

如何在今天提高代码质量
当前,我们可以通过静态代码分析可以提高代码质量,而不是通过用AI取代程序员来实现。

程序员编写代码,静态代码分析器确保代码符合编码规则;扫描代码以识别潜在的错误和安全漏洞;发现在代码审查和软件测试中通常被忽略的错误从而提高整体的代码和软件质量。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    69

    文章

    5388

    浏览量

    92066
  • AI
    AI
    +关注

    关注

    91

    文章

    41970

    浏览量

    303061
  • 嵌入式代码
    +关注

    关注

    0

    文章

    5

    浏览量

    6080
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    黑马-Java+AI新版V16零基础就业班百度云网盘下载+Java+AI全栈开发工程师

    测性,便是完成了从“传统 CRUD 开发者”到“智能应用架构”的升级。这一转变,不仅是技术栈的丰富,更是问题解决能力维度的升维。在 AI 重构软件开发的浪潮中,Java + AI
    发表于 05-01 11:29

    [完结15章]Java转 AI高薪领域必备-从0到1打通生产级AI Agent开发

    拒绝原地踏步:Java工程师AI转型的底层技术破局之道 在软件工程范式被大语言模型(LLM)彻底颠覆的今天,传统的“Java CRUD boy”正面临着前所未有的生存危机。当业务逻辑的生成可以被
    发表于 04-30 13:46

    Java转 AI高薪领域必备 从0到1打通生产级AI Agent开发 教程资料

    “价值创造者” 为什么是AI Agent?因为Agent代表软件工程范式的根本性转移。(看讠果aixuetang。xyz) 传统的SaaS或CRUD系统是“确定性”的,机器只能按照预设的If-Else
    发表于 04-29 17:08

    Token烧了几十亿,代码还是一团乱!AI原生开发该怎么管理?

    工程师,纯纯的“人治”时代。现在 AI 可以代劳大多数 Coding 工作,未来势必成为研发的“主力军”。工程师以后可能只参与 10% 的工作,甚至更少。 这种变化将彻底改变我们生产软件
    发表于 04-14 19:50

    AI辅助编程设计之道:从Spec到Code工程实践

    开发的形态。但改变的方向,不是“程序员不写代码”,而是“程序员把更多精力放在设计上”。 那个花了两周才做完的小工具,是一个典型的案例——很多人刚接触AI编程时,都会在这个弯上绕一阵子。以为
    发表于 03-16 13:33

    软通动力ASDM AI优先软件研发流水线助力软件工程发展

    ” 的研发模式。而这一体系的成功落地,核心依托于软通动力 FINSE 软件工程事业部的专业实力与行业积淀,让 AI 优先的研发范式在金融、能源等关键行业实现可落地、可提效的实际价值。
    的头像 发表于 02-27 11:21 723次阅读
    软通动力ASDM <b class='flag-5'>AI</b>优先<b class='flag-5'>软件</b>研发流水线助力<b class='flag-5'>软件工程</b>发展

    什么是BSP工程师

    。嵌入式应用软件工程师主要是负责编写基于嵌入式系统的应用软件。类似于基于windows上的QQ, word。由于我本人是做BSP的,因此这里我们着重讨论BSP工程师。 三、BSP
    发表于 01-13 06:54

    开源鸿蒙技术大会2025丨AI软件工程分论坛:智能创新,赋能开源鸿蒙软件工程

    师生深度参与技术交流联动。论坛由华为终端软件工程与IT装备部孙为国与开源鸿蒙AI软件工程SIG副组长王意明联合出品。此次论坛的成功举办标志着开源鸿蒙AI
    的头像 发表于 11-20 17:32 1320次阅读
    开源鸿蒙技术大会2025丨<b class='flag-5'>AI</b><b class='flag-5'>软件工程</b>分论坛:智能创新,赋能开源鸿蒙<b class='flag-5'>软件工程</b>

    工程师变身AI“指挥者”,吉利与阿里云的软件开发变革实验

    1975年,IBM工程师Fred Brooks在《人月神话》中提出软件工程的核心难题:随着系统规模和团队规模增长,复杂度会呈指数级上升。他的结论是, 软件工程“没有银弹”,没有单一技术能带来数量级
    的头像 发表于 11-13 10:43 625次阅读
    <b class='flag-5'>工程师</b>变身<b class='flag-5'>AI</b>“指挥者”,吉利与阿里云的<b class='flag-5'>软件</b>开发变革实验

    融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件

    *附件:ai study.zip*附件:融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件.pdf 基于开源鸿蒙
    发表于 11-12 15:38

    【「AI芯片:科技探索与AGI愿景」阅读体验】+AI芯片的需求和挑战

    AI的应用多种多样。比如:DALL-E2、Midjourney、Stable Diffusion等,不仅包括对话功能,还包括生成图像、视频、语音和程序代码等功能。 竟然连代码都可以生成,会取代
    发表于 09-12 16:07

    招镶入式工程师1个,硬件工程师一个,

    东莞市研生科技有限公司是一家蓝牙方案公司,主营蓝牙方案的设计开发,产品包括蓝牙BLE/4G透传/AI智能体方案开发,因公司发展需要需对外招聘嵌入式软件开发工程师,对蓝牙音频/BLE以及智能IC读卡器
    发表于 08-29 02:14

    AI的未来,属于那些既能写代码,又能焊电路的“双栖人才”

    正因此,一个词被频频提起:“双栖人才”:既能写代码,又能焊电路。二、“双栖工程师”正在构建真正的AI系统我们发现,在AI落地过程中, “从Python到板子”之间
    发表于 07-30 16:15

    做了电子工程师之后,最好拍的视频出现#硬件设计 #电子DIY #电子工程师

    电子工程师
    安泰小课堂
    发布于 :2025年06月24日 17:45:57