At first blush, the irony is inescapable. On one hand, you have Microsoft, the brash--some might say intimidating--software giant; on the other sits a 40-year-old standards-setting organization based in Geneva, Switzerland. So, Microsoft rumbles in like Hannibal crossing the Alps and bullies the neutral-state standards body into doing its bidding--right? Not quite, but you can be sure that Microsoft isn't harboring altruistic motivations.
Shortly after announcing C#, its new programming language that's a core component of .NET, Microsoft submitted the language specification to the European Computer Manufacturers Association--ECMA--for review. Along with the language, Microsoft also submitted specs for the Common Language Infrastructure, or CLI. The CLI includes class libraries and other components that support C# and allow it run in other--non-Windows--operating system environments; in Java terms, the CLI is analogous to the Java Virtual Machine.
ECMA was founded in 1960 in Brussels by some of Europe's largest computer and technology companies. By May of 1961, they had established a formal trade organization with the goal of evaluating, developing, and ratifying telecommunications and computing standards. It was decided to base ECMA in Geneva so that it would be near other standards-making organizations with which ECMA coordinates activities, such as the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC).
As stated in ECMA's bylaws, the nonprofit organization's purpose is to develop "standards and technical reports in order to facilitate and standardize the use of information processing and telecommunication systems."
ECMA's membership comprises a who's who of the world's leading technology companies, arrayed in three levels: ordinary, associate, and SME. Ordinary members must be companies that are actively involved with product or services development and sales in Europe; associate members are described as having "interest and experience" in topics under consideration by ECMA's technical committees; and SME members must meet the requirements for associate membership but have revenues of less than 100 million Swiss francs (about $60 million). To be admitted as a new member, a two-thirds majority of current ordinary members is required.
Microsoft seeking standardization
Shortly after announcing C# and the Common Language Infrastructure (CLI), Microsoft, along with Intel and HP, submitted them to ECMA for consideration. ECMA assigned the project to its Technical Committee 39--TC39--for further technical study.
According to Jan van den Beld, secretary general of ECMA, TC39, which includes representatives from companies such as Fujitsu, Eiffel, IBM, and others, "unanimously approved the contents of the document the week of September 24, 2001, at their meeting in Cupertino, CA." The next step toward standardization is ratification by ECMA's General Assembly; once ratified, the standards will be published and submitted to ISO and IEC for "fast-track processing."
For Microsoft, there are several tangible consequences of attaining C# and CLI standardization. While the company retains any patents or copyrights already secured related to these technologies, it does relinquish a degree of control. According to Secretary General van den Beld, if the C# standards are ratified, "Anybody can make proposals for changes, including Microsoft; all changes must be approved by TC39 before they are included in a (new) edition of the standard." Microsoft Spokesman Steven Lees indicated that Microsoft intends to stay involved, saying, "Microsoft is committed to active and ongoing participation in TC39."
But getting the stamp of approval from TC39 and the General Assembly doesn't mean that Microsoft is in any way ceding its ownership of C# and CLI. As part of the ECMA process, Microsoft, like any other company or organization seeking standardization of its technology, must make a declaration related to licensing the technology that complies with ECMA's Code of Conduct in Patent Matters. "The role of a standards body in this context is to warrant that licensing is possible on RAND (reasonable and non-discriminatory) conditions," explained van den Beld. So while Microsoft wouldn't be able to do whatever it wishes to C# itself, apparently the company would have plenty of latitude in terms of licensing.
Ratification has other benefits as well. As Microsoft pushes for broad acceptance of its .NET Web services initiatives, having an industry standard language at .NET's core could help build credibility for Microsoft's development platform by encouraging the legions of Visual Basic and C++ programmers to take up C#. It's likely, too, that Microsoft is hoping that the lure of a standard application development language will encourage companies to opt for the perceived "safety" of "regulated" language.
Skeptics may say that Microsoft's bid for ECMA C# standardization is--at least in part--a public relations ploy to try to get a leg up on Sun. After submitting Java to ECMA for consideration for standardization, in December of 1999, Sun withdrew the submission, deciding to eschew standardization and, ostensibly, choosing not to lose control over Java as a result of the standardization process. As Microsoft marches C# into the marketplace, comparisons to Sun and Java are inescapable, so submitting the language to ECMA makes Microsoft look like a good industry citizen in contrast to Sun's now-you-see-it-now-you-don't Java gambit.
Is C# really the most important thing?
Maybe because of its catchy, musical name, C# is getting most of the attention during the ECMA ruminations. But remember that the common language infrastructure (CLI) is part of this deal--and maybe ultimately the more significant part. The programming language is, of course, the key element for application development, but the CLI holds the key for running those applications on diverse platforms.
As something of a sideshow to its ECMA endeavor, Microsoft also enlisted the aid of Corel to develop a "shared source" implementation of C# and the CLI that will run on FreeBSD. This, Microsoft hopes, will demonstrate that C# and CLI are not only industry standards, but can also deliver on the write once, run many paradigm.
ECMA Secretary General van den Beld described the importance of CLI, saying, "CLI can still be extended considerably. It is a technology that will grow depending on how it is received in the marketplace and how the technical aspects will evolve. Therefore, it is fairly likely that the (near) future activities will focus on CLI."