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
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
<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
<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
<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
<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
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
<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,
<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
<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 23MB 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
<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
servicesbased 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