按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
数库(Library)和通用Framework方面却快速地如雨后春笋般兴起。特别是在C/C++语
言的标准化更为完善、以及Template的功能被C++ Standards mittee接受而且被
广泛地由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是在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的将在不久的时间内对于Java平台产生重大
的影响。
对于C/C++、Java和C#这三个拥有类似基因的语言,如果我们把它们的发展放在一起
比较的话,会发现目前C/C++