📄
字号:
第十二章 回到C/C++的王国
"让我们重返荣耀之都吧!"
当年Windows平台C/C++开发工具四大天王一战,在Microsoft取得了市场的主导力量
之后,C/C++开发工具的市场和竞争反而缓慢了下来,Windows上C/C++开发工具的进
步也开始牛步化。VC++一连两三个版本的进度幅度并不大,除了稍后推出的ATL还有
新意和技术革新,VC++编译器除了在C/C++语言上更趋近于标准之外,MFC本身几乎已
经没有什么大的进步了。在Watcom和Symantec退出市场之后,VC++也顺利地接受了
Watcom和Symantec的市场。而Borland C/C++虽然也损失了大量的市场,并且失去了
C/C++的王座,但是在数年后,Borland推出C/C++Builder,以C/C++ RAD工具、以及
更符合ANSI C/C++标准和VC++进行市场的区隔,也慢慢地收复了一些失地。虽然
Borland C/C++工具系列已经无法像以前一样是市场第一的C/C++开发工具,但是
Borland在Windows的C/C++开发工具市场仍然占有30%强的市场份额。
C/C++开发工具在C/C++ Framework一战之后,开发的重点却似乎模糊了起来。由于VC
++没有强劲的竞争,因此整个的发展速度缓慢下来。不过C/C++技术在C/C++语言、函
数库(Library)和通用Framework方面却快速地如雨后春笋般兴起。特别是在C/C++语
言的标准化更为完善、以及Template的功能被C++ Standards Committee接受而且被
广泛地由C/C++编译器支持之后,各种支持和使用Template的Framework、C/C++函数
库也快速地占据了C/C++开发者的心灵,成为有力的程序技巧之一。在Java日益兴盛、
开始威胁C/C++的市场时,反而激发了C/C++语言前所未有的高度发展。不过,目前
C/C++开发工具以及C/C++编译器是否跟上了C/C++这么快速的发展脚步呢?在本章继
续讨论之前,也许应该让我们先看看目前C/C++市场的现况。
日不落帝国
曾几何时,C/C++是征服全世界的语言之一。在数年前C/C++语言全盛的时期,我记得
几乎所有的应用系统都选择使用C/C++来编写,如从系统程序、公用程序、软件包到
项目开发,因此也造就了C/C++开发工具横扫软件销售市场的现象。但是随着RAD工具
和Java的逐渐受欢迎,让C/C++开始从许多的市场撤退。特别是当Java兴起之后便快
速取代了以往C/C++在跨平台语言的主导角色,让C/C++语言在这个市场受到Java最大
的威胁。不过,C/C++仍然在许多方面的应用不可否认地具有绝对的优势,特别是在
需要高度执行效率的应用系统中,例如驱动程序和低阶的系统程序等。那么C/C++目
前的市场到底有多少?有没有像两、三年前许多信息机构预测的那样,Java将会大幅
抢走C/C++的市场、并且吸引大量的C/C++程序员呢?让我们以实际的数据来看看目前
的状态。
右图是全世界专业信息机构对于C/C++开发工具市场规模和使用状况的调查结果。从
这个结果图形中我们可以得知几个非常重要的C/C++信息:
首先请读者注意的是,就整体来说C/C++开发工具的市场的确是处于小幅的下降趋势
之中,根据Gartner Group的调查,C/C++市场是以5%的幅度下降,而根据Evans Data
Survey的调查,C/C++市场则是以3%的幅度下降。不过稍后我们会说明,C/C++开发
工具是在哪些平台和应用中产生变化。
另外一个值得注意的地方,是C/C++语言主要是用于三个应用领域之中,分别是客户
端、伺服端和维护现有的应用程序。从图中我们也可以发现C/C++语言被使用的转变
状态,在工业应用方面,C/C++开发工具仍然有很大的成长,这当然是因为C/C++语言
被广泛用于驱动程序的开发,例如显示卡驱动程序、网卡驱动程序等。此外C/C++语
言也被用于移动设备的开发,例如Nokia为了和Microsoft的Smart Phone对抗而推出
的Symbian手机系统。当然,在操作系统、系统程序和低阶核心应用方面C/C++语言仍
然有着不可取代的地位。
但是,C/C++在其他方面的应用的确是在下降之中,特别是在企业的应用系统方面。
例如目前在大型项目、软件包、MIS和企业内部的应用系统中,使用C/C++语言的比例
的确在下降。其中主要的原因是C/C++语言本身的难度较高,因此生产力也不如其他
语言和开发工具。加上较易使用的RAD工具和Java出现之后,C/C++语言在这些领域的
影响力是大不如前的。这个现象也非常契合台湾地区目前的状况,在前几年C/C++兴
盛的阶段,几乎大部分的软件包厂商和SI以及系统厂商的确都是以C/C++开发工具为
第一选择。不过由于C/C++需要的人力素质较高,而且生产力无法大幅提高,因此在
目前软件包和项目的开发大多都由Delphi、VB、PowerBuilder以及Java所瓜分。
至于C/C++开发工具使用的操作系统分配状况,则可以由右面的调查结果来说明。
从图中我们可以发现,UNIX/Linux操作系统平台仍然是占了最大的使用平台,这当然
是由于UNIX/Lmux本身就是使用C/C++语言开发的。而且在UNIX/Linux平台我们可以发
现,C/C++开发工具的规模仍然在成长,可达成10%左右的年成长幅度。由此可知,
虽然Java现在已经入侵UNIX/Linux平台,但是对于C/C++的影响仍然不太显著。
C/C++开发工具第二个最大的平台就是Windows平台了,虽然现在Windows平台是开发
工具百花齐放的状态,但是不可否认的是,C/C++仍然是Windows最重要的数个语言之
一,因为122 Million到137 Million的市场规模是相当大的。而Windows平台的C/C++
开发工具的成长虽然在为数众多的开发工具瓜分之下,仍可达到12%的成长率。这代
表C/C++语言即使是在Java强力竞争之下仍然拥有一定的成长量。由于Windows平台下
的C/C++和Java开发工具是处于同时成长的情形,因此,这可能表示在Windows平台下
许多的程序员应该是同时使用了C/C++和Java开发工具。
至于其他平台的C/C++开发工具则呈现下降的趋势,而且是处于快速下降的情形,这
也可以解释为什么Java在Mainframe和OS/400等大型专属平台成长快速的情形。由此
可见,在这些专属市场中C/C++语言的确是受到Java很大的影响。
除了C/C++语言本身之外,再让我们观察一下目前主流语言应用的现况,通过观察不
同语言之间势力消长的情况,我们也可以了解其他语言对于C/C++语言的影响。右图
即显示了信息机构对于目前几个主流语言之间成长和下降的预估。
从图中我们可以看到,几乎所有的传统语言例如VB、C/C++和COBOL等都呈现下滑的趋
势,相同的现象当然也在第2级的主流语言例如Object Pascal和PowerBuilder等中看
到,但是新一代的虚拟语言却呈现了对比的情形而大幅上升和成长,表示使用这些新
语言的程序员人口正在快速的兴起之中,例如SUN的Java和Microsoft的C#,而Java快
速兴起也可以解释为什么Borland的JBuilder现在已经是Borland最大收入来源的开发
工具。
看完了C/C++整体市场的趋势之后,C/C++语言目前在程序员人口中使用的情形到底是
如何呢?下图是2002年针对美国程序员调查的结果,从这个结果中我们已经可以看到,
在所有调查的人数中使用C/C++的程序员占了45.6%的比率,但是只使用C/C++单一语
言的比率只有3%,可见,现在大部分的C/C++程序员应该已经开始同时使用两种以上
的语言。
而第二幅图则是针对美国程序员对于未来计划使用C/C++语言的调查结果,从图中可
以证明前面图形和分析的结果,C/C++语言的确是以3%到5%的速度在衰退之中,也
有愈来愈多的C/C++程序员开始使用多种语言来进行开发的工作,当然C/C++程序员选
择的最多语言就是Java和C#了。
在"令人焦虑的时代"一章中我们已经讨论了Java语言目前使用的状况以及未来的发展。
从其中我们了解了Java虽然快速地兴盛,但是也看到了Java似乎已经在美国进入成熟
期,开始出现稳定的状态并且有小幅的衰退。既然C/C++和Java这两个拥有共同基因
的语言都处于稳定或是小幅衰退的情况,那么流失的程序员到底到哪里去了呢?当然
答案很明显,这些流失的程序员是转到拥有相同基因的C#语言阵营了。
虽然Microsoft的Visual Studio.NET是在2002年的2月才正式推出,但是C#的编译器
和相关的工具早已在Beta阶段便为许多程序员所使用,因此在2002年便已经吸引了一
些程序员使用,而这些第1波使用C#的程序师大都是从C/C++和Java语言转换跑道而来
的。右图是C#语言在2002年使用的状况调查,C#在不到1年的时间便吸引了美国14.6%
的程序员人口使用是相当惊人的表现。
那么未来呢?C#还能够稳健地成长吗?因为唯有稳健成长的语言才能够有机会成为主
流的语言。右图便是对于2003年C#语言使用状况的评估,从这些数据我们可以看到,
C#语言果然将以稳健的脚步成长,每年以将近10%的速度发展,而C#如果持续地照这
样的速度发展下去,那么C#将在4年之内达成Java花了七八年才达成的现状。当然,
C#这种成长趋势也暗示了Microsoft的.NET将在不久的时间内对于Java平台产生重大
的影响。
对于C/C++、Java和C#这三个拥有类似基因的语言,如果我们把它们的发展放在一起
比较的话,会发现目前C/C++和Java语言正处于激烈竞争的状态。但是C/C++和Java千
万不可忽视C#这个后起之秀,C#正以旺盛的企图快速地向两位老大哥挑战之中,以竞
逐在程序员心中主流的地位。
从上面所有的分析中,我们可以知道使用C/C++语言的人数虽然的确是在下降之中,
但是幅度并不大,这代表C/C++语言有着非常稳定的支持力量,这当然也是因为在许
多的应用中C/C十十语言拥有不可取代的优势,更何况C/C++开发工具的市场仍然拥有
将近600 Million美金的规模。这实在是一个非常大的数字,以Borland来比较的话,
Borland全年所有的软件营收不过是240 Million左右,可见C/C++市场的潜在力量,
对于Borland来说这是绝对不可放弃的开发工具市场。
相对于欧洲的发展模型和美国非常接近,另外一个全世界最大的程序员市场--中国大
陆,并没有在这次的调查中显示出开发工具的使用状态,也许未来应该有全球软件语
言的调查评估。不过从各种迹象显示,大陆的市场目前是以C/C++和Ddphi分占程序员
使用的大宗,而Java则在快速的成长之中。这和台湾地区有一点不同,那就是在台湾
地区是以VB、Delphi和C/C++为主要的语言力量,而Java则是几乎进入成熟的阶段,
开始和VB、Ddphi以及C/C++分庭抗礼。因此对于Borland来说,不管是在中国大陆和
台湾地区,C/C++开发工具都是很重要的,所以Bodand的RAD部门宣称中国大陆的市场
是Borland RAD部门最后的圣地,因为在中国大陆Borland的C++Builder、Delphi、
Kylix和未来的C/C++开发工具以及.NET的开发工具都拥有全世界最大成长潜力的机会。
蓬勃发展的新兴C/C++力量
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -