电子产业一站式赋能平台

PCB联盟网

搜索
查看: 93|回复: 0
收起左侧

C++正在失去人气吗

[复制链接]

1077

主题

1077

帖子

1万

积分

论坛法老

Rank: 6Rank: 6

积分
11496
发表于 2024-7-11 09:01:00 | 显示全部楼层 |阅读模式
来自公众号:51CTO技术栈
6 z1 F6 r, I) L$ ~6 B" ^: _编辑 | 言征
2 E; h+ P: r% `6 d; J
C++,这种在二十世纪晚期曾大放异彩的语言,曾一度站在技术发展的最前沿,尤其是在太空探索领域。然而,随着更新颖、更具视觉吸引力的编程语言的出现,C++的关注度已经逐渐降低。% [  F* r5 j; W% y/ b
在2024年的AI+数据峰会上,研究员Yejin Choi表示,研究人员已经不再使用这种语言进行AI研究。那么,C++是否正在成为过去的遗迹呢?
1 T- V* b5 s+ N% g7 t5 }0 F6 Y, O

g4sxrgwnkwe64073946145.png

g4sxrgwnkwe64073946145.png
5 n! G! D% ?& q# m
AI领域并不青睐C++
% X% v* u( K8 [" }, M尽管C++在性能上具有优势,并在语音识别和计算机视觉等多个AI领域有所应用,但它并不是AI开发的首选语言。其复杂性和陡峭的学习曲线构成了巨大的挑战。相比之下,Python因其友好的用户界面、丰富的库和庞大的开发者社区而跃居AI编程的前沿。9 G  I4 k; e/ H0 |0 q
此外,C++涉及手动内存管理,如果操作不当,可能会导致内存泄漏和错误。这在大型AI项目中可能成为一个重大问题。微软在公布过去12年中的更新情况时强调,由于Windows主要用C和C++编写,其中70%的更新都是为了解决内存安全漏洞。谷歌Chrome团队也发布了自己的研究,揭示了内存管理和安全漏洞占Chrome代码库中所有主要安全漏洞的70%,而Chrome主要用C++编写。8 I8 [+ H( C; F( Y
C++还缺乏垃圾回收、数据库访问和线程处理等内置支持,这些都需要额外努力进行开发。
  X$ D2 R& G3 H3 ]* X在需要并发处理数据和任务的AI应用中,如深度学习、神经网络、实时系统、嵌入式系统、数据处理和数据科学等,这可能会特别具有挑战性。为了克服这些限制,开发者通常会使用提供线程支持的第三方库和框架,如OpenMP或Boost。然而,这些库可能会给代码增加复杂性和开销,这可能只适用于某些应用。
4 d- D) l& Y) i; ?2 y

bw3a2h15fph64073946245.png

bw3a2h15fph64073946245.png

! ]2 U: s1 h7 V. x1 cC++很复杂* _0 U, Z% Y: S; r0 m: D$ F: Q
如果你访问过类似C++常见问题解答(FAQ)的页面,你就会明白C++有多难。在早期的语言版本中,一个逗号放错位置可能会引发数百个编译错误。尽管自C++11以来,该语言通过移动语义(用于转移所有权)和右值引用来进行了改进,但学习曲线仍然很高。
8 ?, {9 i' N/ l4 N( X% C+ B2 A' }4 L# o$ \

b3fcswqhbjm64073946345.png

b3fcswqhbjm64073946345.png

8 ]- f' p) R9 i! X2 b' b1 b
: ?! D' Y3 @: T% O
开发新应用
6 }9 q0 p( O. ~  N+ |! y: v! o近年来,我们见证了各种编程语言的发展,这些语言有可能取代C++用于低级系统任务,比如Rust,它通过消除缓冲区溢出和内存泄漏提供了安全性和稳定性(并且比C++更容易学习)。
( f  _) B3 C' j% b0 p$ Y. g当你比较像C++、Python和Rust这样的现代语言的功能集时,C语言开始看起来就像恐龙一样古老!自2011年以来,C标准就没有引入过新功能!2017年的标准版本主要包含技术更正和澄清,而2023年的标准版本也没有带来什么重大变革。' H4 u9 q3 T' {

qlv2cughqff64073946445.png

qlv2cughqff64073946445.png

. I- a) f: {" E9 l' QC++正在失去人气吗?- N! Q; G% c( a
微软Azure的首席技术官Mark Russinovich表示,开发者应该停止使用C和C++这两种编程语言编写代码,并且业界应该将这些计算机语言视为“已弃用”。
3 M, C8 P0 m$ B* G- d' I7 wBell Labs研究员、原Unix操作系统设计师Ken Thompson称C++是“糟糕的语言”,它“太大、太复杂”,而且“显然是由一个委员会构建的”。
3 W& V. a) r$ n$ q% O5 LGitHub编制了一份机器学习领域最受欢迎的十大编程语言列表。Python是机器学习存储库中最流行的语言,而C++排在第六位。
: Z4 O, {2 [* x8 ^根据Stack Overflow的开发者调查,相比C++,刚开始编写代码的初学者更可能选择Python。
- w$ h, s7 G8 F, }. Y, p5 y尽管C++在速度和内存管理方面具有优势,但它也有劣势,如学习曲线陡峭且社区支持较少。尽管如此,对于需要高性能处理和高级内存管理的机器学习应用来说,C++仍然是一个强大的选择。机器学习中选择C++还是Python最终取决于应用的特定需求以及开发者的技能水平。  @6 N% O0 A( Y' h' a
——EOF——你好,我是飞宇,本硕均于某中流985 CS就读,先后于百度搜索、字节跳动电商以及携程等部门担任Linux C/C++后端研发工程师。- V3 t6 C* Y1 P' r4 u
最近跟朋友一起开发了一个新的网站:编程资源网,已经收录了不少资源(附赠下载地址),如果屏幕前的靓仔/女想要学习编程找不到合适资源的话,不妨来我们的网站看看,欢迎扫码下方二维码白嫖~
% g- a) V% g$ f; N
4 h. \- H( G) M4 J4 ]7 R1 Z

p2zl0nk1tbv64073946546.gif

p2zl0nk1tbv64073946546.gif

* p4 `. z: }: a4 t3 F& v
3 a4 @9 h8 Y3 S2 @. H7 b; B- s同时,我也是知乎博主@韩飞宇,日常分享C/C++、计算机学习经验、工作体会,欢迎点击此处查看我以前的学习笔记&经验&分享的资源。
5 n" L7 z2 u, a, [* U# p# m$ i我组建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起进群交流。7 N9 h/ S  l4 P' n  M$ V

boy31tvcsqn64073946647.png

boy31tvcsqn64073946647.png
* c2 S( J1 v  g8 a
欢迎你添加我的微信,我拉你进技术交流群。此外,我也会经常在微信上分享一些计算机学习经验以及工作体验,还有一些内推机会。: ^9 [9 q2 B2 d, [9 F) s; C+ o

- `, X# e( F; e  w

ed1zlqk5zmt64073946747.png

ed1zlqk5zmt64073946747.png
* ?/ Q# C5 R6 C
加个微信,打开另一扇窗1 [7 H- Q4 I# P* L& [  c4 d

1ckjb4icyc564073946847.gif

1ckjb4icyc564073946847.gif
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表