Microsoft will propose its new language, called C# (pronounced "see sharp") to an industry standards body called ECMA. As first reported by CNET News.com, with C#, Microsoft aims to make it easier and faster for software developers to build Web-based services and is part of the company's new software strategy, announced last week.
Analysts say C# offers features that are similar to Java, a programming language that has long been considered a threat to Microsoft. Java is touted by Sun, IBM, Oracle and dozens of others as the language developers can use to write software that is compatible with all types of computers and operating systems. Microsoft has in the past steered developers to write software that runs only on Windows.
Microsoft is hoping to spread C# usage throughout the industry. "We're working with ECMA, so there will be a wide range of devices and platforms that will have C# available for them," said Tony Goodhew, Microsoft's Visual C++ product manager. "We see this as a great value in language standards, as a standard language for people to actually go and produce the interconnected applications utilizing XML and Web services and so on. There's really no language that provides that ability."
Sun had hoped to turn Java over to the same standards body but withdrew its proposal last year on fears that it would lose control of Java's evolution. Java proponents argued that making Java an industry standard would give other companies a much stronger position in defining Java and determining the direction of the software. But Sun executives implied that standardizing through ECMA could result in a version of Java that worked differently from Sun's.
Sun has long criticized Microsoft for protecting the proprietary interfaces of its technology. Now, Microsoft will attempt to take the high road, analysts said.
"(Submitting C# to ECMA) is not intended to needle Sun, but it does have that side effect," said Darryl Plummer, an analyst at Gartner Group. "It sort of says, 'Unlike Sun, we're going to play fair and send it to a standards community.'"
Goodhew made no secret of Microsoft's intention to upstage Sun and Java. "Unlike some of our competitors who are trying to find an organization that will rubberstamp their proprietary control of the standard, we're aiming to work extensively with a standards body," he said.
Although C# has many Java-like qualities, Microsoft executives say C# is not the company's response to Java. But Plummer said it's impossible not to compare the two languages. "(Microsoft does not) want this to be associated with Java, but that's inevitable," he said.
C# will also include 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, said sources. Microsoft would not comment on Common Language Runtime.
Plummer said C#, which Microsoft will officially announce today, will give programmers using Microsoft's C++ and Visual Basic languages an alternative to Java. "It could slow Microsoft developers from defecting to Java, but the impact to Java will be minimal," he said. "Most Java developers aren't Microsoft developers anyway."
Sun could not be reached for comment.
Complicating the feud between Microsoft and Sun is a longstanding court battle over Microsoft's use of Java. Sun sued Microsoft in 1997, arguing that Microsoft built technology into its Java products, which led developers to build Java software programs that operate only within Windows, hampering Java's goal of "write once, run anywhere." Because of a lawsuit with Sun over Java, Microsoft has not been able to update its Java products, the company says.
Microsoft's new language is a hybrid of C and C++, two of the most popular programming languages used by software developers to write applications for Windows.
C# 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 software development.
C# will be available as part of Microsoft's Visual Studio suite of software development tools later this year.
The new Microsoft initiative is targeted at driving the Windows operating system more fully onto the Net and making the company a major player in providing Web-based software and services.