2021年为什么要学C++

2021年为什么要学C++

封面12 拷贝.png

作者:老九—技术大黍

原文:Should you learn C++ in 2021

社交:知乎

公众号:老九学堂(新人有惊喜)

特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系笔者授权

前言

StudioWeb.com网站发起人、1995年入行的骨灰级程序和教育家施帝芬.密斯考特(Stefan Mischook)

image-20210311162730787.png

2021年2月11日在油管上发表了一篇视频讨论了2021年为什么要学习C++

0.png

我们看到当时截图为上有438人赞同,25人反对。下面我们对该视频的评论进行解读,希望能够大家带来集思广义的效果。

解读

Stef的核心观点一

6.png

Stef认为C++自从1985年被大神Bjarne Stroustrup发明来,它IOS/IEC(国际标准化组织/国际电工委员)的C++标准协议组来开发实现,并且于1985发布C++第一个正式版本,我们常说的C++ 98版。之后时隔35年,于2020年C++标准协议组再次发布C++20稳定版!

Stef的核心观点二

7.png

我们从TIOBE权威网站统计数据发现:2020年2月到2021年2月C++一直稳定在Top 4的位置,而像Php和Ruby这些热闹编程语言都大幅度下滑。当然,自从C++诞生以来,它从来没有迭出前10的排名。

读者一

1.png

2.png

3.png

我来参考翻译一下,请大家不要做为标准,如果有不足之处,请大家指正和补充:

我应该学习C++吗?有人说它是一个过时的编程语言了,并且C++的工作就是维护上古时代的代码,或者是游戏编程。但是这些维护古老代码的工作和游戏开发工作都是非常困难的,并且薪水也不咋的嘛。(解读:大家看到没?其实歪果人也跟我们国人一样:大家都想要一份工作轻松、薪水高的工作嘛image-20210327112949022.png)。

我是一个专职C++程序员,我可以负责任地告诉大家:“那些人”说的不是事实。(解读:跟我们国内一样,他说的“那些人”就是水军和标题党,外加搅屎棍image-20210327112949022.png)。

C++这门编程语言比一般人认知的要好得很多,它是不会过时的,因为它已经是独领风骚几十年的老妖怪了。C++实际应用相对于常人来说比较少见,因为它一般应用在如下领域:

  • 银行系统和贸易系统(比如股票交易系统),因为这些系统对延迟率要求非常高。
  • 上古程序。典型的维护应用就是上世纪90年代使用微软的MFC框架技术开发的应用,因为它们现在一直都在稳定的工作着(解读:莫得办法~因为它们太稳定了,功能太强大了,像其它的编程语言Java、C#、Php、JavaScript、Python都没有办法替代)。
  • 在现代Windows GUI应用中,Qt(一款C++应用开发的框架引擎)被广泛应用。
  • 在计算机视觉应用领域中OpenCV库(C++写的)是王者(Python也得绑定它才能装逼)。
  • 像编译器、浏览器或者动辄几百万行代码的复杂应用必须得靠C++装逼实现。其它的嘛都是:“臣妾做不到啊~”。image-20210327114310294.png
  • 在大型的2/3D游戏开发中,C++是王者。
  • 在高速运算的科学应用中,C++是王者。
  • 在嵌入式应用开发中,C++是王者。

因此,C++被使用时都是因为它的高速度特质,这个特质也是它唯一的特质。C++在2000~2011年有一个严重的衰退期,但是这些严重缺陷在C++标准协会的努力下似乎已经得到了改善。现在剩下的就是观其后效了。

在岗位招聘排行的顺序是:Java、Python、Ruby、Rails、iOS开发、Android开发,当然还有JavaScript这些岗位比较有竞争力。然后是C++岗位比Elixir、Scala和Go有竞争力。(解读:这个与我们国内岗位要求有区别,根据51joy的统计:第一需求Java岗位,然后是以JavaScript为核心的大前端岗位,第三就是C++岗位需求了

如果大家看一下Job Search|Indeed网站,那么我们会看到C++、Java、Python这些岗位的在薪资上有很大的不同,岗位不同,它们的平均薪水也是完成不一样的。

因此,C++有优点和缺点,但是我们在选择编程语言时应用眼光放开一些,不要因为我们喜欢某种语言而放弃了学习其它的机会。(解读 :我们非常赞同这个观点,实用主义优先!不喜勿喷哈)。image-20210327112949022.png

读者二

4.png

我来参考翻译一下,请大家不要当成标准,如果有不足之处,请大家指正和补充:

可以同时使用Python和C++混合开发。它们有点像马和马鞍,Python使用很方便(因为应用程序不需要太快),而C++用于执行高速运算任务。

每种不同的编程语言,它们只是不同特性的工具罢了,我们熟练使用的工具越多,那么工具给我们带来的好处就超多。(解读:同意,非常地同意!!!!

读者三

5.png

我来参考翻译一下,请大家不要当成标准,如果有不足之处,请大家指正和补充:

C/C++没有过时,它一种非常强大的系统级编程语言,它被广泛地用地操作系统编程,游戏开发和嵌入系统开发当中,以及用来开发硬件驱动程序和开发工具当中(比如现在国内非常流行的Java开发工具idea就是使用C++编写的)。C++还是一种可移植性最好的编程语言之一。比如,同样的C++代码可以在Unix、Linux和Windows平台正常运行(比如,我们的跨平台手机游戏引擎Cocos2d-x应用C++编写的),比如它很容易编写一次代码就可以Android、iOS、Tizen平台以及其它的移动设备上运行。

如果想要得到更高的薪资,我是不会把所有精力放在编程语言上的,我会研究怎么使用别人最好的工程实践完成任务。计算机语言只是实现的细节--项目经验和好的工程实践原则才是我们一个IT员工应该花精力的地方。

总结

C++时从2011年出了稳定版(C++ 11标准,这个是我2011年入手机游戏行业时遵守的),为对应当今社会的开发需求,它一直不断自我完善。10年过去了,现在C++出20版本,并且C++之父Bjarne Stroustrup剧透:C++ 23才是一个最终强大的版本,因为它将会支持反射技术!

关于反射技术,我们都知道它Java中赖以成名的核心技术,正因为Java提供了反射技术,才会有当今现在非常繁荣的、便利的各种框架技术!

现在面试Java开发时必然会被问及各种模板的原理,比如Spring的IoC容器原理,MyBatis的ORM影射原理等,如果作为一个Java程序员连反射都不会,那么根本都不意思给别人打招呼了。因为这些框架技术以反射为最根本的基础,然后再加上各种设计模式实现的。

我们C++其实也是玩设计模式的祖宗,只是它少了一个反射技术给开发人员们使用!

下面我们给C++之父Bjarne Stroustrup关于C++20版本的评价:

image-20210327142719384.png

这段原文,我就不参考翻译了,我只把关键字列出来了,大家可以百度自行参悟和理解。

我们解读这篇视频是为了给喜欢C++编程语言的小伙伴指明它未来可期待的功能,我们相信如果在2023年C++真的实现了反射功能,我们可以大胆的预测:Java及其它编程语言(除了lua/JavaScript/TypeScript脚本语言)should be dead.image-20210327114310294.png

因为,一旦C++拥有反射功能,那么我们所有第三方应用开发人员都可以写出各种应用框架了。

我曾经在使用Cocos2d-x引擎时,想自己写一个框架来约束团队成员的开发流程,但是失败了,结果让我经历非常痛苦的开发过程:各种无法管控制的代码,各种匪夷所思的bug...真的醉了一地image-20210327114310294.png

如果使用Java开发,以我10年的Java EPR项目管控开发经验是不可能出现的!

所以,如果我们是C++拥戴者,那么请耐心等待吧:2023年,我们希望再度见到C++ 23的出现!image-20210327112949022.png

最后

记得给大黍❤️关注+点赞+收藏+评论+转发❤️

作者:老九学堂—技术大黍

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值