Microsoft executives said the new language, an easier-to-use version of the popular C++ language, is intended to drastically simplify and speed up software development as well as promote the company's Next Generation Windows Services (NGWS) initiative, to be announced today at the company's Redmond, Wash., headquarters. NGWS is Microsoft's grand scheme for driving Windows more fully onto the Internet and making the company a player in providing Web-based services.
The new language, expected to be called C# and pronounced "C sharp," is a hybrid of C and C++, two of the most popular programming languages used by software developers to write applications for the Windows operating system, said Tony Goodhew, a Microsoft product manager.
While sources say C# will include several features apparently modeled on some of the most popular features of the Java programming language, Microsoft executives say the language is not a Java competitor. "This is not a response to Java," Goodhew said.
But people familiar with the company's plans said that while C# is "not presented (by Microsoft) as a Java competitor, if you look at the pieces (of C#), it kind of mirrors (Java)."
"C# is Java by another name," said Steve Mills, general manager of IBM's software division. "Microsoft has its own unique programming model with Visual Basic. But it's not designed to be a scaleable, multi-user system like Java, and C# is the alternative to Java."
Java, a technology developed by Sun Microsystems, is promoted by Sun, IBM, Oracle and others as the language programmers can use to write software once and have it run across all types of computing systems, regardless of the operating system. Java is considered a threat to Microsoft: While Microsoft has in the past steered developers to write software that runs only on the Windows operating system, Java allows developers to write code that can run on many operating systems and hardware.
One source familiar with Microsoft's plans said C# is "intended as (a way to foster) new styles of development. Combine it with the Web services (Microsoft) is announcing and you get powerful stuff. It also so happens to effectively mirror what Java can provide. It provides operating system independence (which Java provides), but it also provides language independence, which Java can't provide."
The new language will offer features available in Java but not available in C or C++. The features include better security and "garbage collection," which tidies up computer memory used in a software program, Microsoft executives said.
Garbage collection is one of Java's most popular features because it can greatly reduce the complexity of application development.
Sources said Microsoft's initial plans also include offering a technology called Common Language Runtime, a universal engine that will allow software developers to use many types of programming languages to write Windows applications.
"All languages will have equal footing on Windows," one source said. "You can pretty much develop on any type of language on the Windows system." The source summed up: "(Common Language Runtime) increases the openness of Windows...It's a universal engine to run (different) languages."
David Lazar, a Microsoft product
Goodhew added that C# allows "developers (to) access any hardware and software." C# provides "complete access to (the) underlying platform."
Microsoft executives declined to say when C# will be available but said the language will eventually be part of Microsoft's Visual Studio suite of software development tools.
Rumors have circulated for years that Microsoft was developing a "Java killer"--a language that could nullify Java's appeal while preserving Microsoft's Windows franchise. As previously reported by CNET News.com, it is clear in court documents released during the Sun Java trial that Microsoft did at one time consider building new technology that would provide Java's cross-platform capabilities but remain under Microsoft's control.
According to the documents, several years ago an internal debate raged over whether Microsoft could effectively clone Java and offer a Java Virtual Machine-like environment for running applications built with Java, Visual Basic, C++, Cobol and other languages. Such a system could offer developers wider-ranging options than just Java alone.
In court filings disclosed during the Sun trial, a Microsoft executive suggesting building just such a "language-neutral Internet development platform."
Michael Toutonghi, a Microsoft developer, proposed the idea in an April 20, 1997, email message to management. "Maybe in two years' time," Toutonghi wrote, "we could have a functional API set for Internet development that rivals Java. Maybe by that time we will also have the best VM (virtual machine) class libs (libraries) for Java, VB, C++ subset, Cobol and Smalltalk."
Last year, unconfirmed reports circulated that Microsoft was building a new language called "Cool" that would be similar to Java but free of technological or licensing obligations to Sun. Microsoft vehemently denied the rumors. Yesterday, Microsoft executives denied that C# was related to the rumored Cool project.