To convince potential customers that C# is a sound, independent technology, Microsoft already succeeded in getting it recognised by an international standards group known as ECMA, formerly called the European Computer Manufacturers Association. Microsoft has now used that as a stepping stone to gain the imprimatur of a more widely recognised standards group, the International Organization for Standardization, or ISO, which governs standards for items as diverse as dental equipment, nuclear fuels and shoe sizes.
Last week, an ISO subcommittee cleared the way for final ratification by the full ISO of C# and the required underpinnings called the Common Language Infrastructure (CLI), said John Montgomery, group product manager for the .Net Developer Platform at Microsoft. The move from ECMA to ISO is made possible by a "fast track" agreement between the two groups; Hewlett-Packard and Intel also are supporting the effort, Montgomery said.
"There are government organisations that recognize ISO standards, but not ECMA standards, so having C# and the CLI be ISO standards will help those governments adopt these technologies," Montgomery said.
"The meeting concluded with agreement that the standard is now complete," he said. Final ISO ratification is expected in January.
Standardisation lends some heft, credibility and permanence to a technology that still is very new. It also could allay fears that adopting C# and its related technology might mean becoming beholden to Microsoft. And while standardising C# isn't likely to make or break the software, standardisation is an area Microsoft can influence more easily.
"This is one issue amongst many, but one that Microsoft actually has fairly direct control of," said Illuminata analyst James Governor.
"If Microsoft really wants to successfully drive C#," he added, "the biggest problem may prove to be developer learning curves." Software developers are on the front lines, but C# also needs the confidence of system administrators, chief information officers and the software industry in general.
C#, like Java, is a language that lets a program run on a software foundation that shields it from the particulars of the underlying computer. That makes it easier to write a program that will run on a wide variety of computers. With Java, that insulation comes through software called a virtual machine and through libraries of prewritten software; C# comes with its own libraries and other components that make up the CLI.
In the 1990s, Sun Microsystems launched Java as a way to undermine Microsoft's Windows dominance. Sun hoped, but largely failed, to get programmers to write software that worked on a Java infrastructure rather than on a Windows infrastructure. For example, a Java program could run unchanged on computers that used Windows, Mac or Unix operating systems.
Microsoft is fighting back against Java with C#, itself part of the foundation of its .Net vision to power next-generation Internet services. The .Net plan involves letting PCs, servers and other digital devices find one other on networks and invoke services such as booking reservations or debiting credit cards. C#, like Java, is designed so that a program can call upon other program modules elsewhere on the Internet.




4%
2%






