跨平台是程序设计师长久的梦想,谁都想要程序只写一次,就能在各种平台执行,Java当初就是以『Write once, run every where.』打响知名度,因此号称是终极程序语言,也吸引了很多人头向Java阵营。Java以语言角度算是不错的语言,语法干净简洁,OO支持也算完整,Framework设计的也不错,写出来的程序语法也蛮漂亮的,还Open Source,且支持应用很广,从GUI、Component、Web、Embedded都有支持,但Java技术最大的致命伤就是执行速度缓慢,透过Virtual Machine技术使得Java得以实现跨平台,什么是Virtual Machine呢?简单的说,就是在给个OS上在装一个JavaOS跑Java程序,这种方式就像你写了一个Windows程序,然后也宣称是跨平台,只要User在Linux或Mac装上VMWare,然后在VMWare下灌Windows XP,这样也能在Linux、Mac下执行你的Windows程序,但经验告诉我们,用VMWare跑其它OS,速度大约只剩下6成左右而已,Java程序速度慢的原因就在这里,这是Virtual Machine的宿命。
C/C++的哲学就不一样了,C/C++强调的是『Write once, compile every where.』,同一份程序代码,只要在该平台重新Compile成该平台的执行档,就能在该平台执行,若文字模式下的程序,的确可以跨平台,程序完全不需修改,但GUI盛行以后,由于各GUI的Library都不一样且没有标准,所以GUI程序并没办法跨平台Com