标准和政治

  还没搜索到旧金山会议和C++0x草案的消息,看样子是拖延了。索性沉下去挖掘点可写的历史遗迹。

  以前提过,没有ABI标准是C++语言最大缺憾之一。Google一番,发现Pete Becker于2003年提交过有关的N1496号提案。提案建议添加shared关键字,用来申明动态链接库对外共享的变量、函数、类和模板。不过该提案最终未被纳入C++0x标准。

  从技术角度,它不失为一个不错的解决方案。麻烦在于政治原因。“委员会设计”就是这个样子,张雨生的歌里唱:“看你服气不服气,51比49”。 

  说起厂商政治问题,Bjarne Stroustrup有个著名的观点:“通过技术突破来解决政治问题”。也就是说,如果厂商的工业级产品各占山头互不兼容,C++标准委员不打算插进去,搞出个姥姥不疼舅舅不爱的another来。除非它在技术上拥有足够的创新优势,现有解决方案无法比拟。“STL的成功源于技术突破。它可不仅仅是另一个容器库,因此不需要和许多市场上已有的商业容器库(其中几个还很不错)直接竞争。”

  由此就知道C++为何迟迟没有GUI标准了,Bjarne Stroustrup说:

  “我怀疑其政治上的可行性……很多大公司在其专有GUI库上都有重大商业利益。即使标准委员会提供一个替代品,现有GUI库也不会轻易退出市场,厂商的抵制会导致用户忽略新标准。许多ISO标准正是因为无人理会而变成一纸空文,C++标准可不想成为其中之一。”

  老大的意思很明确:同志们就不要盼了。假设哪天C++标准里真加入GUI,一定源于某种革命性的技术突破,能把现有GUI解决方案打得满地找牙。这种救世英雄横空出世,是需要点儿运气的。

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.