C++正在失去人气吗

1fcb415d473ea097fc9ba6ecff60676a.png

架构师大咖

架构师大咖,打造有价值的架构师交流平台。分享架构师干货、教程、课程、资讯。架构师大咖,每日推送。

公众号

该公众号已被封禁

C++,这种在二十世纪晚期曾大放异彩的语言,曾一度站在技术发展的最前沿,尤其是在太空探索领域。然而,随着更新颖、更具视觉吸引力的编程语言的出现,C++的关注度已经逐渐降低。

在2024年的AI+数据峰会上,研究员Yejin Choi表示,研究人员已经不再使用这种语言进行AI研究。那么,C++是否正在成为过去的遗迹呢? 

adb5944d4df9e35b0aa727e41e18f5fb.png

AI领域并不青睐C++

尽管C++在性能上具有优势,并在语音识别和计算机视觉等多个AI领域有所应用,但它并不是AI开发的首选语言。其复杂性和陡峭的学习曲线构成了巨大的挑战。相比之下,Python因其友好的用户界面、丰富的库和庞大的开发者社区而跃居AI编程的前沿。

此外,C++涉及手动内存管理,如果操作不当,可能会导致内存泄漏和错误。这在大型AI项目中可能成为一个重大问题。微软在公布过去12年中的更新情况时强调,由于Windows主要用C和C++编写,其中70%的更新都是为了解决内存安全漏洞。谷歌Chrome团队也发布了自己的研究,揭示了内存管理和安全漏洞占Chrome代码库中所有主要安全漏洞的70%,而Chrome主要用C++编写。

C++还缺乏垃圾回收、数据库访问和线程处理等内置支持,这些都需要额外努力进行开发。 

在需要并发处理数据和任务的AI应用中,如深度学习、神经网络、实时系统、嵌入式系统、数据处理和数据科学等,这可能会特别具有挑战性。为了克服这些限制,开发者通常会使用提供线程支持的第三方库和框架,如OpenMP或Boost。然而,这些库可能会给代码增加复杂性和开销,这可能只适用于某些应用。

6613fae1cdb5ea67cfdb8cdf2cc3d8a5.png

C++很复杂

如果你访问过类似C++常见问题解答(FAQ)的页面,你就会明白C++有多难。在早期的语言版本中,一个逗号放错位置可能会引发数百个编译错误。尽管自C++11以来,该语言通过移动语义(用于转移所有权)和右值引用来进行了改进,但学习曲线仍然很高。 

812460e44264652db6267a5d1c252882.png

开发新应用

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

当你比较像C++、Python和Rust这样的现代语言的功能集时,C语言开始看起来就像恐龙一样古老!自2011年以来,C标准就没有引入过新功能!2017年的标准版本主要包含技术更正和澄清,而2023年的标准版本也没有带来什么重大变革。

bb377c21dcea8b898df1d8c267513d00.png

C++正在失去人气吗?

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

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

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

根据Stack Overflow的开发者调查,相比C++,刚开始编写代码的初学者更可能选择Python。 

尽管C++在速度和内存管理方面具有优势,但它也有劣势,如学习曲线陡峭且社区支持较少。尽管如此,对于需要高性能处理和高级内存管理的机器学习应用来说,C++仍然是一个强大的选择。机器学习中选择C++还是Python最终取决于应用的特定需求以及开发者的技能水平。

4009faec124f55604e139f9ce7e491a1.png

Python入门到精通

Python入门到精通:人生苦短,我用Python!Python每日推送、Python教程、Python资料、Python视频、Python项目、Python学习等。

公众号

该公众号已被封禁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值