(原創) 為什麼要學C/C++? (C/C++)

很多人覺得C/C++已經是過氣的語言,應該學 C# 或 Java才對,在這裡我提出一些我個人的理解:

1,C/C++是個兼具高低階的語言
C/C++有高階的Class提供Abstract Data Type,可以開發應用軟體,也有低階的Pointer,可以開發系統程式。(C#、Java仍定位為開發應用軟體的高階語言,無法開發OS、Compiler、Driver等系統軟體)。目前各OS的API幾乎都是以C/C++所撰寫,使用C/C++可直接呼叫之,不用擔心格式轉換及相容性問題。

2.C/C++同時支持多種設計典範
C/C++可同時支持Procedure-Based Programming、Object-Based Programming、Object-Oriented Programming、Generic Programming。(C#、Java為純Object-Oriented Programming)。

3.C/C++可同時設計軟體硬體
C/C++原本只能設計軟體,但加上SystemC的Library後,C/C++搖身一變成為HDL,可以用C/C++設計硬體和IC,另外其他HDL如Verilog、SystemVerilog也有C/C++的影子。(C#、Java目前仍然無法設計硬體)。

4.大量使用Operator,程式乾淨簡潔。
C#、Java也算乾淨,但Operator用的沒C/C++兇。

5.C/C++有標準的Library,使C/C++具可攜性。
C/C++可在眾多平臺下編譯器,具程式碼跨平臺特性。(C#、Java都是專屬平臺的Library,C#的Library只能在.NET平臺用,Java的Library也只能在Java平臺用。而Java所謂的跨平臺是執行檔的跨平臺,不是程式碼的跨平臺)。

6.執行速度快。(C/C++ > C# > Java)。
C/C++為Native Code,不像C#、Java須跑在虛擬機器上的Managed Code。

7.同時活躍於學術和業界
學術普遍上使用C/C++在各種領域,而業界更是以C/C++為標準,以Microsoft來說,雖然.NET為Microsoft力推的平臺,但事實上,Microsoft旗下的產品卻都仍使用Visual C++開發,為世界上最大的C++公司。

8.C/C++為其它程式語言的母語。
C#、Java、JavaScript、ActionScript都可以看到C/C++的影子,只要學會C/C++,再學其它語言都很快。且很多領域的Bible,都是用C/C++寫的(如Design Pattern、OOA/D、Generic Programming),C/C++的書遠比C#、Java多很多,畢竟C/C++的歷史遠比C#、Java久。

9.學習C++的Generic Programming。
若你主要使用C#、Java為開發語言,OOA/D和Design Pattern領域的書在這兩個語言已經有不少經典,但Generic Programming在這兩個語言都才剛剛加入而已,更別提有什麼經典的書,學習C++的Generic Programming觀念技巧後,可用在C#和Java上。

posted on 2006-10-09 23:12  真 OO无双  阅读(1906)  评论(1编辑  收藏  举报

导航