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最终取决于应用的特定需求以及开发者的技能水平。