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.
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:
- many references that students may want (or even be required to access) are not free
- 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++
- 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".
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.
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.
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"?
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.
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.
"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.
It is open as in "without restrictions as to who may participate." Anyone may join the C++ committee. It is an open process.
来源:https://stackoverflow.com/questions/2734884/iso-iec-website-and-charging-for-c-and-c-standards