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.
It is open as in "without restrictions as to who may participate." Anyone may join the C++ committee. It is an open process.
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.
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.
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.
"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.
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:
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"?