.NET - THE MICROSOFT DEVELOPMENT WORLD
What distinguishes the Java way from the new Microsoft way? In the second of three parts, Jon Honeyball introduces the HailStorm services.
There's a saying:'When God made time, he made a
What distinguishes the Java way from the new Microsoft way? In the second of three parts, Jon Honeyball introduces the HailStorm services.
There's a saying:'When God made time, he made a lot of it.' This is especially useful to remember when waiting for Microsoft to deliver code to a claimed timescale. Only 12 months after the initial announcements were made, Microsoft had slipped some six months on its delivery schedule for the .NET
development platform.
Last month, I looked at the historical perspective of how Microsoft had got to the current situation.We covered the huge impact that Visual Basic (VB) had, and still has, in the development marketplace.This is especially the case in the corporate RAD (Rapid Application Development) world, where quick and dirty solutions are needed on projects with timescales measured in a few weeks.Then along came Java from Sun to rewrite the rulebook. Suddenly, you could write code that ran anywhere, on any machine that had a compliant JVM (Java Virtual Machine).
As covered last month, Microsoft poured a lot of time and effort into Java. Owing to various legal battles over extensions made by Microsoft to Java for the Windows platform, Microsoft has basically walked away from Java as a platform.
In doing so, it made sure it had an escape plan. In working on a parallel stream of development to Java, Microsoft had a very big vision. It wanted to come up with a development and delivery platform that had, in its eyes, all of the strengths of Java and yet targeted the Windows platform very well. In its usual way, Microsoft indulged itself in a round of people acquisitions.
One of the more publicly visible was Anders Hejlsberg's move from Borland to Microsoft. He was the chief architect of its Pascal platform and is a renowned expert. At the time, in the mid- to late 1980s, the Java world was still very much alive inside Microsoft, and people like Hejlsberg worked on the WFC (Windows Foundation Classes), which were to provoke the lawsuit from Sun.
His comments of early 1998 are interesting and can be found at http://msdn.microsoft.com/library/Welcome/dsmsdn/msdn_andersh.htm 'MSDN:Why was it necessary to build the new WFC? Hejlsberg:There are many reasons. If you look at it from a Java perspective, Java class libraries suffer from what I call the leastcommon- denominator effect.They really basically only support UI metaphors that they can guarantee an implementation of across different platforms.This means no keyboard accelerators, no right menu clicks, different threading semantics and a bunch of other performance problems, because you're trying to present the world in a different model than what it really is.
It's very hard in Windows to change the Windows threading model, which is apartment-threaded, to a free-threaded world that characterises Java's Abstract Windows Toolkit (AWT).The net result is that you end up with a sort of a disconnected feeling that your UI has a lot of flicker and bizarre repainting.
So that's one reason. Another is functionality.AWT is a very crude and very sparse UI library. All of the things we've become accustomed to in Windows - like list views, tab controls and context menus and such - are just plain missing in AWT, and we feel there's a need for those.
Performance was a big reason too.AWT is immediately distinguishable as being sluggish, whereas a WFC application is literally indistinguishable from any other Windows application.
There's no way you can tell that a WFC application is written in Java.WFC apps also run at the same speed and perform the same as an MFC (Microsoft Foundation Classes) or Visual Basic app.
Finally, there's interoperability. AWT sees things in a particular way. For example,AWT has no data-binding model.WFC supports ActiveX Data Objects (ADO) as a data-binding model.
This allows you to mix data-bound components with ActiveX controls, mix them on Web pages, mix them with Visual Basic applications, and more.'
The vision was very clear: extend Java to make better Windows applications, because that's what the Windows community wanted. Or that's what Microsoft thought the development community wanted. Cross-platform run-time of Java was, is and continues to be an extremely attractive item, and for many developers it's truly the Holy Grail of the development and deployment process.
With the Java lawsuit brought by Sun, Microsoft has had to go elsewhere. Not surprisingly, it's taken the WFC concepts and moved them forward onto a new run-time engine. At this point, we have to clearly distinguish between the Java way of doing things and the new Microsoft way.
This article appeared in the April, 2002 issue of PC Authority.
Thoughts on this article? Add a comment below.
Be the first to comment on this article.