当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

谈谈C++的标准化速度问题

    看着C++09那些诱人的提案,着实让人垂涎。同时,也着实让人着急。不免在想,“标准委员会也太慢了”。
    不过,想归想,平心而论,这样的标准化速度实属正常。
    比较而言,C++09的标准化时间还算合理。Pascal83年第一个标准,90年推出扩展标准,用了7年;Ada83到Ada95用了12年,再到Ada2005用了10年;C89/90到C99也是10年。如果C++新标准能在09通过,那么也就是11年的时间。
    一般情况下,象Pascal、Ada、C、C++这样的不受厂商控制的通用语言,通常的标准更新时间都在10年上下。
    一个标准推出,业界需要时间消化,特别是编译器厂商。这个过程短则2、3年,长则5、6年。在此过程中,根据技术的发展,应用上的问题,标准的缺陷等等,都需要一些时间发现和研究。将这些问题和扩展变成提案,至少也要2、3年的时间。细化、讨论、整合这些提案又需要至少3、4年的时间。这样,基本上10年也就过去了。
    这些语言通常也不会频 繁地更新标准。一般也是将提案积累到一定程度,然后一同加入新标准。这样有几个好处。首先,资源优化,频繁地更新标准,需要不断地耗费资源,用于和技术无关的行政性事务。其次,只有有了充足的时间,一些相关的技术才会相继浮现和成熟,只有把它们放在一起,才能协调之间的矛盾。最后,很多新特性都带有一定的探索性,需要时间来进行先期试验,以确保标准的可靠。
    另一个主要问题,这些通用语言并非属于哪家厂商。于是,协调这些刺儿头,也大幅增加了时间。
    对于Java、C#之类的厂商控制的语言,他们没有其他厂商的牵制,而且资源充足,也不愿在过新的技术上做什么尝试,每次更新也不会补充太多的特性。而且,厂商也不怎么操心兼容的问题,即使前一个标准搞砸了,后一个补回来也行。(他们有足够的力量强制推行新标准,他们就是标准)。最重要的,标准,特别是ISO标准对于这些厂商,无非是装点门面而已,事实上的标准才是他们关心的。
    所以,我们不能指望C++象Java、C#那样快速地更新标准。但在目前快速发展的编程领域,这种“缓慢”的速度是否能够跟上潮流,而不被淘汰呢?我觉得不会。毕竟想要淘汰C++,就必须有语言来替代它,否则C++已有的那些应用领域将没有语言可用。(我们自然不会再退回去用更老的语言,不是吗?不然干嘛不继续用C++呢?)但到目前为止,仅从技术上而言,能够替代C++的语言尚未出现。除非一个语言拥有C++的能力,并且大幅超越C++,以及C++09。在近阶段似乎看不到这种迹象。
    另一种情况就是应用分化,各种不同的领域产生符合各自要求的语言,不再使用Pascal、Ada、C、C++这类“全能型”的语言。这种情况在技术上还存在问题,这样实际上是把不同语言间的交互问题变成了核心问题,解决这个问题的技术难度远远比改进语言来的大。(.net这个半生不熟的方案,实际上可以看作是一个失败的尝试)。所以,C++迈着四平八稳的“方步”,依然能够独步于编程语言之巅。
相关内容
赞助商链接