tags:

views:

352

answers:

8

The ISO C Standard (ISO/IEC 9899) and the ISO C++ Standard (ISO/IEC 14882) are not published online; instead, one must purchase the PDF for each of those standards. I am wondering what the rationale is behind this... is it not detrimental to both the C and C++ programming languages that the authoritative specification for these languages is not made freely available and searchable online? Doesn't this encourage the use of possibly inaccurate, non-authoritative sources for information regarding these languages?

While I understand that much time and effort has gone into developing the C and C++ standards, I am still somewhat puzzled by the choice to charge for the specification. The OpenGroup Base Specification, for example, is available for free online; they make money by charging for certification. Does anyone know why the ISO standards committees don't make their revenue in certifying standards compliance, instead of charging for these documents? Also, does anyone know if the ISO standards committee's atrociously looking website is intentionally made to look that way? It's as if they don't want people visiting and buying the spec.

One last thing... the C and C++ standards are generally described as "open standards"... while I realize that this means that anyone is permitted to implement the standard, should that definition of "open" be revised? Charging for the standard rather than making it openly available seems contrary to the spirit of openness.

P.S. I do have a copy of the ISO/IEC 9899:1999 and ISO/IEC 14882:2003, so please no remarks about being cheap or anything... although if you are tempted to say such things, you might want to consider the high school, undergraduate, and graduate students who might not have all that much extra cash. Also, you might want to consider the fact that the ISO website is really sketchy and they don't even tell you the cost until you proceed to the checkout... doesn't really encourage one to go and get a copy, now does it?

Edit / Comment
It occurs to me that if the ISO standards committees were to make their revenues from certification that it would incentivize smaller but more frequent changes to the standard rather than very large revisions very infrequently. It would also incentivize creating an implementable standard (I doubt the ISO C++ committee would have introduced "export" in the first place if they got their revenues from certification).

I have found a solution to one of the annoyances of not having the PDF online.... I have uploaded my copy of the standards into my Google Docs, so that I can still access it from any computer without carrying it around.

+6  A: 

It's unfortunate, but I can see why it is the way that it is.

The standards bodies are required to be self-funding - the idea behind charging for the standards is that those that are benefiting from the standard are then paying for its production. As these standards bodies are intergovernmental organisations (not incorporated companies like The Open Group), they don't have a charter to be in the business of providing certification, so they can't fund it that way.

caf
A: 

Not to condone piracy or hold myself as a role model, it's easy enough to obtain a copy.

Simply Googling "iso 14882 pdf" will reliably produce a link. For now, the results are being muddied by copies of the C++0x FCD. But the last few times I needed a copy, I found a free one hosted at google.com.

As for college students, I recall doing assignments in random computer labs where I didn't have my files handy. Hit Google and I have the reference within a minute.

I don't know where that fee, which varies so much from vendor to vendor, even goes. The standards committee is well compensated by their employers. The dollar amount is too random to be a tax.

I did buy a standard once (well, my employer bought it): IEEE 1275 Open Firmware. It was something like $200 from Global Engineering Documents after I shopped around. It came as a cheap photocopy on regular copier paper. I don't think it was even shrink-wrapped, and it certainly didn't come with any sort of cover. Constant paper cuts. I added a three-ring binder and vowed never to do that again. (Oh, and the standard was withdrawn and supplanted by inferior Intel crap.)

Looking at GED's site now, they charge $30 for a legal PDF of C++03 and $373-$567(!) for unbound Xeroxed copies of various ostensibly identical editions.

Potatoswatter
@Potatoswatter, yes, I am aware that there are illegal copies circulating on the Internet... I am wishing, though, that there were legal copies circulating out there.
Michael Aaron Safyan
@Potatoswatter, the copy isn't at google.com, but at googlecode.com... someone created a project in Google Code and illegally uploaded a copy to their project's page.
Michael Aaron Safyan
@Michael: Potatoswatter meant that google.com __finds__ the copies, not hosts them. (There isn't a _the copy_ around, it's _copies_.)
sbi
@Michael: googlecode.com redirects to code.google.com. Even if that subdomain has a disclaimer, I'm pretty surprised they don't take it down. I wish it were truly free too… not just for convenience but that the seeming legal mess appears to support some sort of shady racket. The committee could set up a paypal and ask $15 for a download—you don't need anointed vendors to host a PDF in this day and age!
Potatoswatter
@sbi, no, I meant that Google hosts the copies. "hosted at google.com".
Potatoswatter
@Potatoswatter, I'm pretty sure they will take it down if informed of its existence.
Michael Aaron Safyan
@Potatoswatter: Sorry for the misunderstanding.
sbi
@Michael: if you already knew about it and I do, and it's been in the first page of results for months if not over a year, I find it hard to believe nobody there knows about it. They would probably promptly respond to a takedown request, but it's been a long time.
Potatoswatter
@Potatoswatter: IANAL, but if I understand the law correctly the only people who could request a takedown would be the copyright holder or representatives thereof. Google can, I think, host the standards safely until formally asked to take them down.
David Thornley
@David: From the cover page, "No part of this publication may be reproduced in any form, including an electronic retrieval system, without the prior written permission of ITI." It's clearly wrong, regardless of laws, and Google certainly has its own code of ethics.
Potatoswatter
Wow, 2 simultaneous downvotes with no explanation. Hello, big brother!
Potatoswatter
@Potatoswatter: Worse, those 2 are offensive flags. :|
KennyTM
"No part of this publication", this web site frequently violates that notice.
Hans Passant
@Potatoswatter: Do you think advocating blatant copyright infringement, as you are here even with your "disclaimer," is appropriate for SO?
Roger Pate
@Hans: Fair use trumps copyright (at least in some places, and, AFAIK, SO is hosted in the US). I'm not saying all quotes on SO are fair use (IANAL), but surely some are.
Roger Pate
@Roger: Re-reading this answer and the discussion, I really don't think this advocates anything. I simply discuss the state of affairs. Michael is the one who actually uploaded his copy. If noting that Google will return the standard with minimal fuss, and all you get for paying is added hassle, is advocacy, then I don't know what isn't. I'm genuinely surprised about Google's policy. For what it's worth, an SO admin cancelled those flags and apparently undid one of the downvotes too.
Potatoswatter
@Potatoswatter: Your answer is "you shouldn't commit this crime, but if you wanted to, here's how..."—that is *not* a disclaimer and you might even be legally liable, depending on the crime, jurisdiction, etc. Instructions which can only be used illegally (if there was any legal use it'd be very different for me) are something I believe isn't appropriate for SO. Flags carry downvotes, so I (strongly hope) that's where the cancelled downvote you saw came from, rather than a moderator changing another user's vote.
Roger Pate
@Roger: As if any programmer wouldn't think to ask Google? To be honest, I do see the criminal aspect here as irrelevant. And so does Google (via Google Code) which is Google's #10 result, and the US Government (via Fermilab's site) which is **Google's #1 result** for the query I mentioned. Anyway, now that I know Wiley publishes a version that won't give me papercuts, I'll probably buy a copy when C++0x comes out. Pirating the standard does feel wrong, but not as wrong as paying hundreds of dollars for a Xerox. The chances of prosecution are nil, and that isn't a moral argument anyway.
Potatoswatter
Well, if they do it, it must be okay! What was I thinking?
Roger Pate
@Roger: That argument is morally void, and so is the argument based on legality. I believe the argument that nobody is prosecuted or even asked to stop counteracts the argument that it is illegal. We could attempt to weigh the positive and negative consequences, but what would we accomplish? I relate my experiences in my answer because I feel they are relevant, and nobody else said anything similar. It's far from being an insightful answer, but the obvious also needs to be said.
Potatoswatter
+4  A: 

Does anyone know why the ISO standards committees don't make their revenue in certifying standards compliance, instead of charging for these documents?

This one I can answer: There is no money to make there. Except for EDG, there never was a standard-conforming C++ compiler. And even if they charged for vendors trying (and vendors being stupid enough to have their obviously non-conforming compilers evaluated), besides GCC (who would pay for it?) there's very few vendors to make money from.

Regarding the fee: At least at one point the best deal was to buy the C++03 standard bound as a book.

sbi
+2  A: 

"Open" has several meanings.

In this case, you can get as many copies of the standards as you like, no matter who you are. You can implement them freely, without any further difficulty. You can, if you like, join the Committee and work on it yourself, and influence it in that way. In all these respects it's open.

Now, you'll need money to get copies of the standard. I don't know about sitting on the committee, but for practical purposes there will at least be expenses in going to meetings.

Personally, I don't think it's all that useful to insist that "open" also mean "free". There's a clear distinction here between open and closed (in which you might have trouble getting a copy, or not be able to freely use it, or in influencing its development), and muddling this with whether it costs money will confuse things.

There's also the problem that the standardization process costs money that has to come from somebody, even considering the tremendous amount of volunteer work. Should it come from taxes? That's what the alternative looks like to me, either taxes or fees from people and organizations using the standards.

Finally, I don't see it as a real problem. The Standards aren't really useful to most people. They are worthless unless the reader already knows the language, and they aren't even very good as general references. They aren't for the casual reader. The people who actually have a use for them will probably be willing to spend a few bucks on them, and that will go to support the standards-making process.

David Thornley
@David, I disagree on the last point... the standard is actually incredibly useful as a reference. It says things much more clearly and to the point than any website out there explaining the rules.
Michael Aaron Safyan
+9  A: 

For what it's worth, Herb Sutter wrote an article touching on this issue, and there's a fair bit of discussion in the comments:

As he mentions, "open" does not necessarily mean "no-cost". As far as students or others with limited financial means who might want free versions of thee documents, note that:

  1. many references that students may want (or even be required to access) are not free
  2. for most work, the standards simply aren't a requirement - there is plenty of freely available documentation that is more than adequate for much of the work that almost anyone might want to do with C or C++
  3. the draft documents are freely downloadable in many cases; while they aren't the standard, the final draft versions are very close and might be good enough for a lot of uses.

If you're serious about C or C++ programming, I'd suggest that you should have a copy of the standards (though I wouldn't say it's a requirement). I'd also suggest that there shouldn't be an expectation that they'd be free, just as for any occupation or avocation the 'tools of the trade' are generally not free - whether those tools are physical objects like hammers, or information such as manuals or specifications.

In fact, I'd argue that a good set of references would be preferable to a set of the standards, if you could only have one or the other or you're starting out (you'd probably want a couple different ones for C++, while Harbison & Steele is all that's needed for C).

Don't get me wrong - I'm not opposed to them being made freely available (and I'm happy that they're currently rather inexpensive), but I don't think there's any reason to expect them to free.

The answers to the SO question, "Where do I find the current C or C++ standard documents?", have pointers to cheap versions and free draft versions. Also note that the current C99 standard (with TC1 and TC2 incorporated) is available for free download:

There's a note that N1124 "is a WG14 working paper, but it reflects the consolidated standard at the time of issue".

Michael Burr
+2  A: 

While I understand that much time and effort has gone into developing the C and C++ standards, I am still somewhat puzzled by the choice to charge for the specification. The OpenGroup Base Specification, for example, is available for free online; they make money by charging for certification. Does anyone know why the ISO standards committees don't make their revenue in certifying standards compliance, instead of charging for these documents?

I can't speak for the exact motivation, but keep in mind that ISO is a huge organization. They don't just standardize programming languages, but also container dimensions, power plugs, show sizes and a million other things. They are also, much more than the more specialized standardization organizations, very focused on stability, even at the cost of a lot of red tape, and very slow working processes.

I'd imagine there are a couple of reasons why they charge for the document:

  • it finances some of the organization's work, and
  • they don't see it as a problem. ISO in general does not really deal much with standards to be used by individuals. Most of their standards are intended for large companies to work with other large companies. For those, paying a few dollars means nothing, and may even be seen as a proof of quality.
  • the organization is fairly old. They weren't always able to just distribute a PDF document. Most likely, the rule to charge a fee for the documents originated in the days when they had to be printed and shipped to you.
  • you're not buying the document from ISO itself, but from specific national bodies, like ANSI. This should give you some idea of how big ISO is, and how big a network it has to fund. In fact, the price for the standard varies widely between countries, leading me to believe that the price is set by the individual national bodies, rather than centrally by ISO.
  • an ISO standard is pretty heavy-weight. It is the standards body, and if something is standardized by ISO, you can generally be fairly sure that it's worked through, considered from all angles and actually works in practice. Few organizations have this track record. Look at the trainwreck that is every single W3C "standard". Look at the vast number of horrendously underspecified RFC's that make up the internet.
  • charging for certification of C++ compilers isn't likely to be a very profitable venture. There aren't many compliant compilers around, and several of the compilers that exist are written for free, as open source projects. They could be significantly hindered by having to pay thousands of dollars in certification fees (and it'd have to be thousands of dollars to make up for the lost income from thousands of users downloading the standard). Are you willing to drive new compilers out of business just so you can save $20 or whatever they charge? Would G++ ever have gotten off the ground if they'd had that kind of barrier to entry? Would LLVM's Clang compiler? Hell, would Microsoft be willing to pay this fee year after year, when they could just be focusing on .NET?

One last thing... the C and C++ standards are generally described as "open standards"... while I realize that this means that anyone is permitted to implement the standard, should that definition of "open" be revised? Charging for the standard rather than making it openly available seems contrary to the spirit of openness.

No, they use the correct definition. They are not charging for the standard. You can implement a C++ compiler for free, without paying any royalties or licensing costs. The standard is openly available. It is just not freely available. But certainly openly. Anyone can gain access to it. You don't have to be associated with ISO, or work for a specific company (or any company at all). You don't have to be a citizen of a specific country or work in the government or have an uncle who worked on the standards committee. It is openly available to anyone who's willing to hand over a few dollars, less than what a good C++ textbook costs.

It is the document they charge for. Not the standard. The standard is free and open. The document is not free.

Really, there should be nothing new in this. Why do you think the Open Source movement makes such a big distinction of "free as in beer" and "free as in freedom"? Because open source does not necessarily imply free of charge. Often, open source software is free, but it doesn't have to be, and it isn't always.

Do you then also think the "open source" name should be changed?

We've already got a word that means "free". It's "free". A standard that is distributed free of charge could be called "free". "open" means something else. Why do you want to change the meaning of "open" to mean the same thing as "free"?

jalf
@jalf, I don't think your statement about gcc is correct; just as Linux is de-facto understood to comply with the Single UNIX Specification even though it has never received certification, similarly, gcc could comply even without certification of compliance. Another way of making money, by the way, would be to sell implementations of the standard library to compiler vendors seeking to come rapidly into compliance. I should say that while there isn't demand now, if it were marketed in such a way that no one would buy a commercial implementation of C++ unless it were certified compliant that...
Michael Aaron Safyan
... such a thing could really easily create demand.
Michael Aaron Safyan
@jalf, your point on not buying it from ISO is incorrect... in fact, the URL to purchase it is on iso.org: http://www.iso.org/iso/catalogue_detail.htm?csnumber=38110
Michael Aaron Safyan
@Michael: But if such a certification *existed*, it would carry a fair amount of weight, and a lot of companies would be reluctant to use a non-certified compiler. As for selling implementations, last I checked ISO was not in the software development business. Nor do they have any interest in moving into that market. Once again, it could hurt third-party implementers. The entire purpose of ISO is not to compete with private companies, but to allow companies to talk to each others and interoperate. It is supposed to be *beneficial* for companies.
jalf
And directly competing with third-party implementers would work directly against that.
jalf
+2  A: 

I am involved with ISO since 2004 and this is what I've learned so far. ISO is not a commercial organisation, and therefore has no paying members. Other standards bodies such as OMG are funded through the fees that organisations pay in exchange for being a member (and exerting their leverage). ISO doesn't work like that: it is composed of National Bodies, which are representatives of their respective countries. Therefore, charging for the standards is the only way they have to fund their own work.

In addition, and also due to the fact that ISO is not commercial, ISO does not do certification. The business of certification (which is a big business) is exploited by private companies as part of their services around ISO standards, but not ISO itself.

Lastly, ISO standards are not intended to be bought by individuals. They are targeted to organisations, and priced accordingly.

Hope this helps.

CesarGon
A: 

It is open as in "without restrictions as to who may participate." Anyone may join the C++ committee. It is an open process.

stonemetal