Microsoft, ECMA Seek C++ and CLI Binding
The Redmond, Wash.-based software giant said it is working through ECMA International, the Geneva-based standards organization, to push the development of a standard set of language extensions that will create a binding between the International Standards Organization (ISO) standard C++ programming language and Microsofts Common Language Infrastructure (CLI).
Microsoft and ECMA officials said with a standard binding for C++ and the CLI developers will be better able to take advantage of the .Net platform and key features of the CLI. The binding will open developers up to more modern features, such as garbage collection and security.
Herb Sutter, Microsoft program manager and convener of the ISO C++ standards committee, said C++ is the most widely used cross-platform, vendor-neutral programming language, based on studies and job listings.
The CLI is a runtime environment that supports multiple languages and provides support for many of the modern features Microsoft wants to extend to C++ developers, including garbage collection, generics and others. ECMA already has standardized the CLI as well as Microsofts C# language.
Sutter said Microsoft ships a set of extensions to C++ that enable .Net development for programmers, but there is a need for more support and a need for a standard.
"Im an architect responsible for leading the team to make C++ work better with .Net," Sutter said. "To us, C++ is a very important language and we want it to be complete."
"C++ is the language most of our customers are using to write code today for Windows," Sutter added. "Its a very strong and mature language and its widely used internally, inside Microsoft. And because C++ is so strategic we need to make sure we deliver on the promises [of .Net] so that you can write well for the platform with all the languages [supported by the Common Language Runtime]."
Sutter added that Microsoft has not done as good a job on managed C++ "as we felt we ought to."
Meanwhile, ECMA last week launched a new task group, known as TG5, in its programming language technical committee to oversee the development of the C++ binding. Sutter said the group will have its first meeting at the beginning of December, and he expects to have all the technical work for the standard completed by next September and a standard by the end of 2004. Microsoft, along with Dinkumware Ltd. and Edison Design Group Inc. developed a draft of the standard.
JP LeBlanc, vice president and general manager of the mobile and C++ solutions group at Borland Software Corp., Scotts Valley, Calif., said, Borland is very supportive of Microsofts effort to push a C++ CLI binding standard through ECMA.
"We are a big believer in standards and by Microsoft taking this step it will help us better support their platform for C++ developers," LeBlanc said. "The significance for C++ developers is big. A huge problem of C++ on Windows in the past has not only been conformance to the C++ language specification but also binary compatibility and interoperability between the compilers and their associated C++ runtime environments."
However, LeBlanc said: "This standard needs to be explicit and complete so that Borland, a leading C++ solutions company, and other C++ technology vendors, can deliver a fully compatible and interoperable development environment to Microsofts offering to developers. In addition, the specification must continue to support source code portability of C++ applications to platforms other than Microsofts Windows [.NET platform]."
"CLI was designed to be a platform to support many different programming languages. But sometimes people have the impression that C# is the preferred or best language for programming on a CLI platform," said Thomas Plum, a C++ developer and vice president of technology and engineering at Plum Hall Inc. of Kamuela, Hawaii. The significance of [the ECMA standard] to C++ programmers is that it shows a commitment by Microsoft, and serious interest by other companies, in making C++ a first-class language for building applications on the CLI C++ platform."
Discuss this in the eWEEK forum.