As reported earlier, Microsoft has proposed 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 by enticing other technology vendors to create versions of C# that will run on multiple operating systems and hardware. "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# 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."
Though Microsoft has yet to disclose all of C#'s features, the company says the language offers the development power of C++ but is easier to use. C# works cross-platform, as does Java, but it takes a much different approach, according to Microsoft.
Sun has positioned Java as a "write once, run anywhere" language that is portable to different hardware and operating systems. C# programs will run on Microsoft's Windows operating system but will link to programs running on any hardware by using Extensible Markup Language (XML) and a budding standard called the Simple Object Access Protocol (SOAP).
"The languages are trying to solve different problems," said Bill Dunlap, a Microsoft product manager. "Java was about taking the same piece of code and running it on different systems. We're not about that. We're about integrating with existing systems, utilizing the code that is already working for you. You can integrate that code into new systems using C#."
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 announcement of C# raises another issue: Whether Microsoft will continue to market Visual J++, its own Java development tool. Microsoft has not updated the tool in many months due to the ongoing legal battle with Sun. C# technical documents posted to Microsoft's Web site today do not list Visual J++ as part of its Visual Studio development tool package.