Where can you get the ISO C++ standard, and what does “open standard” mean?

In my role as convener of the ISO C++ committee, I get to field a number of questions about the committee and its process. It occurred to me that some of them might be of more general interest, so I’ll occasionally publish an edited version of my reply here in case other people have similar questions. Note that the quoted questions may be paraphrased.

Today’s question comes from someone who recently asked about why, if ISO C++ is an open standard, ISO charges for it and we can’t just download it for free.

The short answer is that people sometimes confuse “open” with “free.” ISO standards aren’t “open” like the O in FOSS, they’re “open” like “not developed behind closed doors.” Anyone who wants to pay for membership in their national body (if their country participates in ISO and in the specific project in question) is able to come join the fun. In free-as-in-beer terms, this means that experts are welcome to come to the ISO brewery at their own expense and volunteer their time to help brew the beer, and then when the beer is ready the customers still pay ISO to drink it (the helpers don’t get a cut of that, only a free bottle for their personal use and the satisfaction of having brewed a mighty fine keg).

Longer answer follows:

ISO C++ claims to be an OPEN STANDARD. Where can I download the OPEN STANDARD for ISO C++.

All published ISO standards are available for sale from the ISO store, via http://iso.org. You can purchase a copy of the latest currently published C++ standard, 14882:2003, here for CHF 380:

Also, your national standards body may sell a copy. For example, the ANSI store sells a PDF version here for US$ 30:

However, before you buy one of those, note that we’ve been actively working on a new revision to that standard, and hope to be done in the next year or so. You can get a free copy of the latest (but incomplete) draft of the C++ standard here:

Note that this is a working draft as of a couple of weeks ago; it is not the standard currently in force, and it is not exactly the standard that will be published in the next year or two, but it is a draft of the latter that’s in pretty good shape but will still get some editorial corrections and technical tweaks.

By the way, what does it mean, that the STANDARD of a widely used language is OPEN? Especially if I have to pay for it?

All ISO standards are "open standards" in that they’re developed in an open, inclusive process. All member nations of ISO are eligible to participate, send experts, contribute material, vote on ballots, and so forth. Additionally, some working groups, including C and C++, make all of their papers and all working drafts freely available on the web, as with the link above; the only thing a working group is not allowed to make freely available, except with special permission from ISO, is the text of the final standard it produces, because ISO reserves the right to charge for that.

Could you explain to me, what should it mean if the STANDARD of a widely used language was CLOSED?

Generally, that means it was developed privately by some closed industry group or consortium that not everyone is allowed to join and participate in. Some standards are developed behind closed doors controlled by some company or companies. ISO standards are not like that.

Best wishes,

Herb

82 thoughts on “Where can you get the ISO C++ standard, and what does “open standard” mean?

  1. Personally if the price point was more reasonable then I’d be tempted to buy it. Early on in my software career I was introduced to Ada. The Ada International Standard has always been fully, and freely available and has always been recommended reading for Software Engineers who want to go past a basic knowledge of the language.

    By making it freely (as in beer) available it has led to numerous people contributing to improving the language and to improving the readability and rigourousness of the definition.

    This doesn’t happen with C++ because only the “experts” really get a chance to be involved. It’s all very well saying the door is open for people to contribute but there’s a much higher investment required, not just in terms of dollars for the cost of the actual document, to get to that point.

  2. Who pays for the meetings? I think the people that do most of this work are actually *paying*, not getting paid.

  3. It’s not just the electronic copies. Somebody has to organise the international meetings, publish the document, etc etc. Why is everybody fixating on the PDF and forgetting the entire process that goes into creating the words it contains?

  4. @ech: Spam comment deleted. Thanks, good catch. The comment was moderated, and I usually check to see what the username links to in case it’s a phishing site or something, but this time I forgot to check the link and didn’t notice the duplicate content so it got past me. Thanks again.

  5. This is a verbatim repost of Bill McGann’s earlier comment above. I would suggest deleting it.

  6. I do a fair amount of web development these days and I refer to the HTML spec frequently, just as I refer to the HTTP spec when writing web services. Why would/should a spec be unsuitable as documentation?

  7. “Open” does not mean “Free”. Why do people keep using these terms interchangeably?

    This is a language spec so you can write a compiler, NOT C++ documentation. It is exactly the same as being able to write HTML without owning the HTML specification, which is equally unsuitable as documentation.

  8. No, it doesn’t “presuppose that C++ is not for them”, it presupposes that the C++ *standard* is not for them. The standard doesn’t tell you how to write C++, it tells you how to write a C++ *compiler*, so unless you’re a compiler writer, then the C++ standard is not useful to you.

    And yes, you should know the language inside and out before you can write a proposal for the ISO, because if you don’t already know the language inside and out, then the standard won’t make any sense to you! Don’t you think you should know the language inside and out before you set forth to write a compiler for it?

    If you *don’t* know the language inside and out, but still want to contribute your idea, then feel free to join the comp.lang.c++ news group, or contact one of the contributors by email. After all, their email addresses are included on all of the proposal papers! If your idea is really good, then these guys will have the knowledge to know how to do something with it.

    I should also reiterate that all the other documents, including the final draft, are completely free. The difference between the final draft and the final recommendation are very minor, so if you can develop a compiler follows the draft specification, then your compiler is already adheres to the standard better than most compilers.

  9. “And one of the things it contains is a complex programming language that’s hard enough to standardize on time by those who know the language inside out. The process would not be sped up or improved by everyone being able to spam their mailing list for free.”

    “As for C++ specifically, I highly doubt C++ would become a better language just because your average C++ newbie was allowed to shout as loudly as those who actually understand the language.”

    “Second, the rationale is this: the ISO standard is probably written for “the industry”.”

    From statements like the ones above I can feel that the C++ Standard is not for everyone, but its more for “the industry” and fo “the ones who know the language inside out”. If you consider sugestions from someone as “spam” and if “shouting of an average newbie” is annoying you, then you presuppose that C++ is not for them. So you automatically can’t say it’s free for everyone. I think that for a language to be called “free” and “property of everyone” it must be that everyone’s voice has to be equally loud. Yes, maybe C++ wouldn’t be a better language then *for the zealots*, but it will be better *for most people*.

  10. “Anyone who wants to pay for membership in their national body is able to come join the fun.”
    Yeah… OK, so maybe the next standard will be “freely available”, but only if you’re white? :|
    I can’t agree with the statement that “free” doesn’t have to mean “free of charge”. Because the charge, no matter how big it is, still will be small enough for some people, and big enough for the others. So this IS a discrimination: for people who don’t have $30 or there’s too much overhead for them to pay [e.g. they are from a different country, using different currency etc.]. And whenever there is a discrimitation, whatever it is, you can’t say it’s free or open anymore.

    “It’s a really bad document to learn a language from.”
    The worse for it.

    You may not agree with me, but practices like these make the ISO commitee endangered by the concurrency, which offers “more freedom” and “more openness” in their language documents. I mean languages and standards developed by the truly open communities. Truly open, because really everyone can take part in the debate and work on the standard online. And everyone can get it online, at any time, without any charge or other discriminating barrier.

  11. So, you’re saying that “open” means the price is less than some specific number? Say, paying 50 billion dollars for the right to be part of the direction is “closed”, and paying 380 CHF is “open”?

    What is that specific price beyond which it’s not “open” anymore, if I may ask? I might make use of this for my own marketing purposes.

  12. That holds for Microsoft too: pay the price-tag and you’ll be part of the direction and spec-making.

  13. please disregard, this was in reply to a comment that was deleted.

  14. Aside from C++0x, the language really hasn’t changed much at all since 1994.

    However, if you’d like to read the rationale for the new C++0x features, check out the latest “State of C++ Evolution” paper at http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2869.html

    Often the *last* revision of a proposal is the proposed wording for the standard (in standardese) but the *first* revision generally human-readable, and usually includes the rationale for the feature.

    They also have a similar paper tracking the library features: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2870.html

  15. I agree. The point is to reach that level, once you are there the issue of gaining posting rights is a different issue.

    I can well understand if the list members wish to keep posting closed and understand that the fee is a very good way to keep people away who aren’t sufficiently concerned.

    As for documentation – I have felt a need for something like a rationale at times – there is the D&E but it is clearly showing it’s age – do you know of anything more up to date?

  16. The fee isn’t to lurk on the mailing list to understand a feature, once again, that’s the purpose of documentation.

    The purpose of being on the committee is to provide feedback, to sway the direction of new features, etc. The idea being that you already have a vested interest in the direction that the spec takes as it will affect your business. At that level, comprehending the spec isn’t the issue anymore.

  17. I’d accept that $30 for the standard is quite reasonable, as we all know there are many years of work behind it from highly skilled professionals.

    The problem I see is the $1200 fee to lurk on the mailing lists trying to understand why something is or isn’t done.

    As it is right now there is an info dump (also known as committee mailing) 4-6 times a year and while that is very open and informative the constant flow of issues on mailing lists give one more time to internalize and understand the issues.

  18. No, the concept would be more like if you paid $200 you’d then be able to contribute to the direction Windows goes in the future. Its not a matter of whether or not you can use it, its whether or not you can change the spec!

  19. Oddly enough, you have described the accessibility of state law back when I was younger. It was only available as large expensive tomes with enough annotations so that they were copyrightable, so the only good way for a layman to consult the statutes was to go to a library. I noticed no catastrophic problems from that. While I appreciate the ability to browse laws from my home, I really doubt it’s made much difference in people’s lives.

    After all, you really do need a lawyer to do more than study each individual paragraph to determine the meaning, just as you’re better off in most cases reading books by people like Stroustrup and Sutter and Meyers than the actual standard. I’d say that the effort involved in comprehending the standard is more of a barrier than $30 for pretty much anybody wealthy enough to own a computer.

    There’s also the fact that standards cost money. A great deal of cost is paid by volunteers, and a great deal of work is done by them. However, there has to be a centralized administration to set the rules, organize things, maintain things, publish the standards, and the like. It’s not reasonable to depend on volunteers for the day-by-day work, or to rely on random people to host ISO websites. It’s really irrelevant to this argument whether the ISO is efficient or not, costs have to be met.

    Standards organizations could be funded by tax money, and probably are to some extent, but that’s not necessarily ideal. It makes at least some sense for standards organizations to be supported by people directly benefiting from them, and that’s one thing selling standards does.

    Moreover, I think you and others overestimate the value of having a personal copy of the standard. If you’re implementing a full-scale C++ compiler, the cost of the standard is trivial compared to the scope of the project. We can all learn the same language from other sources. We can settle disputes by finding somebody knowledgeable; I know of free Internet forums where you can easily get experts to cite chapter and verse (I may be using the word “experts” loosely here).

  20. I apologize if I misunderstood you. I completely agree that there’s so much administrative work required that the ISO really needs to hire full-time workers.

    However, when you said “part of the goal is … to provide lifetime employment for the kind of folks who fill the ISO meetings”, it implied that there’s some conspiracy where the secretariats meet to discuss how they can justify hiring more people — hundreds of people — without actually having any work for them to do.

    That just sounds paranoid to me.

    Regarding splitting up the standard, I’m not sure Python and Java *have* crossed that bridge, considering neither of them are standardized. All you get for those languages is a reference implementation, which also gives an unfair advantage to CPython and Sun.

    Now, sure, Python has the PEPs and Java has JSRs, and those are more granular than the C++ standard, but it doesn’t make sense to compare them to the C++ standard. It makes more sense to compare them to the proposal papers produced by WG21, and in that context they’re virtually identical.

    The only difference is that at the end of the process, WG21 takes all their individual proposals and compiles them into a cohesive standard, while Java and Python don’t.

    I really am curious if there’s any way to better split up the standards work. The WG21 has already created subgroups for the core and library, so these are effectively already developed as separate standards, even though at the end of the day they’re printed on the same paper. It was the library group, for instance, that brought you TR1.

    And I’m sure you don’t fall into the category that thinks C++ is too flawed to be broken up, because you’ve already said that “It’s entirely possible to standardize something like C++ under IETF rules” and “IETF standards are only ‘relatively simple’ because the C++ standard … should have been split into several separate standards”.

    Like I said, this topic interests me, so if you have any actual ideas about how C++ can be broken up into different standards, or an example of another programming language that has been broken up into separate standards (aside from core and library, since C++ already does that) then I’m all ears.

  21. Mark, this is a good thought experiment. I think it would still be just as much of an issue. Consider if the penal code in your area was not free for copying – you could download a .pdf for a small fee, and it was illegal to copy it. Obviously there is not nearly as much at stake here, but I think it is problematic for similar reasons. The decisions in it may be totally arbitrary, but they create reality for the rest of us. I’m not interested in them because they are good, I’m interested in them because they are telling me what to do and in a sense how I must do it. I’m not interested in a book on language design – that would make sense to charge for – I’m interested in a set of arbitrary decisions that affect how I must work.

    The fact that the copyright prevents free distribution is at odds with this, considering that the language is considered open. It makes the language, in a sense, not open. It’s still open in that I don’t need to pay a license to implement the standard or use “C++” in marketing materials, but it is not open in that I am being told I must do something but I can not freely find out what I am being told to do.

    I want to also point out that the money we pay for this document is not going to reimburse the authors for their time. We are not paying Herb here like we are if we buy his books. This is not an attempt to freeload off his work – and I don’t care about the standard’s literary value.

    It is valuable only insofar as it is distributed, and I want it to be freely distributed so that all compilers will implement the same language, disputes about language details can be settled easily by an authoritative source, we can all learn the same language, etc.

  22. This thread feels in parts like an almost academic discussion about a trivial 30$ for a pdf file.

    In other parts, it reveals the C++ community is frustrated and powerless that is not better organised. I agree, but who is listening to those arguments that can/will do something? I’m over it.

    If the same people (including me) had contributed as much heat and thought out argument into the mechanisms that already exist – whatever the faults are with it – to get something tangible like the Concepts or Modules specification through sooner, instead of wasting energy on trying to define “free” or whatever we are doing here (?), then maybe Concepts and Modules would have made it into the next standard after all and the 30$ would have been money even better spent.

    So head on over to cpp-next.com or groups.std.c++ or wherever and contribute as heavily on those more tangible topics too is all I can say, because trying to define free isn’t likely to get anywhere.

    If only we could combine groups.std.c++, cpp-next.com, boost, artima, and stackoverlfow into some kind of more organised “all about” c++ thing, where we contributions could really feel collected and acted on – maybe that would move c++ forward quicker.

    Anyway, Herb, close this thread and talk about something else! :)

  23. [comment edited with the author’s permission]

    Rick: I have a policy against arguing […] too, but I’ll make an exception in your case. Anybody who has actually worked with standards knows that there are people who make their living from standards development. It cannot be otherwise. There’s so much negotiation involved, and so much red tape, that even with administrative staff to help the committee chairs etc. pretty much have to devote more time to it than they could afford if they had another full-time job. I’ve had several colleagues over the years who were engaged full time in this way, and I’ve talked to them about their work. There really are people like that, and they’d be devastated if such work became harder to find. […]

    David: interdependencies between separate specs are a common issue in standards. Do you think the IETF specs aren’t all full of mutual dependencies, or that the ISO specs for mechanical/electrical components aren’t? Somehow, though, they manage to handle it. Even other programming languages, such as Java and Python, have crossed this same bridge before. Splitting compiler and library is just the very roughest cut. In general, for any well written spec, it should be possible to take most of the major sections (usually excluding the first few that describe the true core) and make them separate specs with just a bit of verbiage in the main spec referring to them. If the interdependencies are too strong for that, it’s a strong indication that the original spec – or the thing it describes – is very seriously flawed in ways that no standards process can address.

    Of course, some would argue that C++ fits that description, and that the very reason why the spec can’t be broken up is also a reason to avoid C++. That might be a fun discussion to have, but perhaps not in this comment thread.

  24. [comment edited with the author’s permission]

    [I definitely disagree that standardizing something like C++ under IETF rules is as simple as Jeff makes it sound, but] the question of how the standard could be split up is a somewhat interesting one. The first thing that came to mind was concepts, which the WG chose to drop from the next standard rather than fixing the loose ends.

    Is there any way to isolate such a feature into a separate standard?

    It seems like a tall task to me. That feature touches so many other portions of the standard that it seems nearly impossible to isolate it, unless the new standard was developed as a ‘patch’ for the base standard. (And, in effect, that *is* how it was developed, albeit not as a separate standard.) C++ isn’t designed as a ‘stack’ like TCP/IP, and it’s difficult to imagine how it could be redesigned as such while still being human-readable.

    Maybe if/when C++ accepts Daveed Vandevoorde’s modules proposal, it would be easier to add a feature to C++ which would allow users to ‘import’ different language features (eg “import templates”, “import exceptions”, or “import cpp03”). That would also be kind of cool, because it would make it easier to deprecate old features on a per-module basis, or, depending on the flexibility of the module format, you could even compile your modules from a completely different language!

    Of course, even if you could figure out a way of doing this (acknowledging that I made it sound at least two orders of magnitude easier than it would really be) is it desirable? Or would it mean that users are less able to rely on a common baseline in their compilers?

  25. This is actually a reply to Jeff Darcy’s post, which doesn’t have a “reply” (nesting too deep?).

    I don’t think anybody here will argue that the C++ standard isn’t uncomfortably large, but it isn’t clear what should be done instead. It can’t effectively be split into compiler and library, since those are developed together (and, in fact, you can split those apart yourself if you like, with the finished standard).

    So, what would be a better way to do something like the C++ standard? I’d be very interested in learning how such things could be split, and I think a lot of people would.

    I really don’t think the people who fill ISO meetings would mind having the Standards committee be less of their work, provided they could as good a Standard at the end.

  26. [comment edited with the author’s permission]

    Jalf, you seem angry. Did [someone] kick your cat?

    I submit that if you get this worked up over a challenge to ISO standardization, it’s time for a break.

  27. @Avdi: Are you *seriously* using the WWW as an example of how *free* standards are superior? Seriously? Last I checked, HTML wasn’t much of a standard. It’s a mess. It sucks. No browser follows the spec, which is just as well because no web designer does either.

    The ISO version of “openness” has yielded thousands of actual standards: Standards that countless companies have been able to follow, allowing them to interoperate.

    As for C++ specifically, I highly doubt C++ would become a better language just because your average C++ newbie was allowed to shout as loudly as those who actually understand the language.

    Standards organizations do not cater to you. Their relevance is in ensuring interoperability between those who care. Between Visual C++ and GCC. Between different shoe manufacturers. Between the container sizes used by different shipping companies. ISO is set up to handle more than Joe Bedroom Coder who wants to understand C++ without spending a cent.

    No, just because your web browser has “moved on” and is free today, that doesn’t mean that “the world” has moved on. The world is big and complex and contains quite a lot of diversity. And one of the things it contains is a complex programming language that’s hard enough to standardize on time by those who know the language inside out. The process would not be sped up or improved by everyone being able to spam their mailing list for free.

    Lots of open source software costs money as well. Is that offensive too? Should we start a crusade against the open source movement for daring to use the word “open” to describe themselves, when they don’t absolutely guarantee free access?

    Or perhaps you should just accept that “open” means the same as it did 20 years ago. It didn’t mean “free” then, and it doesn’t mean “free” today.

    As for the openness of the C++ standard: You and I can use it and follow it to the letter without spending a cent. Yes, I have to pay a nominal fee to get access to the document, but even if I don’t have it, I won’t be hit by a lawsuit if I dare to write a C++ program. I can use a C++ compiler without paying for the standards document. I don’t need a license. The compiler writers didn’t need a license. What the standard *describes* is absolutely free and open. So what if they charge a fee for the actual description?

  28. [comment edited with the author’s permission]

    IETF standards are only “relatively simple” because the C++ standard is a bloated monstrosity that should have been split into several separate standards a couple of iterations ago. It’s entirely possible to standardize something like C++ under IETF rules […].

  29. I don’t think it *is* possible to interpret “open” vs. “non-open” in absolute terms, because different organizations favour different kinds of openness.

    The ISO charges for access to their Final Standards. The IETF uses “rough consensus”, as determined by the chairperson, rather than a formal voting process. The WHATWG’s steering committee is invitation-only. None of them are 100% open.

    And these different kinds of openness make sense. For instance, the IETF works great for relatively simple protocols that people mostly already agree on, but which need to have the bike-shed stuff standardized. C++, on the other hand, has too many interested bodies with widely different goals for the standard for it to prosper if it was developed under the IETF, without a more formal voting system. It would be impossible to simply use a “rough consensus” and get anything done.

  30. “Open” vs. “non-open” can be interpreted in relative as well as absolute terms, and that’s what I contend IETF was doing with the above. Yes, ISO standards are “open” relative e.g. to a Microsoft document format. No, they’re not “open” relative e.g. to IETF’s own standards. The question is, where do we want to place the bar when “open” is used in an absolute sense?

  31. You like the IETF, do you? Well, here’s what RFC 2026 has to say about standards:

    There are two categories of external specifications:

    (1) Open Standards

    Various national and international standards bodies, such as ANSI, ISO, IEEE, and ITU-T, develop a variety of protocol and service specifications that are similar to Technical Specifications defined here. National and international groups also publish “implementors’ agreements” that are analogous to Applicability Statements, capturing a body of implementation-specific detail concerned with the practical application of their standards. All of these are considered to be “open external standards” for the purposes of the Internet Standards Process.

    (2) Other Specifications

    Other proprietary specifications that have come to be widely used in the Internet may be treated by the Internet community as if they were a “standards”. Such a specification is not generally developed in an open fashion, is typically proprietary, and is controlled by the vendor, vendors, or organization that produced it.

    So I guess that’s that.

  32. Access to the C++ standard is restricted? Does that mean I need a prescription from my doctor to buy it?

    Listen, anybody who can afford a computer can afford $30. *Especially* if that person has written a C++ compiler that already meets the C++ Draft Specification.

    Also, unrestricted *access* isn’t the most important part. Unrestricted *use* is the most important part, and the C++ standard surely meets this criteria, as anybody is allowed to write and distribute a C++ compiler without paying a licensing fee.

    To recap:

    * Anybody is allowed to partake in the creation of the standard.
    * Anybody can download the papers and follow the development of the standard.
    * Anybody can download the Final Draft, which is nearly identical to the Final Standard.
    * Anybody can purchase the Final Standard for a nominal fee.
    * Anybody can use this standard to write and distribute their own C++ compiler.

    If you know anything about specifications, you have that admit that that’s more open than most standards.

    Compare that to the IETF’s RFCs, which *are* free, but *aren’t* necessarily developed in an open way. You can comment, but that doesn’t mean you get a vote.

    I’m not saying that’s a bad thing — it certainly has less overhead — but it’s not completely open either.

    So unless you’re one of those open-source ultra-zealots that claims that the GPL isn’t open enough (compared to the MIT license, or the public domain) then you have to draw the line somewhere, and you would have to be crazy to put C++ on the same side of that line as the .DOC specification.

  33. I did read the post, but I don’t feel it correctly matches the definition of open. For it to be open, it must be available to everyone with no barrier to entry. By charging for the final standard, that’s a clear barrier to entry.

    Do not confuse “open to comments” with open. Just because domain experts are allowed to partake in the creation of the standard does not make it open; that’s really only really half of the equation. Unrestricted access to the final standard is “open”.

  34. Luckily, the ISO and the Open Group have never called themselves ‘free’, just ‘open’.

    In fact, if you recall, ‘open source software’ used to be called ‘free software’, but most people have stopped using that term because people were confusing ‘free’ for ‘free-as-in-beer’, and although that’s nice, it’s certainly not the really important part of OSS.

    The fact that so many people look at OSS as glorified freeware makes me quite sad. Please, take this opportunity to donate some time or money to your favourite open source project.

  35. I certainly hope we’re both attacking each other’s arguments and not each other, and if I gave any intimation to the contrary I’m sorry.

    When I write portable code, I am interested in having it run widely. I don’t see that writing standard-conforming code as a worthwhile goal in itself, but rather an extremely useful technique for making it work on all sorts of systems, including ones that have not yet been developed. Code that must work on any conforming platform is very good to have, because most platforms make a real effort to be conforming, and will continue to.

    I still don’t see the value in a copy of the Standard here. I can learn to write conforming code without it, and for practical purposes I can’t rely on it to show me what’s really portable. It’s neither necessary nor sufficient for portability. It’s a really bad document to learn a language from. It can be hard to determine whether a certain construct is conforming, and in fact the best way is often to ask on free internet forums.

    The Standard is invaluable for language implementors, but in this case a $30 copy of the Standard is not a significant additional burden.

    In short, I’m not seeing where anybody is going to be significantly harmed by paying $30 or so for a copy of the Standard.

  36. I understand that this was once a perfectly acceptable interpretation of the word “open”, but the software world has moved on. Groups like the IETF, W3C, and WHATWG – not to mention the Open Source movement as a whole – have set a new bar for what it means to be “open” in computing. And by and large the standards emanating from those groups have been the better for being transparently and publicly debated, and made available for free.

    Not to mention the positive effect the new openness has on standards adoption. I can tell Github that I think they are using the wrong HTTP response code in a web service, and they can google “http response codes” and check it for themselves in a matter of seconds. They would be less likely to do that if they had to purchase some PDF and search through it.

    The ISO version of “openness” is one of the reasons the English-speaking Ruby community has largely taken the view that the effort to create an ISO standard around Ruby is irrelevant and not worth their attention. I recently created a wiki just so interested people could have a place to openly pick apart and discuss the draft Ruby standard. I shouldn’t have had to do that.

    I’m in the camp that thinks standards are useful and worthwhile efforts. C++ in particular has benefited from a robust standardization process. The world has changed, though; for the better in my opinion. “Open” means more than it ever has before, and that’s a good thing. Standards organizations would do well to embrace the new openness, or risk decreasing relevance.

  37. Or the administrative work is made convoluted to justify somebody gets paid to do it, as in many associations

  38. please explain how companies can obtain their own standards and the role of international quality standards in the management of firm

  39. “up to date” is a moving target, and forces you to constantly update all your code. If the definition of “portable” equals “up to date”, then software must actively be *kept* portable.

    I like the other definition of portable, that is, “write once, compile everywhere”. That enables one at least to clearly separate the implementation-depentent, in-flux parts of the code from the portable, stable parts.

  40. “open-process standard”, “royalty free standard”. (I don’t debate that “open” may have had a different meaning originally.)

  41. > “You are NOT permitted to amend, copy, reprint, offer for sale, or otherwise re-use material from these documents without explicit written permission from The Open Group.”

    I’m aware of that, and even agree with that — a standard is a standard because it’s developed under the central supervision of a standards body. The GFDL is a great thing, but such standards need *rigor*. In this case, I wish for the expertise and strict development process of the Open Group. I don’t want to redistribute the standard — for this discussion, I only talk about free-as-in-beer.

  42. As far as I can see, some of “these people” have gone to great length to point out what’s wrong, and it’s clearly not with “these people.”

    A practice (or statement) that can piss off such a great lot is most evidently wrong, no matter how it might be justified.

  43. Ah, but those documents are copyrighted, and you must agree to the terms and conditions, which includes:

    “You are NOT permitted to amend, copy, reprint, offer for sale, or otherwise re-use material from these documents without explicit written permission from The Open Group.”

    This is the antithesis of the GPL. Luckily, Open Group is open in different ways, most notably that anybody is allowed to implement the standards.

    Also, for the record, the ISO was responsible for a significant portion of that standard, so in effect, you *are* getting a standard from the ISO that’s free-as-in-beer.

    But seriously, if anybody is confused about what an “open standard” is, just look it up on Wikipedia. They’re “open” because they’re royalty free, not because you can freely modify and re-distribute them. That’s useful for software, but it would make it literally *impossible* to develop a standard.

  44. Just to be clear, the central secretariat isn’t one person, it’s 153 full-time employees, and they also employ about 500 full-time technical secretariats. And the sales of publications pay for *45%* of their salaries.

    It’s a big organization, and *somebody* needs to do the administrative work.

  45. I disagree. “Open” does not mean “gratis”, and it’s only within the last couple of decades that people began to assume as much. Yes, most open-source software is free-as-in-beer, but that’s not what makes it open.

    Consider:

    * Anybody can join the C++ working group and vote on the standard.
    * Anybody can implement the C++ standard without paying a licensing fee.

    This clearly makes the standard *far* more open than, say, C#, or MP3. So if you don’t think it should be called ‘open’, what do you think it should be called? How else do you distinguish it from the ‘closed’ standards?

  46. “How is charging for the final standard still open?” Did you even read what the post says?? How rude!

    They call it open because anyone who cares enough can have input in the creation of the standard.
    Compare that to proprietary standards like DirectX, where the standard is developed within the bowels of some corporation with no public access.

  47. Yep, can’t believe how aggressive these comments are… What is wrong with these people?

  48. [comment edited with the author’s permission]

    According to ISO’s own figures at http://www.iso.org/iso/about/iso_in_figures.htm, the Central Secretariat receives 55% of their funding from member organizations, and it’s important to note that that’s just for the CS’s own internal operations – delegates’ expenses etc. are paid directly by the member organizations and never appear on this balance sheet at all. In other words, the fees pay for only a small percentage of ISO work. That’s just as well, because if it were otherwise then the only difference between ISO and a for-profit publishing house like O’Reilly would be the former’s inability to write engaging prose.

    So “finding another way to fund ISO” is [unsupported by fact]. It’s not about funding ISO. One must seek another explanation; [I suspect that the fees exist] to “keep the circle small” and discourage casual or “unqualified” participation. I do not find that a laudable goal.

  49. > Now, the fact that it is not free to copy is an impediment to learning the language and writing portable code, and is a significant problem that I’ve never understood. I would like to see a rationale for this.

    First, I guess you’re not asking for redistribution rights when you say “not free to copy” — a gratis download from a central site (after registration, perhaps) would be completely fine.

    Second, the rationale is this: the ISO standard is probably written for “the industry”. Commercial entities make more money because the ISO standard allows them to develop portable code, ie. to sell their proprietary products to a larger customer base. (This is why standardization is good, no doubt about it!) So ISO likely collects money because they *can*, and for any proprietary developer it’s economically feasible and reasonable to *invest* into copies of the standard.

    Obviously, this completely excludes developing parties who have different (non-monetary) incentives. There is no return on their financial investment.

  50. Thats really not what I meant. As stated, open != free. Herb says it’s open in the sense that anybody with desire and technical competence can work on it and contribute where applicable. At this point, fees are much irrelevant since the act of attending a meeting will set you back good amount of money just to get there, sleep somewhere and eat. So we are not talking about committee members. Even with theses fees, the standard is still open because any would-be committee members can join. It’s not like you need to be employed by some business to have your word heard. There is also public forums, public drafts, technical reports and trip reports.

    Then there is the issue of the standard final publication. Which is not free but almost.. Except for amateurs with very bad financial situation. (students and professionals can probably get it respectively through their school or work place without a charge)

    So that leaves us with the remaining issue.. Principle. Should any computer standard be free like IETF’s are? The answer is most probably yes..

    But unless we find another way to finance ISO, we are kind of stuck with our frustrated principles.

  51. For whatever reason I can’t respond directly to your comment made on “March 3, 2010 at 2:12 pm”.

    First, I apologize if it looked like I wanted to attack you — I most surely did not want that.

    More on topic, having access to the final standard is useful even if an implementation doesn’t conform to it completely (and hence, technically, simply doesn’t conform to it) — it enables the implementor and the user of that implementation to enumerate the exact features that don’t work (like export).

    Furthermore, while I definitely do not doubt that you wrote lots of portable C code, I’m less interested in code that *proves* to be working on many (or all) platforms — I’m more interested, if I have a choice, in code that *must* work on any conforming platform.

  52. Distribution cost is not the issue – it is copyrighted. That is, if I were to buy a copy, I could not legally mail you a CDROM of it on my own dime, it is copyrighted.

  53. When I first started to program, I thought it was confusing this document cost money, but whatever. Maybe open shouldn’t be part of the name. It’s too general a word to apply your random beer meaning, and most people wont get it. I also think it’s kind of silly an electronic document is 30$ (maybe i’m wrong?) but could a torrent be used to possibly lower the cost of distributing it?

  54. I think it’s interesting that there are no answers to this question here on this list. Is this an important revenue source for ISO? Given the obvious problems with non-open access, why the charge? I don’t get it either.

  55. I do assure you that I’ve written a good deal of portable C code without ever owning a copy of the C standard. I did not find it very hard, and I don’t think I was being even slightly foolish to try.

    Similarly, how many implementations follow the C++ standard as a whole? Specifically, look at the latter part of section 14, discussing the use of the “export” keyword. I believe only one current compiler implements that. I found nothing in the section to indicate that “export” was experimental, or would be likely to not be implemented.

  56. “If you can afford it then it’s open”? Come on, Michel. This isn’t about what well paid first-world professionals like you and me can afford to do. It’s about what the less economically advantaged – including both students/amateurs and those in poorer nations – can do, and even more it’s about principle. Even if it’s a small barrier, it’s an unnecessary one that has nothing to do with defraying costs. If IETF can publish its standards for free then so could ISO. Whether it’s one dollar or a thousand, such a fee is contrary to the spirit of openness.

  57. > The Free Software Foundation positively encourages people to sell Free Software for money.

    Yes. However, the first customer of such software will make it available for the public, and rightfully so. That means, in effect, that the first customer pays for the development (creation) of the software. It’s simply “work for hire” and “compensating the developers for their work”, which has nothing to do with licensing at all.

    Selling electronic copies with all (or most) rights reserved is very a different thing, considering especially that the standards developers are not compensated at all — they have to pay fees in order to participate.

  58. Thank you for mentioning the Open Group. I was able to download versions 1, 2, 3, and 4 of the Single UNIX(R) Specification from their site, free of charge, completely legally.

  59. I’m happy for you if you can spend thousands of dollars on technical literature.

    > you’ll spend thousands of dollars of computer hardware

    Nope. I build a workstation every 8-10 years.

    > and software licenses for a pet/hobby project.

    I’m not sure if you’re joking. I spend exactly $0 on software licenses, and still use all software that I use completely legally.

    > Considering the electricity bill your computer will generate

    CHF 380 would pay for my *complete* electricity bill for months.

    > Considering the number of 60$ technology books you buy on amazon per year.

    I’m not out of my mind. I’ve bought exactly one book on Amazon in my whole life, Schneier’s Beyond Fear. (It was worth the price.) If I have to buy technology books every year, then those technologies are just fashion and will past till next summer.

    > Considering all other useless gadgets you buy that sits there gathering dust

    Yes, that’s why I don’t buy such things.

    > You cannot afford 30$ for 1200+ pages of quality material written by the greatest experts in the field?

    How come the Single UNIX(R) Specification, which is certainly not smaller by volume, is available at no charge, beside being developed in an open process?

    > The same experts you bought countless books before.

    Umm, no.

    … Are you saying that I shouldn’t be able to code portable free software because I’m not willing to spend money on the written definition of portability?

  60. They can get away with pricing the full official copy this high and make the drafts freely available (free as in beer) precisely because the full official copy is the one that implementors will follow. That’s the only normative version. The full official copy is the only version that *defines* portability itself. Anything else is a half-assed approach. If you go for portability, you go for the real thing. If you don’t care about rigor and strictness, then there’s no use in following the drafts either.

    > On the assumption that it’s impossible to write portable software without a full official copy of the language standard?

    So no, not impossible, just very hard, and kind of foolish even to try, because you’d be programming for a specification (a draft) that in fact nobody at all follows as a whole.

  61. “Anyone who pays a fee can see it”

    It’s like “Windows is open”, anyone that pays their $200 can use it.

  62. Please remember that the Open Group has published open standards for decades (the Open Group’s lineage includes X/Open, founded in 1984), and many of those standards sell for far more than $30.

    Back in the day some big company would release some kind of “must have” software. That company’s smaller competitors would often create a so-called standard as a response (this is where the phrase “the good thing about standards is that there are so many to choose from” comes from). These were industrial standards and getting access to them was not cheap. Think Microsoft and Apple working on True Type to compete against Adobe’s Postscript. Or POSIX. Or CORBA vs. COM.

    Open standards are simply industrial standards that were created by some consortium that claims to be open (ISO is more open than most such consortiums). Generally they are available without a need to pay royalties, but not always (ECMA allows its standards to require patent licenses if those licenses are available under ECMA-approved terms). This usage dates back at least to the early ’80s.

    This isn’t a case of the ISO attempting to confuse people by using a term similar to “open source.” If anything, the term “open source” was an attempt to use a term similar to “open standard.”

  63. Just looking on my bookshelve.. It surely weight more than a thousand dollars of Sutter, Alexandrescu, Meyers, Stroustrup, Gamma, Lakos, Sedgewick, Rammer, Lunde books.. not counting thoses heavy unicode standard bibles, DrDobbs J, and ACM communications..

    Come on guys! I don’t want to start a war here but consider the fact that you’ll spend thousands of dollars of computer hardware and software licenses for a pet/hobby project. Considering the electricity bill your computer will generate just sitting there idling all day long while you are at work. Considering the number of 60$ technology books you buy on amazon per year. Considering all other useless gadgets you buy that sits there gathering dust. Considering you will most likely spend hundreds if not thousands hours working on this project. You cannot afford 30$ for 1200+ pages of quality material written by the greatest experts in the field? The same experts you bought countless books before.. It’s not even the price of a pair of tickets for that startrek movie [or any other you want]..

  64. On the assumption that it’s impossible to write portable software without a full official copy of the language standard?

  65. I suppose that is open in comparison to the way Java or C# evolve, but pay-for-play does not meet any reasonable person’s definition of “open”, and in practice the ISO process is far more opaque than, say, the Java community process, and that’s saying something.

    In the days of OSI, I used to refer to them as proprietary standards, versus the true open standard that was TCP/IP.

  66. Herb, I think you’ve got this wrong. You are using open to describe its creation, not the document itself. Not many would accept or use this definition of open as applied to the document itself.

    The document itself is open because you don’t need to license it to use it – ie, if I make a c++ compiler that conforms to the standard, I don’t need to pay anyone a license to use C++ in the name or marketing material. That, and its not a secret – ie, Microsoft’s .doc format is not open because nobody can get the format short of reverse engineering. This is a weak form of open, to be sure, and I think its use in describing the document is a misleading attempt to cash in on the goodwill that “openness” has.

    Now, the fact that it is not free to copy is an impediment to learning the language and writing portable code, and is a significant problem that I’ve never understood. I would like to see a rationale for this.

  67. > What can a person do that requires the exact standard documents, but worth less than $30?

    Develop *portable* free software in his/her free time.

  68. Thank you Herb for clarifying this. Even though some peoples seems to be upset it’s not free, I’m convinced that the “final” draft will be good enough for most of our needs.

  69. Okay, who pays for standards work? The Committee members donate their time, and probably spend a good deal of their own money on incidentals, but the ISO and member organizations have their own expenses, and need a revenue stream to stay alive.

    Presumably some standards organizations get government support, but I’m not convinced that’s ideal.

    With the current situation, the people who actually need and use the standards pay for their production, which has a certain fairness about it. They may have to pay a lot, since running international organizations isn’t cheap, and I don’t know of other revenue streams.

    In the meantime, $30 isn’t much money. It’s not a bad price for a book on software, and it won’t do people much good if they don’t already have a computer and internet connection, which typically cost considerably more. Moreover, it’s a document that requires a certain amount of commitment to be useful, since it’s written in Standardese, and not only isn’t a tutorial but isn’t really set up to be useful as a general reference. It tells you what language elements mean, and leaves the implications for you to figure out.

    Just because something is open in some sense doesn’t mean without cost. If I have software under an OSI-certified Open Source license, I don’t have to just give it to you. I can insist on selling it to you. The Free Software Foundation positively encourages people to sell Free Software for money, although their positions don’t agree with all business models. Why should standards be different?

  70. I don’t understand you people… What can a person do that requires the exact standard documents, but worth less than $30?

    (For educational or similar one time use purposes, there is always drafts available online).

  71. Does ISO derive significant revenue from selling standards documents? In other words, is the sale of documents funding standards development? If not, what is the justification for charging for electronic copies?

  72. Are people incensed at the price point or the fact that there’s a price at all? If the PDF was $0.99, would people still care? I’ll come out and say that I wouldn’t. $30 just seems awfully dear.

  73. I don’t get it. Why experts work for free on developing new standards for guys who sell standards with such insane prices? What exactly ISO does? Coordinating their work? Is it really that hard, that they must charge 30$ per pdf?

  74. Definitions of open on the Web (via wordnetweb.princeton.edu/perl/webwn):

    # affording unobstructed entrance and exit; not shut or closed; “an open door”; “they left the door open”
    # affording free passage or access; “open drains”; “the road is open to traffic”; “open ranks”
    # exposed: with no protection or shield; “the exposed northeast frontier”; “open to the weather”; “an open wound”
    # open to or in view of all; “an open protest”; “an open letter to the editor”
    # accessible to all; “open season”; “an open economy”
    # assailable: not defended or capable of being defended; “an open city”; “open to attack”

    How is charging for the final standard still open?

  75. Sorry, Herb, but that’s not open. It’s not about the price, it’s about the obstacles, and a $30 fee for a download of a copyrighted document is an obstacle. “Anyone who pays a fee can see it” doesn’t make it open, any more for ISO than for Oracle. IETF standards are truly open; anyone can download an RFC without identifying themselves or paying a fee. If ISO standards are not similarly unencumbered, they’re not truly open.

    It’s easy to say the door’s not in the way when you’re inside the room.

Comments are closed.