C++的能力上限非常高,可以说在软件领域没有C++做不好和做不到的事情,只是开发者水平和成本问题,而C++之后出现的语言都有些无论如何都做不好或根本做不到的事情。
C++虽然能力上限高,但是达到这个上限对开发者的要求也很高,不是普通程序员可以做到的。
其它语言虽然上限低,但是只要不去碰那些极端要求的领域,在各自的优势领域里还是能超越C++的,对工程师要求也没那么高,但是在全领域超越C++的目前还没有。
C++的难点在于给开发者的自由度太高了,什么都可以做,限制很少,导致水平不够的人也可以胡搞瞎搞,把代码写的乱七八糟,然后怪C++太难太复杂。
学好C++,最重要的是你要有学C++的需求,就是个人目标是要成为顶级程序员,成为开发基础设施,设计构建软件平台的人,没有宏大的理想不会有足够的动力去学C++的,过程中太多困难会导致放弃的。
长期来看,C++还是会被取代的,只是这个长期非常长,可以入选有生之年系列。
可以看到在最近几年新出现的软件项目里,C++的使用率已经在下降了,但是很多历史悠久的基础设施类的项目基本都是C++,这些项目生命周期都很长,不会轻易被淘汰。