2024 年,C++ 正在失去人气吗?
尽管 C++在速度和内存管理方面具有优势,但它也有劣势,如学习曲线陡峭且社区支持较少。尽管如此,对于需要高性能处理和高级内存管理的机器学习应用来说,C++仍然是一个强大的选择。机器学习中选择 C++还是 Python 最终取决于应用的特定需求以及开发者的技能水平。
C++,这种在二十世纪晚期曾大放异彩的语言,曾一度站在技术发展的最前沿,尤其是在太空探索领域。然而,随着更新颖、更具视觉吸引力的编程语言的出现,C++的关注度已经逐渐降低。
在 2024 年的 AI+数据峰会上,研究员 Yejin Choi 表示,研究人员已经不再使用这种语言进行 AI 研究。那么,C++是否正在成为过去的遗迹呢?
1.AI 领域并不青睐 C++
尽管 C++在性能上具有优势,并在语音识别和计算机视觉等多个 AI 领域有所应用,但它并不是 AI 开发的首选语言。其复杂性和陡峭的学习曲线构成了巨大的挑战。相比之下,Python 因其友好的用户界面、丰富的库和庞大的开发者社区而跃居 AI 编程的前沿。
此外,C++涉及手动内存管理,如果操作不当,可能会导致内存泄漏和错误。这在大型 AI 项目中可能成为一个重大问题。微软在公布过去 12 年中的更新情况时强调,由于 Windows 主要用 C 和 C++编写,其中 70%的更新都是为了解决内存安全漏洞。谷歌 Chrome 团队也发布了自己的研究,揭示了内存管理和安全漏洞占 Chrome 代码库中所有主要安全漏洞的 70%,而 Chrome 主要用 C++编写。
C++还缺乏垃圾回收、数据库访问和线程处理等内置支持,这些都需要额外努力进行开发。
在需要并发处理数据和任务的 AI 应用中,如深度学习、神经网络、实时系统、嵌入式系统、数据处理和数据科学等,这可能会特别具有挑战性。为了克服这些限制,开发者通常会使用提供线程支持的第三方库和框架,如 OpenMP 或 Boost。然而,这些库可能会给代码增加复杂性和开销,这可能只适用于某些应用。
2.C++很复杂
如果你访问过类似 C++常见问题解答(FAQ)的页面,你就会明白 C++有多难。在早期的语言版本中,一个逗号放错位置可能会引发数百个编译错误。尽管自 C++11 以来,该语言通过移动语义(用于转移所有权)和右值引用来进行了改进,但学习曲线仍然很高。
3.开发新应用
近年来,我们见证了各种编程语言的发展,这些语言有可能取代 C++用于低级系统任务,比如 Rust,它通过消除缓冲区溢出和内存泄漏提供了安全性和稳定性(并且比 C++更容易学习)。
当你比较像 C++、Python 和 Rust 这样的现代语言的功能集时,C 语言开始看起来就像恐龙一样古老!自 2011 年以来,C 标准就没有引入过新功能!2017 年的标准版本主要包含技术更正和澄清,而 2023 年的标准版本也没有带来什么重大变革。
4.C++正在失去人气吗?
微软 Azure 的首席技术官 Mark Russinovich 表示,开发者应该停止使用 C 和 C++这两种编程语言编写代码,并且业界应该将这些计算机语言视为“已弃用”。
Bell Labs 研究员、原 Unix 操作系统设计师 Ken Thompson 称 C++是“糟糕的语言”,它“太大、太复杂”,而且“显然是由一个委员会构建的”。
GitHub 编制了一份机器学习领域最受欢迎的十大编程语言列表。Python 是机器学习存储库中最流行的语言,而 C++排在第六位。
根据 Stack Overflow 的开发者调查,相比 C++,刚开始编写代码的初学者更可能选择 Python。
尽管 C++在速度和内存管理方面具有优势,但它也有劣势,如学习曲线陡峭且社区支持较少。尽管如此,对于需要高性能处理和高级内存管理的机器学习应用来说,C++仍然是一个强大的选择。机器学习中选择 C++还是 Python 最终取决于应用的特定需求以及开发者的技能水平。
前端的世界总是在不断变化,作为开发者,我们需要保持好奇心和学习热情,不断探索新的技术,只有这样,我们才能在这个快速发展的时代中立于不败之地。低代码也是一个值得我们深入探索的领域,让我们拭目以待,它将给前端世界带来怎样的变革。
介绍一款程序员都应该知道的软件JNPF快速开发平台,很多人都尝试用过它,它是功能的集大成者,任何信息化系统都可以基于它开发出来。
JNPF 可以实现应用从创建、配置、开发、测试到发布、运维、升级等完整生命周期的管理。减少了传统应用程序的代码编写量,通过图形化、可视化的界面,以拖放组件的方式,即可快速生成应用程序的产品,大幅降低了开发企业管理类软件的难度。
希望这篇文章对你有所帮助~
评论