为什么 ISO/IEC 对 C 和 C++ 标准收费而不是免费提供?

2024-03-23

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

虽然我知道开发 C 和 C++ 标准已经投入了大量的时间和精力,但我仍然对规范收费的选择感到有些困惑。这OpenGroup 基本规范 http://www.opengroup.org/onlinepubs/009695399/,例如,可免费在线获取;他们通过收取认证费用来赚钱。有谁知道为什么 ISO 标准委员会不通过认证标准合规性来赚取收入,而是对这些文件收费?另外,有谁知道 ISO 标准委员会是否看起来很糟糕的网站 http://www.open-std.org/jtc1/sc22/wg21/是故意做成这样的吗?就好像他们不希望人们访问并购买该规范。

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

附:我确实有 ISO/IEC 9899:1999 和 ISO/IEC 14882:2003 的副本,因此请不要评论便宜或任何其他内容...尽管如果您想说这样的话,您可能需要考虑高价中学生、本科生和研究生,他们可能没有那么多多余的现金。另外,您可能需要考虑这样一个事实:ISO 网站确实很粗略,他们甚至不会告诉您费用,直到您结账为止……并没有真正鼓励人们去获取一份副本,现在确实如此它?

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

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


无论如何,赫伯·萨特(Herb Sutter)写了一篇文章讨论了这个问题,评论中也有相当多的讨论:

  • http://herbsutter.com/2010/03/03/where-can-you-get-the-iso-c-standard-and-what-does-open-standard-mean/ http://herbsutter.com/2010/03/03/where-can-you-get-the-iso-c-standard-and-what-does-open-standard-mean/

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

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

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

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

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

SO问题的答案,“在哪里可以找到当前的 C 或 C++ 标准文档?” https://stackoverflow.com/questions/81656/where-do-i-find-the-current-c-or-c-standard-documents,指向廉价版本和免费草稿版本。另请注意,当前的 C99 标准(包含 TC1 和 TC2)可以免费下载:

  • http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf

有一条注释称,N1124“是 WG14 工作文件,但反映了发布时的统一标准”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 ISO/IEC 对 C 和 C++ 标准收费而不是免费提供? 的相关文章

随机推荐

  • 如何从播放应用程序中的 play.mvc.Result 对象中提取结果内容?

    实际上我正在从一个播放应用程序重定向到另一个播放应用程序 最后我收到作为 Result 对象的响应 下面是两个应用程序中的操作 我正在从 application1 重定向到 application2 应用程序 2 将返回我需要提取的 JSO
  • 为什么在android中的输入流之后要关闭OutputStream

    我正在以这种方式从 android 连续调用我的 servlet 两次 FIRST CONNECTION URL url new URL http 172 16 32 160 8080 xyz check availability Http
  • 安排 Google Cloud Dataflow 作业的最简单方法

    我只需要每天运行一个数据流管道 但在我看来 像 App Engine Cron Service 这样需要构建整个 Web 应用程序的建议解决方案似乎有点太多了 我正在考虑仅从 Compute Engine Linux 虚拟机中的 cron
  • 使用 C++ 中的标准流的灵活记录器类

    我想创建一个灵活的记录器类 我希望它能够将数据输出到文件或标准输出 另外 我想使用流 该类应该类似于 class Logger private std ostream m out or ofstream iostream i don t k
  • 在此 dnvm.ps1 命令中哪些参数显示未定义?结果部署到 Azure 网站失败

    我一直在 Linux 上开发一个新的 ASP NET 5 MVC 6 网站 我正在将 Git 与 Azure 结合使用 并且已经能够成功将其推送到 SCM 然而 由于一些未定义的参数 我的部署失败了 希望有人能告诉我终端输出中显示的命令中未
  • 如何使用 pythonnet 在 python 侦听器中订阅 .NET 事件?

    我正在尝试创建一个事件侦听器来订阅tick使用 Python 的外汇交易应用程序的 价格 事件 原始应用程序是一个本机 32 位 Windows 应用程序 名为元交易者4 这没有任何 API 所以mtapi https github com
  • 返回修改后的类和使用 type() 之间的区别

    我想这更像是一个 python 问题 而不是 django 问题 但我无法在其他地方复制这种行为 所以我将使用无法按预期工作的确切代码 当我发现这个工厂函数片段时 我正在 django 中处理一些动态表单 def get employee
  • GitHub Copilot - 请登录 github 并重试

    对于 Intellij 插件 GitHub Copilot 显示错误please login to github and try again 我已经完成了以下操作 使用我的 GitHub 用户和密码对 GitHub Copilot 进行了身
  • Swift UITableViewCell 对齐

    我正在尝试显示如下页面 页面标题 左对齐 区域名称 中心对齐 该地区的人 详细标签中带有电子邮件的副标题 但是 如果我选择副标题作为单元格样式 则所有内容都将左对齐 并且我无法在代码中更改它们 然后 如果我选择自定义作为样式 则详细文本标签
  • 当尝试在 R 中运行 kNN 时,我收到由 coercionNAs 引入的错误 NAs?

    我正在尝试在数据集上运行 kNN 但我不断收到一些 NA 错误 我已经用尽了堆栈溢出试图找到这个问题的解决方案 我在任何地方都找不到任何有用的东西 这是我正在使用的数据集 https www kaggle com tsiaras uk ro
  • java.util.Vector - 替代品

    以前 当长度未知时 我一直认为 Vector 适合用于非描述性对象 据我所知 我认为它也是线程安全的 什么会改变这一点Vector不应再使用 有什么替代方案 你应该使用ArrayList代替Vector Vector使用内部同步 但这对于实
  • Android - 如何拦截“安装应用程序”意图

    好吧 所以不完全确定这是可能的 但尝试编写一个应用程序 以便我可以在执行以下任何活动之前运行一些代码 1 从网络下载 APK 并启动安装程序 2 在android市场上按下安装按钮 是否有可能拦截并提示这些事件 或者谷歌已经将这些东西锁定得
  • 如何在 css URL 中使用相对/绝对路径?

    我有一个生产和开发服务器 问题是目录结构 发展 http dev com subdir images image jpg http dev com subdir resources css style css 生产 http live co
  • 通过进程 ID 将 KeyEvent 发送到目标窗口

    我需要创建一个关键事件 cmd r 用于刷新浏览器窗口 并传递我尝试定位的窗口的进程 ID 比方说 let customEvent NSEvent keyEvent with NSEvent EventType keyUp location
  • 表达式集子集化

    我有一个ExpressionSet我想要子集的对象 例如 gt str ESet Formal class ExpressionSet package Biobase assayData phenoData STATUS num 1 210
  • 在python中将JSON存储到数据库中

    我定期从 API 获取一些数据 并希望将 JSON 数据存储到数据库中以便稍后访问和使用 从 API 中 我每次都会获取此样本中的数据 data cursor null files nodes u code u BOPhmYQg5Vm u
  • CLLocation距离位置(在Swift中?)

    有人可以帮我将以下 Objective C 语句转换为 Swift 吗 CLLocationDistance distance fromLocation distanceFromLocation toLocation 我知道做到这一点一定很
  • 标准库类型的赋值运算符的 ref 限定符

    我想知道 标准类型的赋值运算符没有左值引用限定是否有原因 他们都不是 因此 我们可以这样写 std string 42 std string s hello std string world oops std vector
  • 在jgit中配置known_hosts

    使用 jgit 和 gitolite 进行源代码控制 我有一个应用程序 可以根据命令生成某些代码 并且我们希望将其提交给源代码控制 目标是快速拉动 提交新代码 然后推送它 我有以下方法 private void commitToGitRep
  • 为什么 ISO/IEC 对 C 和 C++ 标准收费而不是免费提供?

    ISO C 标准 ISO IEC 9899 和 ISO C 标准 ISO IEC 14882 未在线发布 相反 人们必须购买每一项标准的 PDF 版本 我想知道这背后的基本原理是什么 对于 C 和 C 编程语言来说 这些语言的权威规范不能免