HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Microsoft has been making major plays in the industry regarding Java with their .NET strategies, and a lot of disinformation has been floating around. Microsoft granted JDJ access to ask questions, offering you, the reader, the opportunity to find out, straight from the horse's mouth, what's going on in Redmond.

Concerned readers of JDJ posed the following questions.

<rob diana>:What are the core differences in the .NET J# implementation and normal Java implementations?
<microsoft>: Visual J# .NET is a tool for Java developers to use in building applications and services on the .NET Framework. It integrates the Java-language syntax into the Visual Studio .NET shell, and enables it to integrate with the 20-plus programming languages supported by the .NET Framework. It's for Java developers who want to build XML Web services or have an investment in Visual J++. First, we are implementing sufficient functionality to ensure that our existing Visual J++ customers will be able to take advantage of the .NET Framework with the smallest possible disruption. In future releases, we'll be examining development and usage patterns among our developers and offer additional support as appropriate.

<mica cooper>: I use Java almost exclusively. Quite often the best solution for a Windows customer is to use Microsoft tools such as the one that makes a Java class an NT service. Are there any plans to update these tools? Are they in .NET or not? If they are there, do I have to use .NET Java or can I use standard Java?
<microsoft>: The Microsoft SDK for Java provides the com.ms.service namespace, the Service base class, and the Jntsvc command-line tool. Developers can author Windows Services by extending the Service base class and using the jntsync tool to install the Service. The .NET Framework provides equivalent functionality via the System.ServiceProcess.Service class and InstallUtil command-line tool. As with any other language that supports the CLR, Visual J# .NET can be used to build a Windows Service that extends this new base class.

<richard hart>: What is your respect/intentions for the Java language? You don't seem to view it as a standard, otherwise we wouldn't have the IE/Netscape issue with running applets. Are you looking to support Java 1.4 ever? Or will you be taking Java off into a different direction completely?
<microsoft>: Our intention is to enable Java-language developers to take advantage of the Microsoft .NET Framework. If you're a developer who is comfortable using the Java-language syntax and wish to start building third-generation applications on a true XML Web services platform, then Visual J# .NET will appeal to you.

<concerned java developer>: Can you tell us the main factor that prevented you from working with Sun all those years ago? Why are you stuck with 1.1.3 of the specification?
<microsoft>: At its core, our primary issue with Sun was whether Microsoft could innovate in Java. We wanted to make it possible for developers to build great Windows applications using the Java language and to leverage the full power, functionality, and integration of the Windows platform while also providing support for developers who chose to write cross-platform Java applications. Sun sued us to prevent that innovation. The settlement we reached with Sun only allows us to provide a JDK 1.1.4-era virtual machine, and our right to do that effectively expires in January 2004 when our ability to repair security vulnerabilities ends.

<jay miller>: What has happened to J#? It was slated for Q2 release, and then Microsoft got real quiet about it.
<microsoft>: Visual J# .NET was announced for public availability on July 1, 2002, at Tech-Ed Barcelona. You can download the released product from http://msdn.microsoft.com/vjsharp. We're very happy with the level of interest in Visual J# .NET and are already planning for future releases.

<rupal majmudar>: Microsoft supports J# on the desktop with the VJ++ add-on to Visual Studio. Do they plan to support J# on Compact.NET/WinCE .NET platforms as well? If yes, when? If not, will they be saying so officially, or will they leave us guessing?
<microsoft>: Currently the .NET Compact Framework doesn't have IDE/compiler support for J#. We are working closely with our customers and partners to determine the correct offering for Visual J# .NET in this space. We'll keep you informed.

<james ashton>: Does Microsoft have any plans to upgrade the Java support in J# to anything approaching what we're all actually using (1.3.x/1.4.x)? If not, would there ever be a mechanism to allow a developer to specify a JDK to use as a base?
<microsoft>: We're not building an implementation of Sun's proprietary Java platform. Our goal is to provide a development tool for building applications and services on the .NET Framework using the Java-language syntax. So developers who are interested in writing applications in Java for the .NET Framework will find a familiar syntax structure and core set of runtime libraries.

<franklin nwankwo>: Why is Microsoft hesitant to incorporate adequate support for Java in the .NET Framework? Do they realize that Java developers will not JUMP that easily? What is needed is support for pure unadulterated Java in .NET as all other attempts at J# JUMP, et al, are doomed to spectacular failure.
<microsoft>: We feel we have implemented a better platform for creating XML Web services ­ the .NET Framework. Once developers realize there's something out there superior to Sun's proprietary Java platform, as many have already, we feel that they will want to begin development on the .NET Framework. The JUMP strategy is designed to help move developer skills and existing applications to the .NET Framework.

<ken barber>: Would it be fair or unfair to say that due to choices made by MS when designing the Win32 architecture long ago, Windows is built on a very dangerous foundation (ActiveX, for example) that can't be made secure, and which is likely to render .NET equally insecure?
<microsoft>: No, it would not be fair to say that because it is fundamentally incorrect. We would recommend that you look at the many articles on the robust security features of the .NET Framework at http://msdn.microsoft.com/library/ default.asp?url=/nhp/Default.asp?contentid=2800136910.

<ramakrishna kuppa>: What's Microsoft's take on the observation and comments made by Java evangelist Rima Patel at http://java.sun.com/features/2002/07/rimapatel.html, related to adopting the MS .NET Framework. Through Rima, I heard the Sun story, and through MS, I'd like to hear a detailed reply to the same.
<microsoft>: While the most charitable thing we can say about Ms. Patel is that she is woefully uninformed, we think it's better to provide customers with the information to make their own decisions rather than engaging in name calling. The best source for information about how the .NET Framework compares is www.gotdotnet.com/compare. There customers will be able to find independent analysis of benchmarking claims as well as the code to actually replicate the systems used in testing (which we recommend) and articles on comparisons. In addition, at sites like www.gotdotnet.com, www.asp.net, and http://msdn.microsoft.com, you'll get a sense of the size of the .NET Framework developer community and how those developers are taking advantage of the new features and functionality of Microsoft's new platform for XML Web services.

<anonymous>: Given that MS has the industry really excited about .NET in general, why do you think .NET has had so few results so far in terms of creating practical Web services?
<microsoft>: Customers have been very successful with creating practical XML Web services. You can see lots of information about how customers are using the new platform at http://msdn.microsoft.com/vstudio/productinfo/ casestudies/default.asp. Microsoft believes the adoption of XML Web services will come in waves. This first wave is about early adopters and pilot projects within the firewall. Customers will see how others are succeeding with such projects and will recognize similarities within their organizations where similar XML Web services will benefit them. As issues around security and reliability are further addressed by working with the industry on standards, such as WS Security, Microsoft believes that XML Web services will take off further.

<jon strayer>: What are your plans for porting .NET to other operating systems (HP-UX, Solaris, AIX, Zos)?
<microsoft>: We do have a noncommercial implementation of the C# and Common Language Infrastructure ECMA standards running on FreeBSD and on Windows XP, but customers shouldn't read anything into that except that those standards are true, open, platform-neutral standards from a recognized standards body. That said, we haven't announced any plans to implement the .NET Framework on other operating systems.

<anonymous>: When will .NET support XUL (XML User Interface Language)?
<microsoft>: We currently don't have any plans to support it.

<tom watts>: I do a lot of work with servlets, and I believe the direct comparative component within the .NET Framework for this is ASP.NET. What are the major differences between ASP.NET and servlets?
<microsoft>: ASP.NET provides two separate levels of infrastructure for supporting Web applications: the HttpRuntime and Page Framework. These are roughly analogous to servlets and JSP in J2EE. The HttpRuntime is a highly extensible framework to enable basic processing of Web requests. Developers taking advantage of the HttpRuntime develop classes that implement the IHttpHandler interface. This handler implementation is then registered to process a given request type (based on URI or extension). When a request matching the handler is received, the HttpRuntime will create an instance of the handler and call its IHttpHandler::ProcessRequest method. The Page Framework rests upon the HttpRuntime (in fact, the base class of all ASP.Net Web Forms implements IHttpHandler). This framework provides a RAD infrastructure for developing a Web application. In short, the Page Framework provides "VB for the Web" functionality, hiding the details of the HttpRuntime, making it faster and easier to develop Web applications.

<lee graba>: Can the entire .NET Framework (or at least C#, the CLR, and the .NET libraries) be clean-room duplicated by any third party without any IP restrictions imposed by MS? Do you have patents on technologies within .NET, and, if so, will you renounce any intention to limit the work of the Mono project and .NET clones through patent enforcement?
<microsoft>: The .NET Framework includes valuable intellectual property belonging to Microsoft. Just like any other company, we will review any action that may affect our intellectual property rights before making a decision about how to proceed. Any other speculation is just that, speculation.

<fred grott>: Given MS's seven-year history of claiming that Java is a virus, I can see where the misinformation may be coming from. Is MS going to change this policy of FUD so that we may get open disclosure of the benefits of .NET and Java?
<microsoft>: Microsoft has never claimed Java is a virus, but we're more than happy to have a discussion about the relative merits of competing technologies. It's very clear that once developers use Visual Studio .NET and the .NET Framework, they agree with us and the analysts that the .NET Framework is the leading platform for XML Web services.

<jeff duska>: Why didn't Microsoft base .NET around Visual Basic instead of C#? Visual Basic already was using a P-Code VM. It just seems as if you like Java, but since you could/would not do Java you created C#. As a VB developer, I know this was my main reason for leaving the fold for Java development. When Microsoft says it's more important to clone Java than to support VB developers, I felt it was time for a change.
<microsoft>: Actually, we based Microsoft .NET around the best of Visual Basic, ASP, and MFC/ATL . The existing Visual Basic runtime and p-code engine did not allow us to do things like inheritance and threading, which we felt were absolute requirements of a modern programming environment. Obviously, we're deeply committed to Visual Basic; it's the most widely used programming language. We modernized it; we removed the "glass ceiling" by providing full access to the platform; and we are ensuring that VB will continue to be the most productive programming environment and language moving forward.

<tom jordan>: Platform independence is a Java feature taken for granted by Java programmers. On what platforms is the CLR currently ported?
<microsoft>: Please see our answer to Jon Strayer.

<kunal>: In the wireless space, how does Microsoft plan to address the features and popularity of Sun's J2ME that are missing in .NET? Are there plans to make .NET's Compact Framework more carrier-centric (like Brew, for example) or more application-centric, like J2ME?
<microsoft>: Carriers and applications are not opposing goals. A strong link between the two is essential if the industry is to be successful in delivering innovative scenarios for users. We have a very attractive offering that enables the full wireless ecosystem. We enable the broadest number of developers to build compelling applications for mobile devices using their existing skills and knowledge. We enable devices to participate in the Web services ecosystem with technologies like .NET Compact Framework for smart client applications, and ASP.NET Mobile controls for Web applications reaching over 140 different cell phones and other mobile devices. We work with carriers to enable them to deliver value-added services that developers can leverage, such as location services with technologies like MapPoint .NET. We don't believe there are features in J2ME that are missing in .NET Compact Framework. Quite the opposite, we have a very long list of features in .NET Compact Framework, such as XML Web services support, XML data support, and relational data support, and window UI support that are not supported in J2ME CLDC+MIDP (what people commonly refer to as J2ME), and many of these are not even supported in the J2ME CDC spec (the rarer but larger 2­3MB profile).

<dennis marcum>: Why can't you just be honest, cut out the marketing nonsense, and let the technologies speak for themselves?
<microsoft>: As we said earlier, we are happy to talk about the technology. We believe our technology offerings are superior to those of our competitors, and developers who have tried Visual Studio .NET and the .NET Framework seem to agree.

<robert chartier>: How does Microsoft feel about the U.S. government forcing them to push a competitor's product into the market using their own distribution avenue just because that competitor has chosen to hide behind the law instead of doing something more productive?
<microsoft>: We believe that once the court has reviewed Sun's extraordinary request for a "must carry" injunction that would force Microsoft to distribute Sun's Java Virtual Machine with Windows, the court will make the correct decision.

<hubert chan>: I noticed that the new MCSD exams don't include Visual C++ as part of the qualifications. Does this mean that Microsoft is shifting its main development languages focus to C# and VB.NET only? How about the native C++ compiler development?
<microsoft>: We are committed to the C++ language and are making numerous enhancements to our Visual C++ product. We believe this is an oversight and are moving to correct it.

<malcolm davis>: Is Microsoft's base strategy of "embrace, extend, and extinguish" still alive or will they follow W3C standards in regards to Web services­based technology such as SOAP? In the past, Microsoft starts off heavily involved and accepting of standards, then works the standards to their own ends.
<microsoft>: Microsoft has been at the forefront of developing technologies, such as SOAP and WSDL, and then makes them available to the entire developer community. We're committed to supporting the standards for XML Web services and working with the community to develop new ones. That process of extending standards to add new and improved functionality is common in the software industry and a good thing for both developers and consumers. It's fundamental to the design goals of the .NET Framework that interoperability in a platform- and vendor-neutral way is seamlessly possible and we intend to continue to deliver on that.

.  .  .

For future Ask JDJ sessions and to have your questions answered please check www.n-ary.com/java/jdj/askjdj.cfm.

All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.