??
字號:
第十二章 回到C/C++的王國
"讓我們重返榮耀之都吧!"
當年Windows平臺C/C++開發(fā)工具四大天王一戰(zhàn),在Microsoft取得了市場的主導力量
之后,C/C++開發(fā)工具的市場和競爭反而緩慢了下來,Windows上C/C++開發(fā)工具的進
步也開始牛步化。VC++一連兩三個版本的進度幅度并不大,除了稍后推出的ATL還有
新意和技術革新,VC++編譯器除了在C/C++語言上更趨近于標準之外,MFC本身幾乎已
經(jīng)沒有什么大的進步了。在Watcom和Symantec退出市場之后,VC++也順利地接受了
Watcom和Symantec的市場。而Borland C/C++雖然也損失了大量的市場,并且失去了
C/C++的王座,但是在數(shù)年后,Borland推出C/C++Builder,以C/C++ RAD工具、以及
更符合ANSI C/C++標準和VC++進行市場的區(qū)隔,也慢慢地收復了一些失地。雖然
Borland C/C++工具系列已經(jīng)無法像以前一樣是市場第一的C/C++開發(fā)工具,但是
Borland在Windows的C/C++開發(fā)工具市場仍然占有30%強的市場份額。
C/C++開發(fā)工具在C/C++ Framework一戰(zhàn)之后,開發(fā)的重點卻似乎模糊了起來。由于VC
++沒有強勁的競爭,因此整個的發(fā)展速度緩慢下來。不過C/C++技術在C/C++語言、函
數(shù)庫(Library)和通用Framework方面卻快速地如雨后春筍般興起。特別是在C/C++語
言的標準化更為完善、以及Template的功能被C++ Standards Committee接受而且被
廣泛地由C/C++編譯器支持之后,各種支持和使用Template的Framework、C/C++函數(shù)
庫也快速地占據(jù)了C/C++開發(fā)者的心靈,成為有力的程序技巧之一。在Java日益興盛、
開始威脅C/C++的市場時,反而激發(fā)了C/C++語言前所未有的高度發(fā)展。不過,目前
C/C++開發(fā)工具以及C/C++編譯器是否跟上了C/C++這么快速的發(fā)展腳步呢?在本章繼
續(xù)討論之前,也許應該讓我們先看看目前C/C++市場的現(xiàn)況。
日不落帝國
曾幾何時,C/C++是征服全世界的語言之一。在數(shù)年前C/C++語言全盛的時期,我記得
幾乎所有的應用系統(tǒng)都選擇使用C/C++來編寫,如從系統(tǒng)程序、公用程序、軟件包到
項目開發(fā),因此也造就了C/C++開發(fā)工具橫掃軟件銷售市場的現(xiàn)象。但是隨著RAD工具
和Java的逐漸受歡迎,讓C/C++開始從許多的市場撤退。特別是當Java興起之后便快
速取代了以往C/C++在跨平臺語言的主導角色,讓C/C++語言在這個市場受到Java最大
的威脅。不過,C/C++仍然在許多方面的應用不可否認地具有絕對的優(yōu)勢,特別是在
需要高度執(zhí)行效率的應用系統(tǒng)中,例如驅動程序和低階的系統(tǒng)程序等。那么C/C++目
前的市場到底有多少?有沒有像兩、三年前許多信息機構預測的那樣,Java將會大幅
搶走C/C++的市場、并且吸引大量的C/C++程序員呢?讓我們以實際的數(shù)據(jù)來看看目前
的狀態(tài)。
右圖是全世界專業(yè)信息機構對于C/C++開發(fā)工具市場規(guī)模和使用狀況的調查結果。從
這個結果圖形中我們可以得知幾個非常重要的C/C++信息:
首先請讀者注意的是,就整體來說C/C++開發(fā)工具的市場的確是處于小幅的下降趨勢
之中,根據(jù)Gartner Group的調查,C/C++市場是以5%的幅度下降,而根據(jù)Evans Data
Survey的調查,C/C++市場則是以3%的幅度下降。不過稍后我們會說明,C/C++開發(fā)
工具是在哪些平臺和應用中產生變化。
另外一個值得注意的地方,是C/C++語言主要是用于三個應用領域之中,分別是客戶
端、伺服端和維護現(xiàn)有的應用程序。從圖中我們也可以發(fā)現(xiàn)C/C++語言被使用的轉變
狀態(tài),在工業(yè)應用方面,C/C++開發(fā)工具仍然有很大的成長,這當然是因為C/C++語言
被廣泛用于驅動程序的開發(fā),例如顯示卡驅動程序、網(wǎng)卡驅動程序等。此外C/C++語
言也被用于移動設備的開發(fā),例如Nokia為了和Microsoft的Smart Phone對抗而推出
的Symbian手機系統(tǒng)。當然,在操作系統(tǒng)、系統(tǒng)程序和低階核心應用方面C/C++語言仍
然有著不可取代的地位。
但是,C/C++在其他方面的應用的確是在下降之中,特別是在企業(yè)的應用系統(tǒng)方面。
例如目前在大型項目、軟件包、MIS和企業(yè)內部的應用系統(tǒng)中,使用C/C++語言的比例
的確在下降。其中主要的原因是C/C++語言本身的難度較高,因此生產力也不如其他
語言和開發(fā)工具。加上較易使用的RAD工具和Java出現(xiàn)之后,C/C++語言在這些領域的
影響力是大不如前的。這個現(xiàn)象也非常契合臺灣地區(qū)目前的狀況,在前幾年C/C++興
盛的階段,幾乎大部分的軟件包廠商和SI以及系統(tǒng)廠商的確都是以C/C++開發(fā)工具為
第一選擇。不過由于C/C++需要的人力素質較高,而且生產力無法大幅提高,因此在
目前軟件包和項目的開發(fā)大多都由Delphi、VB、PowerBuilder以及Java所瓜分。
至于C/C++開發(fā)工具使用的操作系統(tǒng)分配狀況,則可以由右面的調查結果來說明。
從圖中我們可以發(fā)現(xiàn),UNIX/Linux操作系統(tǒng)平臺仍然是占了最大的使用平臺,這當然
是由于UNIX/Lmux本身就是使用C/C++語言開發(fā)的。而且在UNIX/Linux平臺我們可以發(fā)
現(xiàn),C/C++開發(fā)工具的規(guī)模仍然在成長,可達成10%左右的年成長幅度。由此可知,
雖然Java現(xiàn)在已經(jīng)入侵UNIX/Linux平臺,但是對于C/C++的影響仍然不太顯著。
C/C++開發(fā)工具第二個最大的平臺就是Windows平臺了,雖然現(xiàn)在Windows平臺是開發(fā)
工具百花齊放的狀態(tài),但是不可否認的是,C/C++仍然是Windows最重要的數(shù)個語言之
一,因為122 Million到137 Million的市場規(guī)模是相當大的。而Windows平臺的C/C++
開發(fā)工具的成長雖然在為數(shù)眾多的開發(fā)工具瓜分之下,仍可達到12%的成長率。這代
表C/C++語言即使是在Java強力競爭之下仍然擁有一定的成長量。由于Windows平臺下
的C/C++和Java開發(fā)工具是處于同時成長的情形,因此,這可能表示在Windows平臺下
許多的程序員應該是同時使用了C/C++和Java開發(fā)工具。
至于其他平臺的C/C++開發(fā)工具則呈現(xiàn)下降的趨勢,而且是處于快速下降的情形,這
也可以解釋為什么Java在Mainframe和OS/400等大型專屬平臺成長快速的情形。由此
可見,在這些專屬市場中C/C++語言的確是受到Java很大的影響。
除了C/C++語言本身之外,再讓我們觀察一下目前主流語言應用的現(xiàn)況,通過觀察不
同語言之間勢力消長的情況,我們也可以了解其他語言對于C/C++語言的影響。右圖
即顯示了信息機構對于目前幾個主流語言之間成長和下降的預估。
從圖中我們可以看到,幾乎所有的傳統(tǒng)語言例如VB、C/C++和COBOL等都呈現(xiàn)下滑的趨
勢,相同的現(xiàn)象當然也在第2級的主流語言例如Object Pascal和PowerBuilder等中看
到,但是新一代的虛擬語言卻呈現(xiàn)了對比的情形而大幅上升和成長,表示使用這些新
語言的程序員人口正在快速的興起之中,例如SUN的Java和Microsoft的C#,而Java快
速興起也可以解釋為什么Borland的JBuilder現(xiàn)在已經(jīng)是Borland最大收入來源的開發(fā)
工具。
看完了C/C++整體市場的趨勢之后,C/C++語言目前在程序員人口中使用的情形到底是
如何呢?下圖是2002年針對美國程序員調查的結果,從這個結果中我們已經(jīng)可以看到,
在所有調查的人數(shù)中使用C/C++的程序員占了45.6%的比率,但是只使用C/C++單一語
言的比率只有3%,可見,現(xiàn)在大部分的C/C++程序員應該已經(jīng)開始同時使用兩種以上
的語言。
而第二幅圖則是針對美國程序員對于未來計劃使用C/C++語言的調查結果,從圖中可
以證明前面圖形和分析的結果,C/C++語言的確是以3%到5%的速度在衰退之中,也
有愈來愈多的C/C++程序員開始使用多種語言來進行開發(fā)的工作,當然C/C++程序員選
擇的最多語言就是Java和C#了。
在"令人焦慮的時代"一章中我們已經(jīng)討論了Java語言目前使用的狀況以及未來的發(fā)展。
從其中我們了解了Java雖然快速地興盛,但是也看到了Java似乎已經(jīng)在美國進入成熟
期,開始出現(xiàn)穩(wěn)定的狀態(tài)并且有小幅的衰退。既然C/C++和Java這兩個擁有共同基因
的語言都處于穩(wěn)定或是小幅衰退的情況,那么流失的程序員到底到哪里去了呢?當然
答案很明顯,這些流失的程序員是轉到擁有相同基因的C#語言陣營了。
雖然Microsoft的Visual Studio.NET是在2002年的2月才正式推出,但是C#的編譯器
和相關的工具早已在Beta階段便為許多程序員所使用,因此在2002年便已經(jīng)吸引了一
些程序員使用,而這些第1波使用C#的程序師大都是從C/C++和Java語言轉換跑道而來
的。右圖是C#語言在2002年使用的狀況調查,C#在不到1年的時間便吸引了美國14.6%
的程序員人口使用是相當驚人的表現(xiàn)。
那么未來呢?C#還能夠穩(wěn)健地成長嗎?因為唯有穩(wěn)健成長的語言才能夠有機會成為主
流的語言。右圖便是對于2003年C#語言使用狀況的評估,從這些數(shù)據(jù)我們可以看到,
C#語言果然將以穩(wěn)健的腳步成長,每年以將近10%的速度發(fā)展,而C#如果持續(xù)地照這
樣的速度發(fā)展下去,那么C#將在4年之內達成Java花了七八年才達成的現(xiàn)狀。當然,
C#這種成長趨勢也暗示了Microsoft的.NET將在不久的時間內對于Java平臺產生重大
的影響。
對于C/C++、Java和C#這三個擁有類似基因的語言,如果我們把它們的發(fā)展放在一起
比較的話,會發(fā)現(xiàn)目前C/C++和Java語言正處于激烈競爭的狀態(tài)。但是C/C++和Java千
萬不可忽視C#這個后起之秀,C#正以旺盛的企圖快速地向兩位老大哥挑戰(zhàn)之中,以競
逐在程序員心中主流的地位。
從上面所有的分析中,我們可以知道使用C/C++語言的人數(shù)雖然的確是在下降之中,
但是幅度并不大,這代表C/C++語言有著非常穩(wěn)定的支持力量,這當然也是因為在許
多的應用中C/C十十語言擁有不可取代的優(yōu)勢,更何況C/C++開發(fā)工具的市場仍然擁有
將近600 Million美金的規(guī)模。這實在是一個非常大的數(shù)字,以Borland來比較的話,
Borland全年所有的軟件營收不過是240 Million左右,可見C/C++市場的潛在力量,
對于Borland來說這是絕對不可放棄的開發(fā)工具市場。
相對于歐洲的發(fā)展模型和美國非常接近,另外一個全世界最大的程序員市場--中國大
陸,并沒有在這次的調查中顯示出開發(fā)工具的使用狀態(tài),也許未來應該有全球軟件語
言的調查評估。不過從各種跡象顯示,大陸的市場目前是以C/C++和Ddphi分占程序員
使用的大宗,而Java則在快速的成長之中。這和臺灣地區(qū)有一點不同,那就是在臺灣
地區(qū)是以VB、Delphi和C/C++為主要的語言力量,而Java則是幾乎進入成熟的階段,
開始和VB、Ddphi以及C/C++分庭抗禮。因此對于Borland來說,不管是在中國大陸和
臺灣地區(qū),C/C++開發(fā)工具都是很重要的,所以Bodand的RAD部門宣稱中國大陸的市場
是Borland RAD部門最后的圣地,因為在中國大陸B(tài)orland的C++Builder、Delphi、
Kylix和未來的C/C++開發(fā)工具以及.NET的開發(fā)工具都擁有全世界最大成長潛力的機會。
蓬勃發(fā)展的新興C/C++力量
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -