Scott Meyers曾说过,C++语言是一个语言联邦。C++包括面向过程,面向对象,泛型编程编程思想。如今C++11有加了一堆新特性,语言联邦更为庞大。
程序猿们,经常挑起语言之争,甚至连大师级人物都不能避免。Linux之父就曾经炮轰过C++。不过大多数语言都只能跟C++某一部分比,不是吗?
固然其他语言有些特性比C++优秀,甚至优秀很多,但是只有C++才是语言联邦!设计C++目的就是你需要啥就给你啥,如果你不需要大可不用,实用主义哲学。
我听说有人写了多年面向对象C++程序,没怎么接触模板。一些库的设计者很多没使用面向对象的特性,而采用模板。还有一部分人把C++仅仅当成更好用的C,模板,面向对象都不用。C++语言联盟,搞的C++程序员还要再细化分工,其他语言这种情况应该少见一些。
C++全能型语言,跟三国志里关羽,赵云,周瑜,甘宁,张辽,姜维这类人,这些人武敌不过吕布,文敌不过诸葛亮。但是这种人全才啊,很多地方都需要他!~
加个条件限制,如果只能一种语言,要完成很复杂庞大的任务,可能有些时候你需要面向过程,有些时候面向对象,又有可能需要模板泛型编程。而且你有希望总体性能很高,这个时候C++就上场了。
诚然,一个项目可以使用多种语言,就不必用C++了吧,但是也是在条件允许的情况下,不是吗?
在三国志里,赵云和关羽都是守荆州的人选,他们在任何情况下都能独当一面,派张飞和吕布就不妥,虽然他们超能打,但是遇到别人使计策就糟了。当然关羽也中计了,那是性格使然,而非关羽能力不行。只派诸葛亮守城也不行啊,没有将啊,阵前叫杀,总要有人去吧。
你可能会说,最好文臣武将都有,把诸葛亮吕布组合,但文臣和武将往往互相瞧不起,就像多语言之间存在兼容问题一样。
无论怎样,C++总有用武之地也。
中国文化博大精深啊!~
总结一句话,C++可能面向对象不及Java,C#好用。面向过程可能不及C好用等等。语言联邦,全能型语言总有其用武之地,就像上述讨论那样。