C++的使用

  C++被数以十万计的程序员应用到几乎每个领域中。这种应用得到十几个相互独立的实现,数以百计的库、数以百计的教课书、几种技术杂志,以及不计其数的顾问们的支持。在各种层次上的培训和教育到处都可以获得。

  早期的应用趋向于具有很强的系统程序设计色彩。例如,有几个主要操作系统是在C++里写出的[Compbell,1987][Rozier,1988][Hamilton,1993][Berg,1995][Parrington,1995],更多系统用C++做了其中的关键部分。我认为C++不应在低层次的效率上妥协,这就使我们有可能用C++写设备驱动程序,或者其他需要在实时约束下直接操作硬件的软件。在这样的代码中,性能的可预见性至少也与粗略的速度同样重要。C++的设计使得它的每种特征都可以在严格的时间和空间约束下使用[Stroustrup,1945,4.5节]。

  在大多数应用中都存在一些代码片段,它们在性能上的可接受性是至关重要的。当然,最大部分的代码并不在这些片段里。对于大部分代码而言,可管理、容易扩充、容易测试是最关键的问题。C++对所有这些关注点的支持已使它被广泛应用于一些领域,在其中的一些领域里可靠性是最基本的要求,在另一些领域里需求在不断地随着时间而发生显著的变化。这方面的例子如银行、贸易、保险业、远程通信,以及各种军事用途。许多年来,美国的长途电话系统的核心控制依赖于C++,所有800电话(即那些由被叫方付款的电话)都由一个C++程序控制路由[Kamath,1993]。许多这样的应用是大规模的,并且长期运行着。作为这种情况的结果,稳定性、兼容性和可伸缩性都成为C++开发中被始终关注的问题。成百万行的C++程序并不是罕见的情况。

  与C类似,C++在设计时并没有将数值计算放在心里。但是,确实有许多数值的、科学的,以及工程的计算是在C++里做的。产生这种情况的一个主要原因是,传统的数值性工作常常必须与图形以及基于数据结构的计算相结合,而这些很难融进传统Fortran的模型之中[Budge,1992][Barton,1994]。图形学和用户界面正是使用C++最深入的领域。任何人要是使用过Apple Macintosh或者运行着Windows的PC,也都间接地使用了C++,因为这些系统的基本用户界面都是C++程序。此外,一些最流行的支持UNIX中X的库也都是用C++写的。这样,C++就成了大量应用的最常见选择,只要用户界面是其中的主要部分。

  所有这些都指向了或许是C++的最强之处:它能够有效地用到那些需要在各种各样的不同应用领域中工作的应用系统上。很容易找到一个应用系统,其中涉及到局域网络或者广域网络、数值处理、图形、与用户的交互,以及数据库访问等。在传统上,这些应用领域被认为是不同的,最常见的情况是它们由不同的技术团队使用各自的程序设计语言去处理。然而,C++已经被应用于所有的这些领域。进一步说,它还能与用其他语言写出的代码片段或者程序共存。

  C++被广泛应用于教学和研究。这很令一些人吃惊,因为有些人曾经---正确地---指出,C++并不是已经设计出的各种语言中最小和最清晰的。但不管怎样,它是:

对于教授基本概念而言足够清晰的。
对于深刻的项目而言足够现实、高效和灵活的。
对依赖各种不同开发和执行环境的组织或研究机构而言,使用起来足够方便。
对作为教高级概念和技术的媒介而言,足够的容易理解。
对作为从学习到非学术使用的工具而言,也足够的商业化。

C++是一个可以伴随你成长的语言。

🔚