C++是鸡肋???

阅读本文大概需要5分钟。

一个大一计算机新生的咨询:

2f36515601ee4e9ecd6f7e1405b56a56.png

这还真是问对人了,我毕业第一份工作就在腾讯游戏做C++开发,之后在360担任C++高级工程师、C++技术专家,写了10年C++代码。

不可否认C++门槛极高,学习难度大,这真的是事实。

要知道:程序运行效率、开发效率、语言复杂度这不可能三角不能同时满足。

要想运行效率高,就必须直接操作底层资源,比如绘图、内存等等,这种颗粒度的把握就会带来开发效率急剧下降。

用C++做过控件或者写过网络socket的朋友,应该都明白这其中的痛苦,一个内存忘记释放了,程序就会崩溃,一个资源忘记释放了,软件就会花屏。

想要开发效率高,就得提供高层次的抽象,一旦提供了这种抽象,就会让语言复杂度倍增。

C++为了尽量实现:开发效率和运行效率,就只剩一条路:牺牲语言复杂度,牺牲程序员了。

C++不仅难学,更可怕的是:很多自认为资深的C++程序员其实可能已经走火入魔了。

以下三点就是走火入魔的特征:

1.拒绝优秀框架

用其他语言比如Java的程序员,很少出现这个问题,基本是流行且稳定的框架大家都会用,但C++程序员极容易拒绝一切框架,原因是因为C++语言本身就离底层近,很容易自己封装出“轮子”,时间长了就只用自己的“轮子”了。

2.过度泛化

泛化算C++的精髓了,在各种知名开源项目中,都可以见到大量的泛化编程,但泛化编程有一个前提:能读懂、能掌控,脱离这个前提条件拼命泛化无论对自己还是对团队都是大灾难。

3.过度优化

优化和重构在C++语言里很重要,因为C++很多资源都得自己掌控,但适度即可,甚至有时候我们要容忍一些小问题。因为用C++写出的产品优化空间近乎无限,到后期投入产出比就会极低。

C++不仅难学,现在就业岗位的确不如Java之类的技术栈多。

曾经桌面操作系统和PC互联网时代搞C++的人非常多,但2013年之后移动互联网兴起,这批人大部分转行安卓/IOS/Java,只有一部分还在坚守C++,他们活跃在各大厂的基础组件或平台架构组,比如腾讯的即时通讯后端开发,还有一部分在游戏公司核心团队,比如引擎研发组之类。

但这部分人绝对称得上高精尖,动辄年薪过百万,并且基本没有程序员中年危机。

如果要问我现在还能不能选C++作为技术栈,我的答案是:可以。

虽然C++已经没有鼎盛时期的辉煌,但在以下领域还是绝对的霸主:

1.在游戏和工具领域仍然是主流

首先是游戏领域,比如大部分游戏引擎(如Unreal/Source)及中间件(如Havok/FMOD),虽然有些C++库提供其他语言的绑定,但通常原生的API性能最好、最新。

在工具领域,无论是网络安全还是杀毒软件,或者是信创领域,C++仍是主流语言。

尤其是信创领域:云服务:各种云和相关服务内容,基础软件:数据库、操作系统、中间件,应用软件:OA、ERP、办公软件、政务应用、流版签软件,信息安全:边界安全产品、终端安全产品等。

这些都是中国未来发展要重点攻克的领域。


2.需要极高的性能和控制性的应用场景

需要程序员压榨每一分硬件性能的地方并不多,特别是现在的服务器核心数很多,只要能充分利用多核心,每个核心没有完全挖掘也是可以接受的。

一般来说,需要压榨硬件潜力的领域有:

1、操作系统

每个人每天都要用操作系统,这一块的性能哪怕提升1/1000,全球计算机加一起也是相当可怕的。

2、游戏引擎

更好更酷的游戏是主机硬件进化的主要推进器之一,而游戏一旦卡顿,基本就没法玩了,这个领域提升性能和可控性有无限需求。C++一直以来都是编写游戏引擎的首选语言,而且几乎是唯一语言。

3、嵌入式程序

单片机的硬件性能很弱,存储空间极小,C++就派上大用场了。

4、加密与安全方向

这个领域和操作系统类似,每个人每天都会用到。所以用C++来优化很有必要。

以上这些领域在肉眼可见的未来C++都是第一选择,同时这些领域也更容易深耕进而具备核心竞争力。

所以对于那些有志于攻克C++技术栈的人来说,C++绝不是什么鸡肋!前途也绝没有什么问题!

今天就写这么多了,我们下期见,别忘了点赞和在看哈~

其他原创:

疫情之下,外包和小公司都难顶!

技术总监被开除了....

美国计算机高校YYDS?

涨薪拖了两年了....

晋升阿里P7,真的难!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值