为什么C++不常用于AI研究?

2024年06月24日 由 samoyed 发表 142 0

C++,一种在二十世纪晚期曾大放异彩的语言,曾处于技术发展的前沿,特别是在太空探索方面。


然而,随着更新、更具视觉吸引力的编程语言的出现,C++ 已不再是焦点。


Why-C-not-used-in-AI-research-1300x731


在 2024 年的 AI+Data 峰会上,研究员 Yejin Choi 表示,研究人员已不再使用该语言进行 AI 研究。


那么,C++ 是否正在成为过去的遗物?


AI 领域鲜有问津


尽管 C++ 在性能上有很多优势,并且在各种 AI 领域(如语音识别和计算机视觉)都有应用,但它并不是 AI 开发的首选语言。


其复杂性和陡峭的学习曲线构成了重大挑战。相比之下,Python 的用户友好性、广泛的库和庞大的开发者社区使其跃升为 AI 编程的前沿。


此外,C++ 需要手动管理内存,如果操作不当,可能会导致内存泄漏和错误。在大规模的 AI 项目中,这可能是一个严重的问题。


微软在揭示其过去 12 年中 70% 的更新都是用于解决内存安全漏洞的问题时强调了这一点,因为 Windows 主要是用 C 和 C++ 编写的。


谷歌的 Chrome 团队也发布了他们自己的研究,揭示了内存管理和安全漏洞占 Chrome 代码库中所有主要安全漏洞的 70%。Chrome 主要也是用 C++ 编写的。


C++ 还缺乏垃圾回收、数据库访问和线程支持的内置支持,这可能需要额外的开发努力。


在需要并发处理数据和任务的 AI 应用中,这可能会特别具有挑战性,例如深度学习和神经网络、实时系统和嵌入式系统、数据处理和数据科学。


为了克服这些限制,开发人员经常使用提供线程支持的第三方库和框架,如 OpenMP 或 Boost。然而,这些库可能会增加代码的复杂性和开销,这可能只适用于某些应用。


C++ 相当复杂


如果你访问过 C++ 的常见问题页面(FAQ),你就会理解 C++ 有多难。在早期语言版本中,一个逗号放错位置可能会引发数百个编译错误。


自 C++ 11 以来,该语言已经有所改进,增加了用于转移所有权的移动语义和右值引用,但学习曲线仍然很高。


开发新应用


近年来,我们见证了各种编程语言的发展,这些语言有可能取代 C++ 用于低级系统任务,比如 Rust,它通过消除缓冲区溢出和内存泄漏来提供安全性和稳定性(而且比 C++ 更容易学习)。


当你比较现代语言(如 C++、Python 和 Rust)的功能集时,C 语言开始看起来像恐龙一样过时了!C 标准自 2011 年以来就没有引入新功能了!


2017 年的标准版本主要是对技术的修正和澄清,而 2023 年的标准版本也没有引起大的震动。


C++ 正在失去人气吗?


Microsoft Azure 的首席技术官 Mark Russinovich 表示,开发人员应该停止使用 C 和 C++ 编程语言编写代码,并且该行业应该将这些计算机语言视为“已弃用”。


Bell Labs 的研究员 Ken Thompson,也是原始 Unix 操作系统的设计者,称 C++ 为“糟糕的语言”,它“太大、太复杂”,并且“显然是由一个委员会构建的”。


GitHub 编制了一份机器学习领域最受欢迎的十大编程语言列表。Python 是机器学习仓库中最受欢迎的语言,而 C++ 位列第六。


根据 Stack Overflow 的开发者调查,刚开始编程的初学者比专业人士更可能选择 Python 而不是 C++。


虽然 C++ 在速度和内存管理方面具有优势,但它也有一些缺点,比如学习曲线陡峭且社区帮助有限。


尽管存在这些挑战,但对于需要高性能处理和高级内存管理的机器学习应用来说,C++ 仍然是一个强大的选择。在机器学习中选择 C++ 还是 Python 最终取决于应用的具体需求以及开发者的技能水平。

文章来源:https://analyticsindiamag.com/why-is-c-not-used-in-ai-research/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消