【已开奖】【社区粉丝专享福利赠书活动】C++为什么能重夺年度语言?(文末有赠书的福利活动)

架构师李肯
物联网领域优质创作者
博客专家认证
2023-02-16 03:27:34
加精

直播预告

 

“C++王者归来”系列对谈直播

视频号:IT阅读排行榜

将在02月16日 19:00 直播:新时代的C++编程语言——畅谈C++特性、C++之困,现代C++20时代

视频号:IT阅读排行榜

将在02月18日 19:00 直播:重新认识C++——畅谈C++的兴起、衰落与复兴

Part.1 爷青回

年初依旧很多大新闻,其中一条就是TIOBE把年度编程语言颁给了C++。

我特地上TIOBE看了看,意外发现一件非常有意思的事。TIOBE指数行业内的同学都很熟悉,是全球编程语言流行度的风向标。TIOBE最早始于2001年,但当年并没有选出年度语言,而是得等到2003年。2003年对于C++也是特别的一年,C++在TIOBE上的流行指数一度逼近18%,可谓如日中天,所以毫无悬念,第一届年度语言就是C++。

 

 

不过,这也是C++的顶点。虽然目前还没有听说什么TIOBE“年度语言魔咒”之类的说法,但C++成为年度语言之后一路下滑,到了2017年,C++只剩下不到5%。

这是什么概念?那一年Java的流行指数是14%。

Java号称C++--,替代效应明显。然而,有意思的地方来了,当人们开始讨论用什么替代Java的时候,C++居然活了过来,在TIOBE上走出了一条微笑曲线。2022年,C++的TIOBE流行指数上大涨4.6%,这是榜单最大涨幅,19年后再次夺得了年度语言。很多分析文章没有提到的是,目前C++的流行指数重新回到12%,而上一次还是在2005年。

什么叫爷青回,这就叫爷青回。

 

Part.2 C++为什么衰落

 

C++有太多问题,太应该衰落了。概括起来也不复杂,就三个字“太复杂”。

 

C++提供了大量的特性,往好了说写起来非常灵活,特别适合追求最优解的强迫症,往坏了说是严重加重了选择困难症的病情。即使你用了C++十年二十年,一定还能遇到什么地方让你感慨居然还有这么多不了解的地方。从审美的角度来说,C++不够协调统一,从学习的角度来说,C++简直是灾难。

 

指针就是典型。指针是C++灵活的源泉,指针用得好,C++能玩出花来,但是用不好,C++也能玩出花来,所以,对很多程序员来说,不管是写,是读,还是改,指针都是灾难的代名词。

 

怎么办呢?献祭灵活性换取易用性和一致性。

 

譬如Java,Java继承了C++大量的语言特性,同时手起刀落剁掉了指针。Java简化了内存管理操作,有一项重要的机制叫垃圾回收(Garbage Collection),太重要以致有一个著名的梗是说,如果你去食堂吃饭,看到有人吃完收拾盘子的,那是C++程序员,吃完直接走的,那是Java程序员。

 

这里有个问题。我想自己收拾行不行呢?Java说,对不起,不行,不管你愿不愿意,我都要替你收拾。大家都不用收拾,所以易用。大家都不能收拾,所以一致。这里没有绝对的优劣,不过,后来无论是开发还是管理,都认为Java这种做法更节省头发。

于是,C++连同灾难性的指针一起,似乎只能死于选择太多。

 

Part.3 C++为什么重新流行

 

那么,C++为什么重新流行起来了呢?

 

这确实是个有意思的问题。有人说TIOBE算法不够客观,C++不可能重回2003年。这个说法我只同意一半。毕竟20年过去了,出现这么多要革C++的命的语言,著名的前有D语言后有Rust,就算这些后辈再怎么不给力,总会要分走一些使用者的。

 

现在C++不仅守住了基本盘,还出现了“回暖”的现象。且不管回暖的力度是不是真的像TIOBE所说的力拔头筹,但回暖本身是毫无疑问。C++肯定是做对了点什么,这才是C++重夺年度语言的新闻背后,最需要我们关注和思考的事情。

那么,C++究竟做对了什么呢?

 

这不是一个很好回答的问题。网上有一个简单直接的回答:C++一直在更新,不断吸收编程语言的发展成果。譬如C++20,就增加了模块、概念、范围和协程四大特性。不少C++er说C++20振奋人心,为这门上了年纪的语言注入了新的活力。

 

不过,这个说法我同样只同意一半。C++20确实引入了一批非常有用的现代化特性,具备和后辈一争高下的基础。但是,前面也已经说过,C++的根本问题不是在于特性太少,而是在于特性太多,不要说去选择,光是去了解就已经成为了一种负担。

 

根本原因没有解决,C++究竟凭什么?我的回答是:时代需求使然。

 

在过去的十几年,Web开发一直处于绝对的支配地位,已经成为我们评价一门编程语言好坏的默认背景。但是,时代已经开始走出被Web支配的日子,区块链、人工智能、元宇宙,且不管这些概念背后到底取得了多少实质性的发展,但要开发这些应用,需求必然会变得空前多样,我们都需要重新选择最合适的开发方式。

 

而C++最不缺的就是选择。即使到了2023年,能够直接死磕底层,同时又具备现代编程语言特性的编程语言,其实仍然为数不多——C++正是其中之一。如果再加入对语言生态积累的考虑,C++几乎就是唯一的选择。

 

有一个说法是,无论你要做什么,总能在C++里找到趁手的工具。我想,这才是C++能在这个发展中的时代重夺年度语言的真正原因。

 

Part.4 C++该怎么学

C++日久弥新,相信许多人都动过学一学C++的念头,但是,C++“难学”的名声在外,又让许多人打了退堂鼓。C++之所以让人感觉难学,主要是因为复杂和庞大。复杂是因为C++在设计之初就支持多种范式,而且不断推出新的语言特性提升竞争力,语法越来越复杂。庞大是因为类库,C++之所以生命力如此顽强,另一个重要原因是拥有一套功能强大的庞大类库。

 

复杂的语法和庞大的类库不但拉高了C++的学习门槛,还拉高了C++教材的编写门槛,

 

什么人才能广泛地了解这些内容,然后准确地总结成书,还敢打包票说书里的理解都没有偏差呢?还真有这么一个合适人选——Bjarne Stroustrup,没有谁能比C++之父更懂C++!Bjarne Stroustrup不仅发明了C++,还通过编写一系列教材打造出一条C++学习路线:

 

 

关于作者:

莫凡,网名木羊同学。娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术的“白菜化”解说,微信公众号“睡前机器学习”,个人知乎号“木羊”。

 

Part.5 直播预告

“C++王者归来”系列对谈直播

 

视频号:IT阅读排行榜

将在02月16日 19:00 直播:新时代的C++编程语言——畅谈C++特性、C++之困,现代C++20时代

视频号:IT阅读排行榜

 

将在02月18日 19:00 直播:重新认识C++——畅谈C++的兴起、衰落与复兴

 

 


Part.6 赠书福利活动

为了回馈广大粉丝的大力支持,特开展粉丝专属的赠书福利活动,参与方式如下:

 【架构师李肯】本期粉丝专属福利赠书活动汇总,一共送出5本书籍:

 

1. 关注公众号【南雄有料】,点击图文:C++为什么能重夺年度语言?| 文末福利 http://mp.weixin.qq.com/s?__biz=MzUyMzUzMDUyMg==&mid=2247483921&idx=1&sn=0a335f3b0a99b0ff4bb9da882ff9f71a&chksm=fa3a7a64cd4df3724ad1c13fea01dce4ed46004c788a7d513df326baee85c6c3ed0dca6fca9a#rd,围绕【C++】相关的主题,在文末留言集赞,留言点赞数排名前2,包邮送出C++相关的实体书籍各一本。 

 

2.关注CSDN技术社区【架构师李肯(带你学嵌入式)】,点击图文:【社区粉丝专享福利赠书活动】C++为什么能重夺年度语言?(文末有赠书5本的福利活动) https://bbs.csdn.net/topics/613465988,请在本文下方的留言区发表关于【C++】的评论并积赞,点赞排行前1名者(如出现点赞数相同时,以评论时间为依据,先评论的优先获得),包邮送出C++相关的实体书籍各一本。

 

3.关注CSDN博客专家【架构师李肯】,点击图文 含泪吐槽学C++的血与泪 https://blog.csdn.net/szullc/article/details/129053751,文末围绕【C++】相关的【优质评论】集赞,留言点赞数排名前2,包邮送出C++相关的实体书籍各一本。

 

【注意:以上三个渠道不可兼得,当出现兼得的情况时,都后面的童鞋递补获得。】

 

开奖时间为:2023年2月23日 18:00

 

请各位持续关注【架构师李肯】,每周送出各式福利活动,敬请期待。

 

限时开放一个由架构师李肯组织发起的架构师专属学习交流群,感兴趣的可以加入。

 免费想各位开放架构师李肯的IT图书赠书福利活动专群,大家加入群里可以获得第一首赠书福利活动消息。

 

 

...全文
1663 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
架构师李肯 2023-02-23
精选
  • 打赏
  • 举报
回复

本期留言集赞赠书活动已结束,获奖名单戳这里
【腾讯文档】【架构师李肯】IT图书赠送福利活动获奖公布
https://docs.qq.com/sheet/DTGtvRlJ5a2J5TXBq?tab=BB08J2
恭喜各位。

img

架构师李肯 2023-02-20
精选
  • 打赏
  • 举报
回复
5.00元
2
来聊一聊你眼中的C++是怎么样的?
字节卷动 2023-02-20
  • 举报
回复
@架构师李肯 感谢肯哥的大红包
Williamtym 2023-02-23
  • 举报
回复
@架构师李肯 就是细
架构师李肯 2023-02-18
精选
  • 打赏
  • 举报
回复 2

赠书书单公布:
56252 C++程序设计:原理与实践(进阶篇)(原书第2版)
56225 C++程序设计:原理与实践(基础篇)(原书第2版)
53941 C++程序设计语言(第1~3部分)(原书第4版)
54439 C++程序设计语言(第4部分:标准库)(原书第4版)
63328 C++语言导学(原书第2版)
以上任选一本。

三个赠送渠道同时开放,其中微信公众号渠道竞争压力最小 (C++为什么能重夺年度语言?| 文末福利 http://mp.weixin.qq.com/s?__biz=MzUyMzUzMDUyMg==&mid=2247483921&idx=1&sn=0a335f3b0a99b0ff4bb9da882ff9f71a&chksm=fa3a7a64cd4df3724ad1c13fea01dce4ed46004c788a7d513df326baee85c6c3ed0dca6fca9a#rd),感兴趣的赶紧冲!

架构师李肯 2023-02-16
精选
  • 打赏
  • 举报
回复 1

请大家发表评论时,务必围绕【C++】话题展开,否则可能会被判评论无效哦。

架构师李肯 2023-02-16
  • 举报
回复
@架构师李肯 另外,社区同时还有另一个架构相关的书籍在赠送,敬请关注。https://bbs.csdn.net/topics/613441520
架构师李肯 2023-02-16
  • 举报
回复
@架构师李肯 赠书书单公布: 56252 C++程序设计:原理与实践(进阶篇)(原书第2版) 56225 C++程序设计:原理与实践(基础篇)(原书第2版) 53941 C++程序设计语言(第1~3部分)(原书第4版) 54439 C++程序设计语言(第4部分:标准库)(原书第4版) 63328 C++语言导学(原书第2版) 以上任选一本。
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复 5

C++ 就是个万金油,向下可兼容C、可面向对象、可面向过程、可面向函数等等。没得个4,5年功夫确实有点难啃动。

Left_0ut 2023-02-23
  • 举报
回复 2
@风一样的美狼子 很多啃了6年的也不过如此。
  • 打赏
  • 举报
回复 2
我来到这里,只为了c++这本书(确实很围绕)
  • 打赏
  • 举报
回复 3
学校虽然开了C++这门课程,但是讲的都是基础的用法,加上一直用C开发,C++已经忘光了,不过还是希望能捡起来的。( 。• 👅 •。`)
  • 打赏
  • 举报
回复 3
Qt下的c++和人工智能下的c++完美主义
硬件老搬张 2023-02-18
  • 打赏
  • 举报
回复 1
不带功利心去学习,慢慢学,估计二十年差不多也能成c++专家了吧?
架构师李肯 2023-02-18
  • 举报
回复
@硬件老搬张 兄弟,有些乐观呀?哈哈哈
芯动大师 2023-02-17
  • 打赏
  • 举报
回复 1
C++目前很主流,目前在做的项目也有设计。
weixin_43934918 2023-02-17
  • 打赏
  • 举报
回复 1
C++天下第一!
weixin_43934918 2023-02-17
  • 打赏
  • 举报
回复 1
C++天下第一!
攻城狮杰森 2023-02-16
  • 打赏
  • 举报
回复 1

支持大佬,嘿嘿嘿~

  • 打赏
  • 举报
回复 1

原先做python,最近在做C++,感觉真的难很多,就* & const等一系列的操作,就绕绕绕。但还是得学好用好,因为算法竞赛大多基于C++,骨头硬啃,下一阶段计划使用STL实现部分算法。这方面就跟着博主一起学习,又问必答,真是好朋友,多谢李佬分享经验。

字节卷动 2023-02-16
  • 打赏
  • 举报
回复 1

这次没有红包让我抢了

架构师李肯 2023-02-16
  • 举报
回复
@字节卷动 必要时,再搞个红包,大家happy happy

443

社区成员

发帖
与我相关
我的任务
社区描述
物联网架构师李肯,CSDN博客专家,带你一起玩转嵌入式和物联网。
物联网嵌入式硬件51单片机 个人社区 广东省·深圳市
社区管理员
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

物联网架构师李肯,CSDN博客专家,带你一起玩转嵌入式和物联网。

试试用AI创作助手写篇文章吧