C++目前主要用于像操作系统这样一类偏底层的的应用开发,包括像Windows/linux等这样的大型商业操作系统,和嵌入式操作系统、嵌入式设备上的应用。还有一些开源的软件,也会选择C++开发,这些系统主要考虑程序执行效率和生成的可执行文件的体积(C代码生成的可执行文件体积相对更小),当然还有一些是历史技术选型问题,这类软件以redis、libevent、nginx,目前像国内的电信服务商所使用的电话呼叫系统一般也是基于一款叫freeswitch的开源C程序做的二次开发。
然而,C++也是出了名的复杂、难学、难用。上手和熟练掌握都较难,因此也比较容易出错、被误用。但这样一来,熟练的C++程序员也就自然而然获得了“水平很高,薪资很高”的名声。所以这也不完全是件坏事。
C++已经40岁了,但它仍然是一门非常流行且具有活力的语言。继沉寂了十多年,并终于发布语言标准的第二版——C++11——之后,C++以每三年一版的频度发布着新的语言标准,如今已经到了C++20,每一版都在基本保留向后兼容性的同时,提供着改进和新功能。
这些新功能让很多人望而生畏,学习成本非常高——但这是一种误解。这些新特性以及相关的编程实践,恰恰让C++开发很多东西变得更为容易。
但在学习C++的过程中,光掌握理论知识是不够的,可是对于初学者来说,不知道该通过什么方式让自己去实践,把停留在语法层面上的C++,变成实际工程中的C++,或者是开源与项目太多,找不到适合自己的。
回归到正题,初学者千万别被C++表面的复杂现象吓到,根本不需要也不应该把C++过去的规范全学会。老老实实学习C++领域那些大师的经典著作,然后多写代码多做项目。
它的发展前景也非常广阔,作为未来趋势的人工智能和机器学习,外衣是Python(模型描述),但是内核还是C++(高性能运算)。
此外,中国几乎所有大学计算机专业都会开设C++课程,它也就成了很多人初入编程的语言,为什么C++会受到这么大的关注呢?总结了3点它的核心竞争力:
抽象能力:这意味着较高的开发效率,同时,更重要的是,它不会因抽象而降低性能。
性能:虽然完成同样的功能,C++需要的代码行数可能是Python的三倍,而性能则可以轻松达到Python的十倍以上。
功耗:不管是移动设备,还是服务器,我们都越来越关注功耗。使用C++通常意味着低功耗,电池能跑更长时间,服务器少花点电费。