Microsoft last week announced a new object-oriented programming language dubbed C#, pronounced C sharp.
"C# is a language derived from C and C++ that provides a way for developers to build applications and components for the .NET platform," says Tony Goodhew, Visual C++ product manager at Microsoft.
Microsoft announced the .NET platform, previously known as Next Generation Windows Services, last week at Forum 2000 on the company's Washington campus.
Bill Dunlap, the lead product manager for Visual Studio, says that developers can use C# to leverage the underlying operating system for business-to-business and business-to-consumer communications and to embrace Web services within .NET.
Microsoft has three goals in mind for the new language. The first is to allow it to solve today's business problems, which requires the language to be aware of XML. The second objective is to make it extensible and modern, so it can be updated and enhanced to solve future business problems as they arise. The third goal is to make it more productive than its predecessors.
"No one ever accused C++ of being a highly productive language," Dunlap says. To increase productivity, Microsoft built C# for C++ developers so they do not have to learn a new syntax. Further, the syntax has been simplified to prevent developers from making common errors. For instance, the garbage collection feature automates memory management, and variables in C# are initialised by the environment automatically and are type-safe.
Based partially on the inclusion of features such as garbage collection, C# has drawn comparisons to Java.
"C# bears the hallmarks of a Microsoft twist on the Java goal of write-once, run-anywhere convenience, in addition to offering easier access to some of the distributed, object-oriented programming attributes of Java and other languages," according to Dana Gardner, an analyst at Aberdeen Group.
But Microsoft's Goodhew stresses that this in not a reaction to Java. "The problem that Java solved is that you can write the code once and run it anywhere," Goodhew says. "The problem customers wanted solved is how to get all their different applications to work together."
Regardless of whether C# is a reaction to Java or not, developers likely will be faced with a choice between the two. "[Microsoft] seems to be saying you can use whatever tools and languages you want to craft code and design applications, and shine your code through their lens and run it on Windows. But Microsoft might face an uphill battle. They continue to be a little bit behind the momentum and cohesion to Java in the marketplace," Gardner says.
In an effort to make C# an open standard, Microsoft also announced the submission of C#'s specifications to the European Computer Manufacturer's Association (ECMA) for review. Dunlap hopes ECMA acceptance to lead to International Standards Organization as well.
"Because this will be an open standard, we fully expect that companies will implement C# on other platforms," Goodhew says.
Even though Microsoft is still some time from releasing C# to manufacturing, Dunlap says there are currently about 30 partners developing objects, tools, and components for it.