12

I'm gradually learning C, and, after my best attempt at piracy, have resigned myself to the fact that I will have to either shell out $60 to ANSI or settle for pirating the penultimate draft hosted on open-std.org, which Stack Overflow's C community recommends doing but ISO claim is a violation of their copyright and have had removed from the Google search index. Over the past hour of trying to track down a free source of the finished standard, I've found myself wondering how this situation has come to exist in the first place.

There doesn't appear to be a warm relationship between ISO and the actual standard committee, given that the standard committee wants to give away the (almost-final version of the) standard for free and ISO has brought in their lawyers to try to stop them. But this invites an obvious question: why does the C standard committee work with ISO at all? What advantages do groups like ISO and ANSI provide in exchange for standards authors handing over the intellectual property they have created to be sold for profit? Are they paid by the standards organisations, or is there some other, less tangible benefit?

The costs of a paywalled standard are pretty obvious - more bad software in the world written by those who didn't read the standard, wasted man-hours on research, barrier to access for poor folk like students, and so on - and plenty of other standards (like those for HTML, ECMAScript, or CSS) are free, so what different incentives or judgements keep the C standard behind a paywall?

Mark Amery
  • 1,241
  • 13
  • 27
  • 6
    Um, because ANSI makes money selling the standard? By the way, you don't actually need the standard in order to write C code successfully. What you need the standard for is to write a compiler. – Robert Harvey Jul 31 '16 at 22:49
  • 2
    @RobertHarvey sure, I understand why *ANSI* would want to own and sell the standard. What I don't understand is why the committee who write the standard (I'm guessing for free, though I'm not sure) choose to hand the copyright over to them. (Also, while one might not strictly *need* the C standard as an ordinary C programmer, I've rapidly found the general crapness of C reference materials on internet sufficient to make me trust nothing but the standard itself. If there were solid, comprehensive documentation available from some other source, things would be different.) – Mark Amery Jul 31 '16 at 23:02
  • 2
    so, pony up and spend $60 on the resource... if it was $600, I'd understand not wanting to pay, but $60 is inline with any number of reference books you'd buy through Amazon - as for the HTML standard being free: it isn't, someone has to pay to keep the working group running and the site up - you could argue that this makes the HTML working group reliant on certain interests... – HorusKol Aug 01 '16 at 02:33
  • I suspect revenue from the more popular standards like C might help to fund overhead costs for less popular standards, of which their are an enormous number. – Owen Aug 01 '16 at 03:16
  • 1
    @MarkAmery: "*why the committee who write the standard (I'm guessing for free, though I'm not sure) choose to hand the copyright over to them.*" ... because they *work for them*? Or more specifically, the C committee is the ISO/IEC WG14. ANSI gets the standard from ISO. And if you think $60 is too much, try buying the standard through ISO. – Nicol Bolas Aug 01 '16 at 03:30
  • 4
    @RobertHarvey I don't see how you can write C without having the standard. In C it's essential to know which behaviours are well defined, implementation defined or undefined. – CodesInChaos Aug 01 '16 at 12:12
  • 2
    @codesInChaos: By writing C that is good style, avoiding ridiculous things like `i++ + ++i`. I've been a C# programmer for years, and I promise you I can write valid C without reading the 600 page specification. – Robert Harvey Aug 01 '16 at 16:25
  • 1
    @RobertHarvey For example the size guarantees of various integer types can be important, even in clean code (for example multiplying two *unsigned* 16-bit integers containing the maximum value is UB on a system with 32-bit `int`s). Or I need to know how shifts behave on signed types. Or will I incur UB if I negate a signed integer than contains the minimal value? Another C++ trap I recently learned about is that `uint_8` is no character type (despite having the same size as a `char` when it exists) which has consequences on type based aliasing. – CodesInChaos Aug 01 '16 at 16:31
  • 4
    @CodesInChaos: Most C and C++ programmers have never read their respective standards. They learned from books, courses, online materials, trial-and-error, copy-and-paste, and so forth. Formal standards are *not* learning materials. The standard is meant for *implementers* of the language, not users. Experts might need to reference it for corner-cases, but Joe-average-user does not. Most programmers don't care if they invoke some UB or whatever; they care that their programs *work*. – Nicol Bolas Aug 01 '16 at 16:35
  • 1
    @NicolBolas "The standard is meant for implementers of the language, not users. Experts might need to reference it for corner-cases, but Joe-average-user does not." -- these corner cases show up surprisingly often. "Most programmers don't care if they invoke some UB or whatever; they care that their programs work." By definition, undefined behavior means that the none of the program's behavior can be relied upon to be correct. – Jason S Jun 29 '20 at 03:27

1 Answers1

12

ISO's position

ISO claims that the revenues from standards are required to finance the work of the technical working groups producing them, and the overhead costs. It also claims that this financing helps to keep the standards "as neutral as possible", avoiding to rely solely on goodwill of some big corporation.

Analysis of the arguments

There must be some truth in these arguments: ISO is a non-profit organization (as are the national standardization bodies that adhere to ISO), so the prime objective is not to generate profits but to cover costs (and be able to cope with risks).

According to its annual report of 2015, ISO has organized almost 2500 meetings in the year, coordinated the work of 3500 technical bodies, and produced 940 000 pages of documents (translated in several languages). All this clearly ain't for free: either it is to be paid by those benefiting from the standard (us, through the purchase of documents) or it has to be financed via taxes (so in the end, again us, but via the IRS - and then you'd pay also indirectly for a lots of standards you're absolutely not interested in).

We can see in the financial statement that about CHF 2 millions (approximately USD 2 millions) were earned as operating result in 2015. Considering a revenue of 38 millions, we could hence estimate that the prices could be 5% lower. But the sales are not always as many as in 2015 (2014 it was about half of it). So overall it's not that the documents are unduly overcharged.

My opinion

I share your concerns about the hidden costs of expensive standards. Many people are not fully aware of the standards and produce lower quality. In addition, the standards are often sold with a single user licensed, meaning that a company would have to buy a huge amount to be allowed to distribute the knowledge to all its employees. And $250+ seems expensive compared to a K&R is sold at $50.

But on the other side, it should be seen as part of the production costs of good software. If you need to fuel a truck, you buy expensive fuel. So if you need a standard to produce quality products, just buy the standard.

What really upsets me, is that the paper standard (which has to be printed, stored, manipulated and shipped) has the same high cost than the electronic PDF, while the latter has a much lower production cost. I think this should really change, in order to increase efficiency of standard bodies.

The open-std platform

On the first page of the N1570 draft that you provide as link, there is a a clear "(c) ISO/IEC" copyright statement. This certainly explains ISO's claim.

But in the foreword, you can read:

The Working Group responsible for this standard (WG 14) maintains a site on the World Wide Web at http://www.open-std.org/JTC1/SC22/WG14/ containing additional information relevant to this standard such as a Rationale for many of the decisions made during its preparation and a log of Defect Reports and Responses

I'm not a lawyer, and this is only a personal opinion: I think these documents are available for years on this platform (sponsored by a university) despite ISO's claim because it's probably in a grey zone, the discussion about successive revision of wordings in draft standards being part of the rationale conducting to the final standard.

Christophe
  • 74,672
  • 10
  • 115
  • 187
  • 3
    I think you're overestimating the cost of producing paper format these days - the biggest cost would be shipping, and that is usually added on top of the base product price anyway. Take shipping out of the paper product price, and you probably find less than $5 of the $60 is spent on printing/binding. – HorusKol Aug 01 '16 at 02:25
  • @HorusKol you are certainly right ! In all honestly, I don't know if they print these 600 pages on demand, or if they have also warehousing and handling costs. My point was just that switching to PDF completely could avoid some direct and some overhead costs. – Christophe Aug 01 '16 at 02:56
  • 1
    @Christophe If you want to avoid some overhead costs you can buy the PDF version yourself. Nobody is forcing you to get paper. – user253751 Aug 01 '16 at 04:39
  • 6
    @immibis I think you missed something. The PDF is the same price as the dead tree version. The person buying the copy of the standard does not get a discounts for avoiding the printing, handling, and raw material costs when buying the PDF version. – 8bittree Aug 01 '16 at 15:11