C++ 的主要缺陷在于它是一个非常复杂和分层的生态系统,在解决不同问题的过程中变得越来越复杂 ; 层数越多,堆叠越高,变得越不稳定,理解起来就越难。
这个问题确实存在,但这个问题不是C++的问题,而是需求的问题:简而言之,如果需求简单的话,直接把C++当作带类的C,甚至完全类都不用,有何不可?
反过来,用C实现稍复杂的需求,那就到处都是各种类型强转,满天都是函数指针,还有各种多重指针/指针数组——很多人看着双重指针就已经一脸懵逼了,那么去体验一下经典的nginx的4重指针再来说C(和C++相比)不糟糕不可怕好吗?
总而言之,真正可怕的是需求的复杂性,以及变更频繁程度。
如果这两者都相对简单,那么相对来说,用C确实会更轻便一点。但如果两者都复杂,那么实话说,大多数号称精通C语言的开发者,写出来的代码大概率比C++更糟糕更可怕。
在互联网上,关于C++将要被市场所淘汰的讨论从未停止过,有人说C++是一门过时的编程语言,也有人说,C++是不可替代的。那么,C++过时了吗?C++程序员会不会被淘汰?
这是我们客栈上的注册C++程序员,大约2300多人,占总人数的5%左右,这还不包括会C++但没有标签的,虽然我们都知道C++在走下坡路,但C++短时间内绝不会消亡!
C++为什么不会消亡?我们采访了多名C++程序员后,得出以下三个观点——
首先是游戏领域,Milo Yip表示——程序员必须使用C++框架/库,如大部分游戏引擎(如Unreal/Source)及中间件(如Havok/FMOD),虽然有些C++库提供其他语言的绑定,但通常原生的API性能最好、最新。
其次是工具领域,无论是网络安全还是杀毒软件,C++仍是主流语言。
根据100offer的后台数据显示,目前入职的程序员年薪最高达47万,最低22.4万,C++程序员的收入与其它编程语言的岗位相比处于持平状态,没有出现劣势。
随着C++逐渐成为某些特定企业和特定项目所需的语言后,高级C++程序员的收入也会更具有竞争性。
知乎红人 @vczh 说:「我在上大学的时候几乎就只学习C++,后来实习的时候去了微软,结果到了那里才知道,那个组是不用C++的,怎么办?凭借着C++带给我的殷实的功底,我按时完成了老板给我的“两个星期内学会C#和WCF基础知识”的工作,顺利开始工作。」
当然,这只是vczh的个人经历,不具有普遍性,但不可否认的是C++仍具有不可替代性。某家创业公司CTO在接受采访时表示:「即便有很多人唱衰C++,但在当代,仍有很多很多项目的目标平台暂时只提供C++编译器的支持,仅从这一点而言,C++是不可能彻底死亡的。」
从应用领域来说,C++适用于高性能计算、嵌入式系统、开发服务器软件、游戏、实时系统等,所以,短期内能彻底取代C++语言并不存在。
C++在系统、图形、网络等很多领域都是不可替代的,它的光辉岁月让它的死亡速度得以削减。
所以某知名游戏开发者对C++的如此评论,只不过是对某种语言的鄙视吧,程序员业内不是有很多鄙视链吗,比如我在北京四号线地铁大喊:php是最好的语言,java是已经死掉的语言,产品经理是好人!
……
……
……
估计我会被打死吧
点击以下关键字了解更多相关内容——
自由工作:自由工作体验 | 自由工作安排 | 找靠谱程序员 | 编程经验 | 业余赚钱