欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++的标准化速度 CC++C#Pascal编程 

程序员文章站 2022-07-16 13:37:48
...
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++迈着四平八稳的“方步”,依然能够独步于编程语言之巅。