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

    文章

    4921

    浏览量

    87394
  • AI
    AI
    +关注

    关注

    87

    文章

    30728

    浏览量

    268885
  • 嵌入式代码
    +关注

    关注

    0

    文章

    5

    浏览量

    5890
收藏 人收藏

    评论

    相关推荐

    FPGA算法工程师、逻辑工程师、原型验证工程师什么区别?

    的设计和实现。他们使用硬件描述语言(如 Verilog 或 VHDL)来编写代码,构建复杂的数字逻辑系统。工作包括模块的设计、功能的实现、时序的优化以及与其他硬件组件的接口设计等。 FPGA 原型验证工程师
    发表于 09-23 18:26

    微软GitHub推出Models服务,赋能AI工程师

    微软旗下的代码托管巨头 GitHub 近期宣布一项重大更新——GitHub Models 服务,旨在成为 AI 工程师的得力助手。该服务专为开发者设计,旨在帮助他们轻松选择并优化最适
    的头像 发表于 08-05 14:16 478次阅读

    嵌入式软件工程师如何提升自己?

    嵌入式软件工程师如何提升自己? 作为一名嵌入式软件工程师,在这个充满机遇和挑战的领域里,如何提升自己显得非常重要,它决定你未来的发展方向和成就。接下来,我们一起探讨一下。 1.奠定扎实
    发表于 06-12 11:20

    探讨AI编写代码技术,以及提高代码质量的关键:静态代码分析工具Perforce Helix QAC &amp; Klocwork

    软件开发人员夜不能寐的事情比比皆是。如今,他们最关心的问题不再是如何用自己喜欢的语言(C、C++、Erlang、Java 等)表达最新的算法,而是人工智能(AI)。 本文中,我们将介绍AI
    的头像 发表于 06-05 14:10 395次阅读

    工程师会被AI取代吗?#嵌入式软件测试

    AI行业芯事
    北汇信息POLELINK
    发布于 :2024年05月23日 18:05:30

    索尼诚邀软件工程师参与PS免费手游平台设计

    据悉,近日,澳大利亚知名媒体TweakTown发现,索尼互动娱乐正在为其旗下的PlayStation Studios Mobile招募一名资深的软件工程师,负责设计PlayStation的免费手机游戏平台。
    的头像 发表于 05-23 17:08 720次阅读

    嵌入式软件工程师和硬件工程师的区别?

    、调试和测试嵌入式软件,以确保其功能正常,性能优良。 * 文档编写:包括编写用户手册、维护文档等。 * 维护和更新:对现有的嵌入式软件进行维护和更新,以解决出现的问题和满足新的需求。
    发表于 05-16 11:00

    AI代码助手,企业软件工程未来主流工具

    AI代码助手不仅能自动生成和完善代码,更是一位高效的协作伙伴,通过激发创新思维和提升代码质量,助力开发者提升效率,进一步提升其技术水平和对各类编程框架的掌握能力。
    的头像 发表于 04-12 15:58 412次阅读

    AI取代谁?

    AI行业芯事
    电子发烧友网官方
    发布于 :2024年03月13日 16:29:17

    Cognition发布首款AI软件工程师Devin

    据报道,Cognition公司今日公布其首款人工智能软件工程师——Devin,掀起了打造软件模式变革的序幕。该产品在SWE-bench代码测验中展现出卓越表现,甚至超过了部分顶级人类
    的头像 发表于 03-13 10:57 615次阅读

    【国产FPGA+OMAPL138开发板体验】(原创)5.FPGA的AI加速源代码

    美味的AI加速计算结果。希望这个解释能让你对FPGA用于AI加速的程序更深刻的理解。编写用于AI加速的FPGA程序通常涉及到复杂的算法实现
    发表于 02-12 16:18

    AI大模型可以取代大学教育吗?

    AI大模型
    电子发烧友网官方
    发布于 :2024年01月02日 16:27:52

    AI大模型会不会取代电子工程师?

    AI大模型
    电子发烧友网官方
    发布于 :2024年01月02日 15:11:43

    嵌入式软件工程师常用的

    最近我换工作了,看见不同嵌入式软件工程师用的平台都不一样,所以我整理了一下。PlatformIO:多平台支持:PlatformIO支持多种嵌入式平台,包括Arduino、ESP8266、ESP32
    的头像 发表于 12-24 08:00 644次阅读
    嵌入式<b class='flag-5'>软件工程师</b>常用的