當然C#和Java也有自身的優勢,就是良好的結構和高效快速的開發,現在應用層的程序大部分都不在使用C++開發了,因為對壹般的網絡前端和桌面應用程序而言,C++程序員往往要付出C#程序員數倍的時間和代碼才能開發出相近的用戶體驗,誠然,C++的程序優化空間大,運行效率高,可在現在的硬件條件下,這點優勢基本不會被察覺出來。可以說,阻礙用戶使用C#程序的唯壹壁壘就是要先安裝壹套現在已經100M+的.NET Framewordk,阻礙程序員使用C#的唯壹壁壘就是要理解和應用壹整套.NET架構和規範(雖然通常只要了解壹小部分就可以完成開發,但不得不說整個.NET架構上手確實不易),.NET是由微軟牽頭,眾多組織***同維護的。
在說Java,不把瀏覽器使用的javascript算在內,也有SE,ME,EE三套開發環境,對應用戶桌面,移動設備和企業級網絡架構的應用開發,涵蓋的範圍很大,而且Java虛擬器的效率也不錯,大部分用戶只要安裝JRE環境(比.NET輕巧的多)就可以運行了。是面向對象語言的鼻祖,所以面向對象的特性也最為規範(或者說死板,看妳喜不喜歡這種思想了^-^),Java的應用範圍非常廣闊不過近年來趨勢並不樂觀SE,ME,EE市場上都有縮水,不過話又說回來,瘦死的駱駝比馬大,呵呵。Java是由Sun開發,現在由Oracle維護。
從編程的歡樂度上來說,壹般從匯編起家的程序員都有要了解每壹條語句是如何執行的強迫癥,這使得他們在編寫C#或Java程序的時候又壹種雲裏霧裏的感覺,總是提心吊膽的,而C++可以隨時查看庫的源碼(大部分就是匯編語言)讓人編起來胸有成竹。但隨著代碼的復雜度提高,就是再有經驗的程序員來說,面對著要同時兼顧自己申請的每壹塊內存,每壹個指針的有效性,還要擔心某個邏輯會不會被編譯器優化掉,線程是不是安全,函數是farcall還是nearcall,頁表變了怎麽辦等等等等問題的時候,都會顯得力不從心。這時,Java和C#提供的沒有指針,自動內存收集,簡單的線程調度方法,穩定可預測的編譯環境,方便的程序域管理就會像太陽壹樣光輝!
總之,我的建議是,先學C++,等有了壹定方向後再轉向C#和Java,學C++的同時可以稍微看看C#和J2SE的語法與編譯方式。