http://www.programfan.com/club/post-249117.html
欢迎到本论坛上面地址回帖讨论。 

C++已经走多了20个年头了,98年开始有标准,03年再次修订,0x年还会修订。

C++优秀到什么地方?至少支持传统的编程方法,支持OO支持GP,基本上兼容C,但不完全是,或者说严格上来讲C不是C++的子集。这样可以使原来用C编写的程序基本上可以在C++下编译并运行,可能仅仅做少量的修改。

Java是Sun独家,Java的优势是跨平台和丰富的类库支持。这无可否认,我们可以廉价的使用那些类库而不用任何额外费用,开发周期短,可以说是“速成”。Java程序员可能更能说出Java一大堆优势来,希望他们多多发言。不过以鄙人的短浅学识来看,似乎没有哪个商用程序考虑过移植问题哦。

C#是MS独家,据说C#比Java更好用,类库及其丰富,开发更容易。希望C#程序员多说几句。不过跨平台可能是没有什么希望了,MS会让他们的C#跑到Unix或者Linux上去?估计太阳从西方出来了。

Java说高效,C#会笑,C#说高效,C++会笑,C++说高效,C笑,C说高效,汇编笑。尽管Bjarne Stroustrup接受采访的时候回答这个问题,说没有发现C++比C低效,问题是有没有人敢跟他PK的问题,如果有,我相信那基本上如同自杀差不多。关键问题是现在的编译器和优化器能不能编译并优化的那么好的问题。同样的算法下,程序大了,可能编译后会有点差异。我们多大程度上更在乎效率问题呢?网络上Java可能是赢家,单机PC上基本是C/C++的天下。嵌入式上,很遗憾,令Java创作的做初衷的基本落空。嵌入式上更多的用汇编和C,C++也用的可能也有,我知道市场占有率大约70%的手机操作系统Symbian基本上式纯C++编写,仅仅极少量汇编,由于汇编可以潜入C++程序编译执行,可能也就没有必要单独提出那点来论述了。

C/C++没有一个通用的GUI,市场的则互相不通用,相比而言Java和C#都内建要更好一点。

Java有模板支持泛型,不过灵活性跟C++对GP的支持,很显然不在一个重量级别上,至于C#怎么支持,偶不懂,希望朋友发言阐述这方面。为了复用,当然我们希望语言本身对GP支持很好。

C/C++没有内建支持多线程,这可能令很多C++程序员不太满意,因为处于效率考虑。Java和C#可能感到很自豪这点吧。

C/C++没有内建垃圾回收机制,可能使用不当会造成内存泄露,这个时候Java和C#又笑了,C/C++程序员会说,有垃圾回收机制就不会内存泄漏吗?当然,即使有垃圾回收机制,仍然可能内存泄露,这跟程序员有关系。用Java和C#编程不一定就不会内存泄露,这点似乎令人尴尬。

C/C++的应用我知道的有phtoshop,NASA的火星探测器,很多游戏,通信网络,操作系统,等等,嵌入式,图形图像处理,驱动程序,数据库,很多应用软件,等等

Java的应用我不了解,给我的感觉似乎只能打wrapper,不能编写具体框架和核心程序,C#的更不了解,希望后面的朋友补充说明。

记得Java刚刚推出不久很多C++程序员转向Java,无可否认,Java是一种比较容易使用和学习的语言,C#推出后又很多的Java程序员转向C#,然而有人却说,当你用Java或者C#编程开发,几万行以上的软件就知道了,执行效率低得吓死人。真的假的我不知道,但是我知道很多开始用Java和C#的程序员又转学习C++,说Java和C#不好。不过Java的使用者远远多于C++的使用者,也有人抱怨的Java程序员就跟民工一样,因为太多了!

Ok,以上仅仅是鄙人感觉而已,由于本人学识浅薄,很多地方说错很正常,欢迎朋友们各抒己见,但是不要搞人身攻击哦,呵呵。