Forth to the past: C++ specification costs top dollar (and why this is bad)

This is a continuation of my previous post about rvalue references. As you may know, official C++ specification is not free: it costs upwards of $100, which, I dare to say, is a non-trivial amount of money for  any developer, even in first world countries.

This looks like a remnant of the dinosaur age in the modern world where open source is king and specification of virtually any other popular language (Java, Python, JavaScript, C#) is free to download.

The official ISO web site offers C++ standard PDF for 198 CHF ($200),  ANSI wants $232, but then only $116 if you go through a different link (amazing, eh?).

Still, even at $116 this is out of reach/unreasonable for most people. Yes, draft versions of the standard are available for free, but you never know how much they differ from the official one, and final drafts are password protected.

I saw some people going as far as to claim that one does not need the standard unless they are a language lawyer. I find this point of view condescending and, frankly, wrong. You cannot learn C++ by looking at the standard, but in quirky cases (and trust me, C++ has plenty), it is always good to consult the official law. So, what a developer can do? Cough up $116 (unlikely), find a friend who has a copy (also unlikely, but possible), obtain it illegally on some kind of shady web site, or resort to a draft hoping it was not too different from reality. None of these choices are attractive.

I remember that PDF copy of the C++ ’98 standard was available for something like $20: this was a smart move and a reasonable compromise. To wit, I actually bought a copy. While still quite expensive for many in developing countries, this was cheaper than most technical books you find on Amazon or in bookstores. I bet they made more money on this $20 standard than on the $200 one they have now.

Oh well… Going back to my free languages now. 🙂

Posted in

Leave a Reply

Your email address will not be published. Required fields are marked *