Microsoft's Latest Language Draws Sharp Responses

Anytime a new computer language is introduced, there is a long, uphill climb to full acceptance from the developer community. Java, which caught fire the day it was announced, broke that mold. Now, Microsoft Corp. ( hopes to emulate that performance with its recently announced Microsoft C# -- pronounced C-sharp -- language, which the software giant is pitching as a Web-friendly development environment.

In some ways the language is a direct competitive response to Java, but analysts see it playing an important role in Microsoft's budding .NET strategy, which also includes a common language runtime for integration of various non-Windows languages. Plus, the new language will help keep current Microsoft platform developers from defecting to Java, rather than attract programmers over from the Java side. "C# is going to attract mainly people already in the Microsoft camp," says Uttam Narsu, vice president at Giga Information Group Inc. ( The most likely group of converts is C++ programmers, he notes. In addition, users of J++ -- which Microsoft is abandoning -- are likely to be early C# adopters, too. But Microsoft's other critical mass of developers -- the Visual Basic community -- probably won't move to C# anytime soon, he notes. "Microsoft has been enhancing Visual Basic for the Web, which will make it much more competitive with C#."

One factor that may boost C#'s chances is the fact that Microsoft submitted the language specifications to ECMA (European Computer Manufacturers Association, for standardization. Jan van den Beld, secretary-general of Geneva-based ECMA, says there is a great deal of synergy between the C# proposal and its existing ECMAScript Standard (ECMA-262), which provides the scripting language for the Web.

"The big question is to what extent will other vendors pick up C# and common language runtime and begin to port it to other platforms," says Mark Driver, research director at GartnerGroup Inc. ( "We believe there will be an initial interest in C#, particularly from vendors that are tightly aligned with Microsoft and look at it as a competitive advantage to Java."

Driver notes that the development market will remain evenly split between Microsoft languages and Java for years to come. "Java is the fastest-growing language and the fastest-growing platform," he says. "[Java] is growing to a minor degree at the expense of Windows, but primarily at the expense of other 4GL languages -- such as PowerBuilder, Delphi, COBOL, and SmallTalk." But Driver believes Microsoft is concerned about the "tremendous amount of energy around Java today." Microsoft "realizes it can only stretch COM and DCOM so far before it has to incorporate a new model. The .NET platform is the first step in doing that."

Interestingly, analysts detect few major differences between C# and Java. "One of my criticisms of C# is that there isn't that much more that it does that Java doesn't do," Narsu says. "Microsoft used almost the same line of reasoning with C# as Sun Microsystems used with Java. Both looked at C++ and removed certain features to make it simpler. If you look at the list of what they removed, it's almost identical."

One change is the elimination of pointers, a feature within C++ that allows developers quick access to computer memory. This feature, however, crashes programs if the wrong block of memory is used. C# still allows developers to directly manipulate memory, but in a safe manner by ensuring they use the appropriate block of memory, says Bill Dunlap, lead product manager for Visual Studio at Microsoft. In addition, with C++, there are numerous ways to write errors into the code that are hard to track down. C# eliminates some of these pitfalls, Dunlap points out. "With C#, there are not numerous ways to do things. There is one way. Anybody can read code written in C# and understand what it means."

C# will be included in the next release of Visual Studio, which will be available as a beta release later this year, according to Microsoft. The language is part of Microsoft's new .NET platform, which is being created to help developers more easily build and maintain Web applications. "This is a language specifically designed for C++ developers who want to be more productive and who need to take advantage of the growing possibilities for the exchange of information and services over the Internet," Microsoft's Dunlap says. C# also makes it easier to work with XML by eliminating much of the computer code developers had to write in other languages, Dunlap says. C# also supports ASP+ technology.

Using C#, developers can build Web applications and services that can be used across the Internet. C# also enables access to the underlying platform, as well as low-level code control. Developers can make programming functions, such as a search mechanism of a system's programs, accessible over the Internet by typing the command "Web Method" into their code. This advance -- which uses Web standards such as XML and SOAP -- eliminates the additional steps and lines of code that other languages require to allow distributed computing, Dunlap explains. This convenience will help developers build on, rather than constantly duplicate, the skills of other programmers and organizations.

C# may help create new e-commerce opportunities by enabling greater access to Internet-based services, relates Mike Amundsen, senior consultant at Vertigo Software Inc. ( "You are going to be able to call my server and maybe pay a small fee to use my services," he explains. "I can build all sorts of little services to solve other people's problems." What's best, Amundsen says, is developers and computer users don't have to understand how C# creates these services to use them. "I don't need to be a rocket scientist. I don't have to know all of the alphabet soup," he said. "I just write my regular function and put this 'Web Method' code in front of it."