Will .NET Framework Shatter COM?

When Microsoft Corp.'s .NET platform becomes a reality, developers of every stripe will be able to bring their applications onto the Windows platform. That was the vision unveiled at July's Professional Developers Conference in Orlando, Fla. There, Microsoft (www.microsoft.com) made public the .NET Framework, which will enable developers to build applications and services on its .NET Platform.

The .NET Framework consists of a common language runtime. This enables developers to integrate applications written in COBOL, Fortran, or other languages to run in a Windows environment. Another feature is Active Server Pages+ (ASP+), Microsoft's successor to ASP. ASP+ compiles Web pages, thus opening the door for compiled languages such as COBOL to be used directly in Web pages where only interpreted languages were previously usable.

Analysts agree that the common language runtime is the most significant part of the announcement. The common language runtime lets developers build applications on Windows with a range of languages.

Significantly, the new framework could supplant Microsoft's COM. The .NET Framework does not use the COM classes. "This is the first step in Microsoft retiring COM," says Mark Driver, research director at GartnerGroup Inc. (www.gartner.com). The framework uses a new set of classes that replace the COM classes. "Microsoft has created a whole new component model and platform on top of the operating system, which is completely independent of COM and DCOM," he adds.

Most applications running in Windows are built on COM. "You can imagine the tremendous cultural shock [that replacing COM] is going to have on Microsoft developers. Microsoft is literally changing the entire rulebook now, abandoning a vision that they have introduced and fostered for the past five years or more. They're effectively abandoning COM," he says. Driver and other analysts warn that most current COM applications will have to be changed to become fully compatible with the new architecture. New Windows applications must be developed to a different set of APIs.

"This common language runtime will allow developers to choose the language that's appropriate to solve the business problem," says Uttam Narsu, vice president at Giga Information Group Inc. (www.gigaweb.com). "The application can then be tied with C++ or Visual Basic." Narsu notes that many developers still develop in Fortran because of its higher level of performance with numerical calculations.

This facility helps shatter the illusion that there should be one language for all purposes, Narsu continues. "One language can never solve all problems," he says. "That would be like saying we can have one tool for all jobs at a construction site. A general purpose tool just never does anything particularly well. We will always need special-purpose languages."

Essentially, you can draw a parallel between common language runtime (CLR) and universal platforms such as Java Virtual Machine. "CLR is about halfway between a runtime library and a full-blown virtual machine," Driver says.

One mainframe vendor, Fujitsu Corp. (www.fujitsu.com), announced it is constructing a new COBOL compiler to target the common language runtime so COBOL programmers have access the .NET Framework. "When we set out to build elements of the .NET Framework, we realized that we would need to provide the ability for languages such as COBOL to take full advantage of the framework," says John Montgomery, group product manager for the .NET Framework at Microsoft.

While the .NET Framework and common language runtime won't win any new converts to Microsoft, it will help the company's push into the enterprise space, Driver says. "At very minimum, this makes them a much better neighbor. It makes it much easier to interoperate Windows with CICS [Customer Information Control System] using SOAP and XML. Microsoft has always struggled to push into the enterprise space because its always been a homogenous environment."

Microsoft hopes to open its platform to multiple development environments in the process. This could, for example, encompass Linux using XML and CORBA and Java. "[Microsoft's] hope is that by having the best tools, the best environment, and the best richness, they can attract people purely on the Windows platform," Narsu says. The success of this strategy hinges on whether other large vendors support the initiative. "It's a little bit of a gamble, but not a big one," he says. Microsoft announced that about 100 industry partners are supporting the .NET Framework, including 70 ISVs.

Some development vendors are expressing enthusiasm for the concept. "It has been a headache to take pieces from multiple languages and make them work together," says Bertrand Meyer, president of Interactive Software Engineering Inc. (www.eiffel.com), producer of Eiffel software development tools. "Most developers give up and work in a single-language environment. They either get stuck with decisions they made a decade ago or undergo costly conversion efforts."

In effect, all programming languages, from JScript to C++, become equals in the .NET Framework, Microsoft's Montgomery says. Developers currently have to use different commands, or frameworks, depending on the programming language they choose. This creates a "Tower of Babel effect" when different languages collide. It also means developers face a steep learning curve when encountering a new language, Montgomery continues. With the .NET Framework, developers use a unified set of commands regardless of programming language, he explains.

Language interoperability will let developers build applications from parts written in any programming language. Furthermore, they'll be able to take advantage of the Internet or an intranet, accessing Web services over networks. Montgomery says developers will build and sell these Web services, creating a huge resource for others to draw from. "Developers will be able to create applications using any combination of remote services, local services, and custom code." These services will interact with the developer's application via XML, he adds.

Developers can rely on the .NET Framework to automate many tasks that were previously handled, and sometimes mishandled, manually. The .NET Framework will manage tedious and complex programming details such as managing memory, starting up and killing threads and processes, enforcing security, and satisfying dependencies.

"Years ago, before COM, a developer could write a simple program in C in just five lines of code. That same program using COM takes hundreds of lines of code. COM adds a lot of value, but also adds overhead," says Jon Sanders, director of engineering for the developer tools group at Rational Software Corp. (www.rational.com). "Today, there is a lot of boilerplate code, in multiple places, that must be synchronized together for a program to work," he continues. "But with the .NET Framework, those details are handled by the system -- the boilerplate code goes away. The developer again only needs five lines of code to write that same program."

Microsoft's ASP+ provides an infrastructure for building complex Web applications without requiring developers to know more than HTML coding, Montgomery says. By automating complex application features, such as saving information that will be needed later -- state management -- Montgomery says ASP+ can reduce the number of lines of code a developer must write by a factor of 10. ASP+ also facilitates transparent XML access to ASP+ applications. "We use SOAP to allow communication between applications," Montgomery explains.

All of the programming languages in the Microsoft Visual Studio family -- such as Visual Basic and Visual C++ -- will, of course, be capable of targeting the .NET Framework. "The common language runtime's basic value is multilanguage projects," Gartner's Driver says. "It gives Microsoft a competitive advantage over Java in terms of skills availability. There are 3 million Visual Basic programmers and less than 1 million Java programmers. Which are going to be easiest to find?"