C++/CLI, like the XML Reference Schema, was submitted by Microsoft to Ecma for adoption as a standard and fast-tracking through ISO for global adoption. Last week, it hit a bump in the road.
Those who have been following the OpenDocument Format (ODF) story will recall that in late November Microsoft announced that it would offer its XML Reference Schema (XML RS) to Ecma, a European standards body, as an alternative to ODF. Microsoft’s desire was that Ecma would speedily approve the offer (under very restrictive terms) and then refer the resulting XML RS specification to ISO, the global standards body, for approval as a global standard (ODF is already in the adoption voting process at ISO).
If you have been following the process closely, you will probably also know that Microsoft offered another specification, C++/Common Language Infrastructure (CLI) to Ecma in 2003. In consequence, those interested in the ODF story have been watching the progress (and process) of the C++/CLI submission with interest for indications of how Microsoft and Ecma will handle the XML RS submission.
To date, most stories that I have read have speculated on what effect offering C++/CLI to a submitter-friendly body like Ecma (which has a reputation for pushing submissions through its process quickly and with fewer changes requested by other members than many other standards organizations would permit) has had on implementation of the specification in the marketplace. In general, those that I recall seeing have suggested that the market uptake of the Microsoft specification has been slow to date, and that the process and choice of Ecma by Microsoft may be a reason why this might be so.
Ecma recently adopted C++/CLI, and, as requested by Microsoft, duly submitted the specification to ISO for “fast track” adoption, which was expected to follow without incident.
Last week, however, there was a hitch in the process, involving, of all things, the name chosen for the C++/CLI draft standard. As reported by Matt Mondok at ArsTechnica, on February 3, the U.K. representatives to ISO have submitted an objection that the similarity (at the name level) but differences (at the technical level) to the already existing C++ language standard will result in confusion. As quoted in the ArsTechnica piece:
Currently Microsoft is the only current vendor of a C++/CLI compiler, and also a leading vendor of a Standard C++ compiler. And yet Microsoft’s online documentation consistently confuses the syntax and semantics of C++/CLI with those of Standard C++.
Documentation for Microsoft’s Visual C++ product contains many code examples identified as “C++” — not “C++/CLI” or even “C++.Net” — which will fail to compile in a Standard C++ environment. See, for example, http://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dndotnet/html/NetFramework.asp, which has many examples showing parallel code for “C#”, “Visual Basic”, and “C++” (without the “/CLI” qualifier).
To date, I haven’t written on this, as it has not been clear to me that there is anything going here beyond a name dispute. But several others with greater technical expertise than I can bring to the underlying technical issues have.
As so often happens, the first to take notice of the development was Pamela Jones, at Groklaw, who first wrote on the topic several days before Mondok, on January 30. Pamela reproduced excerpts from the UK objections paper, and raised the question of whether the Ecma specification would open the door to the addition of proprietary extensions in actual products that could give a dominant vendor (such as Microsoft) a competitive advantage in the marketplace, once the specification became an adopted standard.
Since then Elizabeth Montalbano, at IDG News Services has picked up the story, as has David Berlind.
Is there a real story here? Microsoft has already said that they will support a change to the name of the standard, so if there ever was a name game going on at all, it appears that this game is over. So that story appears to have been a little one, and over besides.
There are, however, two things worth examining here that relate to bigger issues. The first is what the end-to-end process of the specification to date has been, and what effect that process will have on the uptake of C++/CLI (or whatever the final ISO standard will be called). How fixed or flexible was the submission, and did the submission have any “designed in” unfair advantages for Microsoft, as suggested by Pamela Jones? And to what extent, if any, has the process impacted the uptake of XML RS in the marketplace? These go beyond naming issues, and will effect the marketplace for as long as the standard is implemented.
The second is, what does this process bode for XML RS? Presumably, the C++/CLI experience will be a reasonable predictor of the XML RS experience to come, and therefore the continuing advancement of XML RS through final ISO adoption – as well as what happens in the marketplace after that adoption occurs – will be interesting and instructive to watch.
* * * * * * *
[To browse all prior blog entries on this story, click here]