源码家族
当前位置:首页 > 资讯中心

资讯中心

【 服务器端,游戏, 嵌入式软件 哪一个对C++开发者来说有更好的前景 】

发布时间:2021-06-02 15:27:58 阅读次数:136

C++在软件开发领域保持了二十年来的主导地位,C++开发几乎应用到了所有领域。

这背后的原因是计算能力昂贵,而人力相对便宜。 因此,开发者愿意使用运行效率更高的语言和平台来节省算力成本。 为此,他们愿意支付一定的开发、测试和维护成本。

C++语言广泛应用.png

但摩尔定律几十年来一直有效。计算能力价格每 18 个月下降一半。 20年后,单位价格的计算能力增长了近万倍。

近年来,我们可以看到,在各个领域,尤其是应用开发领域,多语言都有取代C++的趋势,而且这种趋势是不可逆转的。

近年来,很少有新成立的大型项目选择C++作为开发语言,C++基本退出了应用开发领域,尤其是移动应用。自从 Symbian 和 BlackBerry 死了,就没有移动平台首先使用 C++作为第一语言了。

这并不是说 C++ 即将消亡,也不意味着没有 C++ 程序员没人要了。只是C++的版图缩小了一些,但现在亡国还为时过早。

C++传统上很强势的领域,它依然具有统治地位,主要就是基础设施和超大型软件应用领域。

C++语言依然强势.jpg

如:


数据库、编辑器、编译器、脚本引擎、虚拟机、排版软件、游戏引擎、应用框架、计算平台等。

代表项目包括MySQL、VisualStudio、LLVM、V8、VMWare、Office/WPS、3DMAX、Qt、WebRTC、Tensorflow等。

可见,它们都不是小项目。源代码上百万甚至上千万行,历史悠久,有的长达30多年。

在这类项目中使用C++一方面是历史惯性,另一方面,C++在这些特殊领域的性能确实有优势。比如C++和C汇编混合时几乎没有额外的开销,而Java的JNI和Golang的CGO都有额外的开销。

对于刚进入软件开发领域的年轻人来说,C++并不友好。新的工作机会确实在减少。现有项目所需的基本技能和相关知识积累非常高,对职场不陌生的新人也能很快掌握。是的,除非你聪明勤奋,并且有很大的学习决心,比如编译器,数据库,再聪明勤奋,你也得学很多年,而且肯定有经验丰富的行业前辈指导你。在这些方面,C++本身不是问题,难点在于领域相关的知识和技能。

选择C++将停止快速跟踪和快速赚钱的想法。你要专心研究,慢慢积累,花5-10年的时间去深入某个领域。这需要很大的决心和毅力。不要太在意投入产出比。

虽然我写了 20 年 C++,也用 C++ 写过一些大项目,但我逐渐放弃了 C++。在过去的一年里,我用得最多的是 Golang、Python、Objective-c 和 Java。

因为我的领域是应用开发,所以是面向广大终端用户的应用。这个领域越来越强调开发效率。我不太介意性能。 C++显然很难做到。

在以前的软件开发中,版本迭代周期一般是六个月到一年,而现在互联网软件的迭代周期通常是每周一次。比如YY在某年发布了25个版本,只有春节假期之后,这还不包括十几个小补丁版本。

C++对工程师的编码标准要求太高,容易就搞出野指针、内存泄漏、缓冲区溢出等,所以测试成本、调试成本、崩溃解决成本都比较高,周期长,对开发者来说消耗了大量的精力。

C++汇编.jpg

那时候,经常有大量崩溃上报,看minidump又是崩得乱七八糟的callstack,至今心有余悸。

具体到题主的问题,我可以说 C++在这三个领域都没啥前景,按照趋势来看这三个领域未来都不算是C++的强势领域了。

服务端的瓶颈已经不是计算性能了,而是传输、IO、伸缩性,并行度等

游戏开发除非是引擎,业务逻辑剧情基本都是写脚本了,而除非是大公司有积累,否则也不会自己撸引擎。

嵌入式依然受摩尔定律支配,随着计算能力越来越便宜,语言也会更倾向于开发效率更高的,而不是运行效率高的。

如果真的对C++有情有独钟,非要写C++不可,那么就去我上面提到的几个C++强势领域吧,基础设施和超大型应用。


上一篇:你真的懂UI设计吗? 2021年UI设计风格新趋势
下一篇:在使用php的过程中,你是否遇到下面的几个问题呢