49

ISO C 标准 (ISO/IEC 9899) 和 ISO C++ 标准 (ISO/IEC 14882) 未在线发布;相反,必须为这些标准中的每一个购买 PDF。我想知道这背后的基本原理是什么……这些语言的权威规范不能免费提供和在线搜索,这对 C 和 C++ 编程语言都不是有害的吗?这不是鼓励使用可能不准确的、非权威的资源来获取有关这些语言的信息吗?

虽然我知道在开发 C 和 C++ 标准上花费了很多时间和精力,但我仍然对选择为规范收费的选择感到困惑。例如,OpenGroup Base Specification可在线免费获得;他们通过收取认证费用来赚钱。有谁知道为什么 ISO 标准委员会不通过认证标准合规性来赚取收入,而是对这些文件收费?另外,有谁知道 ISO 标准委员会的丑陋网站是不是故意这样设计的?就好像他们不希望人们访问和购买规范一样。

最后一件事...... C 和 C++ 标准通常被描述为“开放标准”......虽然我意识到这意味着任何人都可以实施该标准,是否应该修改“开放”的定义?为标准收费而不是公开提供似乎与开放精神背道而驰。

PS 我确实有一份 ISO/IEC 9899:1999 和 ISO/IEC 14882:2003 的副本,所以请不要评论便宜或任何东西......虽然如果你想说这样的话,你可能要考虑可能没有那么多额外现金的高中生、本科生和研究生。此外,您可能要考虑这样一个事实,即 ISO 网站真的很粗略,他们甚至在您进行结帐之前都不会告诉您成本……并没有真正鼓励人们去获取副本,现在确实如此它?

编辑/评论
我突然想到,如果 ISO 标准委员会要从认证中获得收入,那将激励对标准进行更小但更频繁的更改,而不是非常不频繁地进行非常大的修订。它还将激励创建一个可实施的标准(如果 ISO C++ 委员会从认证中获得收入,我怀疑他们会首先引入“出口”)。

我找到了一个解决方案来解决没有在线 PDF 的烦恼……我已将我的标准副本上传到我的 Google 文档中,这样我仍然可以从任何计算机访问它而无需随身携带。

4

8 回答 8

19

值得一提的是,Herb Sutter 写了一篇关于这个问题的文章,评论中有相当多的讨论:

正如他所提到的,“开放”并不一定意味着“免费”。对于可能想要免费版本的文件的学生或经济能力有限的其他人,请注意:

  1. 许多学生可能想要(甚至需要访问)的参考资料不是免费的
  2. 对于大多数工作,标准根本不是必需的——有大量免费可用的文档对于几乎任何人可能想要使用 C 或 C++ 完成的大部分工作来说已经绰绰有余
  3. 在许多情况下,草案文件可以免费下载;虽然它们不是标准,但最终草案版本非常接近,可能足以满足很多用途。

如果您对 C 或 C++ 编程很认真,我建议您应该拥有一份标准的副本(尽管我不会说这是一项要求)。我还建议不要期望它们是免费的,就像对于任何职业或副业一样,“交易工具”通常不是免费的——无论这些工具是像锤子这样的实物,还是信息例如手册或规格。

事实上,我认为一组好的参考文献比一组标准更可取,如果你只能有一个或另一个或者你刚开始(你可能想要几个不同的 C++ , 而 Harbison & Steele 是 C) 所需要的。

不要误解我的意思——我不反对免费提供它们(我很高兴它们目前相当便宜),但我认为没有任何理由期望它们免费。

SO 问题的答案,“我在哪里可以找到当前的 C 或 C++ 标准文档?” ,有指向廉价版本和免费草稿版本的指针。另请注意,当前的 C99 标准(包含 TC1 和 TC2)可免费下载:

有一个说明 N1124“是 WG14 工作文件,但它反映了发布时的统一标准”。

于 2010-04-29T21:14:40.850 回答
9

这很不幸,但我明白为什么会这样。

标准机构必须自筹资金——标准收费背后的想法是,那些从标准中受益的人随后为其生产付费。由于这些标准机构是政府间组织(不是像 The Open Group 这样的注册公司),他们没有提供认证业务的章程,因此他们无法以这种方式为其提供资金。

于 2010-04-29T05:14:05.517 回答
8

有谁知道为什么 ISO 标准委员会不通过认证标准合规性来赚取收入,而是对这些文件收费?

这个我可以回答:那里没有钱可赚。除了 EDG,从来没有符合标准的 C++ 编译器。即使他们对尝试的供应商收费(而且供应商愚蠢到让他们明显不合格的编译器评估),除了 GCC(谁会为此买单?),很少有供应商可以从中赚钱。

关于费用:至少在某个时候,最好的交易是购买 C++03 标准装订本。

于 2010-04-29T06:03:59.223 回答
6

虽然我知道在开发 C 和 C++ 标准上投入了大量时间和精力,但我仍然对选择为规范收费的选择感到困惑。例如,OpenGroup 基本规范可在线免费获得;他们通过收取认证费用来赚钱。有谁知道为什么 ISO 标准委员会不通过认证标准合规性来赚取收入,而是对这些文件收费?

我无法说出确切的动机,但请记住,ISO 是一个庞大的组织。他们不仅标准化了编程语言,还标准化了容器尺寸、电源插头、展示尺寸和其他一百万种东西。与更专业的标准化组织相比,它们还非常注重稳定性,即使以大量繁文缛节和非常缓慢的工作流程为代价。

我想他们对文件收费有几个原因:

  • 它为该组织的一些工作提供资金,并且
  • 他们不认为这是一个问题。一般来说, ISO并没有真正处理个人使用的标准。他们的大多数标准都是为大公司与其他大公司合作而设计的。对于那些人来说,花几块钱毫无意义,甚至可能被视为质量的证明。
  • 该组织相当古老。他们并不总是能够仅分发 PDF 文档。最有可能的是,对文件收取费用的规则起源于必须打印并运送给您的日子。
  • 您不是从 ISO 本身购买文档,而是从特定的国家机构(如 ANSI)购买。这应该让您了解 ISO 有多大,以及它必须资助的网络有多大。事实上,不同国家的标准价格差异很大,这让我相信价格是由各个国家机构制定的,而不是由 ISO 集中制定的。
  • ISO标准是相当重量级的。它是标准机构,如果 ISO 对某些内容进行了标准化,您通常可以相当确定它已经通过、从各个角度考虑并且在实践中确实有效。很少有组织有这样的记录。看看每一个 W3C“标准”的 trainwreck。看看构成互联网的大量未指定的 RFC。
  • 对 C++ 编译器的认证收费不太可能是一项非常有利可图的冒险。周围没有很多兼容的编译器,并且存在的一些编译器是免费编写的,作为开源项目。他们可能会因不得不支付数千美元的认证费用而受到严重阻碍(而且必须花费数千美元来弥补成千上万下载该标准的用户所损失的收入)。您是否愿意为了节省 20 美元或他们收取的任何费用而让新的编译器停业?如果他们有这样的进入壁垒,G++ 会起步吗?LLVM 的 Clang 编译器可以吗?见鬼,微软愿意年复一年地支付这笔费用,而他们可以只专注于 .NET 吗?

最后一件事...... C 和 C++ 标准通常被描述为“开放标准”......虽然我意识到这意味着任何人都可以实施该标准,是否应该修改“开放”的定义?为标准收费而不是公开提供似乎与开放精神背道而驰。

不,他们使用正确的定义。他们不按标准收费。您可以免费实现 C++ 编译器,无需支付任何版税或许可费用。该标准公开的。它只是不是免费提供的。但肯定是公开的。任何人都可以访问它。您不必与 ISO 相关联,也不必为特定公司(或任何公司)工作。您不必是特定国家的公民或在政府工作或有在标准委员会工作的叔叔。任何愿意支付几美元的人都可以使用它,比一本好的 C++ 教科书的成本还要低。

这是他们收费的文件。不是标准。该标准是免费和开放的。该文件不是免费的。

真的,这应该没有什么新东西。为什么你认为开源运动对“像啤酒一样的自由”和“像在自由中一样的自由”做出如此大的区分?因为开源并不一定意味着免费。通常,开源软件是免费的,但并非必须如此,而且并非总是如此。

那么您是否也认为应该更改“开源”名称?

我们已经有了一个词,意思是“免费”。免费”。免费分发的标准可以称为“免费”。“开放”意味着别的东西。为什么要将“开放”的含义更改为与“免费”相同的含义?

于 2010-04-29T21:54:17.287 回答
5

不要纵容盗版或以自己为榜样,获得副本很容易。

只需谷歌搜索“iso 14882 pdf”即可可靠地生成链接。目前,C++0x FCD 的副本混淆了结果。但最近几次我需要一份副本时,我在 google.com 上找到了一份免费的。

至于大学生,我记得我在随机的计算机实验室做作业,我没有手边的文件。点击谷歌,我会在一分钟内得到参考。

我不知道这笔费用在哪里,从供应商到供应商的差异如此之大,甚至去哪里了。标准委员会从他们的雇主那里得到了很好的补偿。美元金额太随机而不能作为税收。

我确实买过一次标准(好吧,我的雇主买了它):IEEE 1275 Open Firmware。在我四处逛逛之后,从 Global Engineering Documents 那里得到了大约 200 美元。它是普通复印纸上的廉价复印件。我认为它甚至没有被收缩包装,而且它当然没有任何形式的封面。不断的剪纸。我加了一个三环活页夹,发誓再也不这样做了。(哦,该标准被取消并被劣质的英特尔垃圾所取代。)

现在看看 GED 的网站,他们对 C++03 的合法 PDF 收费 30 美元,对各种表面上相同版本的未绑定 Xeroxed 副本收费 373-567 美元(!)。

于 2010-04-29T05:46:15.737 回答
4

我从 2004 年开始参与 ISO,这是我迄今为止所学到的。ISO 不是商业组织,因此没有付费会员。OMG 等其他标准机构的资金来自组织为成为会员(并发挥其影响力)而支付的费用。ISO 不是这样工作的:它由代表各自国家的国家机构组成。因此,为标准收费是他们为自己的工作提供资金的唯一途径。

另外,也因为ISO不是商业的,ISO不做认证。私营公司利用认证业务(这是一项业务)作为其围绕 ISO 标准提供的服务的一部分,而不是 ISO 本身。

最后,ISO 标准并不打算由个人购买。它们针对组织,并相应定价。

希望这可以帮助。

于 2010-05-12T00:02:17.117 回答
2

“开放”有多种含义。

在这种情况下,无论您是谁,都可以获得任意数量的标准副本。您可以自由地实施它们,没有任何进一步的困难。如果您愿意,您可以加入委员会并亲自参与其中,并以这种方式影响它。在所有这些方面,它都是开放的。

现在,你需要钱来获得标准的副本。我不知道参加委员会,但出于实际目的,参加会议至少会产生费用。

就个人而言,我认为坚持“开放”也意味着“免费”并不是那么有用。开放式和封闭式之间有明显的区别(您可能无法获得副本,或者无法自由使用它,或影响其开发),并且将其与是否花钱混为一谈会使事情变得混乱。

还有一个问题是标准化过程需要花钱,即使考虑到大量的志愿者工作。它应该来自税收吗?在我看来,这就是替代方案的样子,无论是来自使用标准的个人和组织的税收还是费用。

最后,我不认为这是一个真正的问题。这些标准对大多数人来说并不是真正有用的。除非读者已经了解该语言,否则它们毫无价值,而且它们甚至不是很好的一般参考。它们不适合普通读者。真正使用它们的人可能愿意在它们上花几块钱,这将用于支持标准制定过程。

于 2010-04-29T19:54:15.820 回答
1

它是开放的,就像“没有限制谁可以参与”一样。任何人都可以加入 C++ 委员会。这是一个开放的过程。

于 2010-10-01T19:07:31.547 回答