October, 2001 marked the beginning of a new era for Java developers. In its efforts to bring Java developers into the fold of the .NET framework, Microsoft released a new tool named J#.NET (pronounced "J sharp dot net"). The tool compiles Java-like code into Intermediate Language, which targets the CLR (Common Language Runtime Environment) of the Microsoft .NET platform. The .NET Technology Group of Patni Computer Systems has evaluated this tool from many perspectives and feels that this tool places Java developers in a very comfortable position, irrespective of the outcome of the technology feud between two software giants.
The Java language has revolutionized the way we program applications for the Internet. Two great ideas make this language so promising:
Applications written using Java run on multiple different platforms.
Automatic memory management or garbage collection (GC) comes as a great relief for developers.
Other than these two issues, most of the remaining Java features can be implemented using the majority of other languages. Since its first public release in 1995, the Java language has been maturing and consolidating its position in the market as an increasing number of organizations realize its built-in strengths.
In the beginning, there were efforts to dilute Java's increasing popularity and to prove it to be just like any other language. Various sources attempted to prove that Java applications don't perform alike on all platforms, especially with respect to speed. But Java stood the test of time and emerged even stronger. Ironically, Microsoft stood isolated, even after having produced the world's fastest and best Java compiler and JVM implementation. (Microsoft's Java compiler can compile 10,000 lines of code per second.) Much of the Java API competes directly with Microsoft's API: JDBC with ODBC, JTAPI with TAPI, JDO with ADO, JSP with ASP, Bean with COM, and so on.
Though Java has had huge success, it has also left some problems unattended. Sun initially stated that with Java, "write once run anywhere" is possible; after introducing J2EE, however, Sun admitted that the "one size fits all" plan doesn't work. Java also failed to capture the desktop application market. When developing OS-specific applications, Java was not chosen over other languages (on Windows, VB and VC++; on UNIX, C, C++, and so on) because many developers consider performance to be a key issue; compilers specific to an operating system would run much faster than the Java compiler. Further, the way in which Java is implemented by different vendors is not uniform across the industry.
Many companies have joined hands in strengthening Java by bringing out various application servers, despite Microsoft producing their first application server back in 1996 (Microsoft Transaction Server, abbreviated MTS). All of these events may have contributed to a rethinking at Microsoft, to deliver a much better technology based on open standards. (Despite Java's open-mindedness toward the Open Source community, the Java owners never seemed to give serious thought to getting Java standardized by the prevalent standardizing committees. Of course, presently there are efforts to get it standardized by ISO and other standardizing committees. Only Java's original implementers might know the reasons.)
To combat emerging technologies by other organizations, retain its leadership in desktop computing, and consolidate the server market, Microsoft unveiled its vision a year ago: the .NET initiative. The .NET platform comprises the tools you need to create and run XML web services. It has three main components:
The .NET Framework and Visual Studio.NET
These are the developer tools to build XML web services. The .NET Framework is the set of programming interfaces at the heart of the Microsoft .NET platform; Visual Studio .NET is a multi-language suite of programming tools.
The server infrastructure for .NET, including Windows and the .NET Enterprise Servers, is a suite of infrastructure applications for building, deploying, and operating XML web services. Key technologies include support for XML, scale-out, and business process orchestration across applications and services.
.NET My Services
Until very recently called Hailstorm, this is a set of out-of-the box web services that Microsoft has in mind to ship with the final release of .NET. Among the more popular services, Microsoft Passport is currently being used by hundreds of web sites for uniform, single-sign-on secure authentication.
These are some of the languages supported by .NET:
Before we explore J#, let's look briefly at the architectures of .NET (CLR) and Java (JVM).
The following section introduces the .NET Framework architecture in brief and then moves to different cross-language implementations using various .NET-compliant languages.