This is an archive of how my opinion has evolved in response to changes in the Software Industry in North America from 1997 to date. The information here is presented (with dates) in the reverse chronological order, i.e., latest opinion first ...
Microsoft's .NET Strategy...
October 13, '00
|It looks like
Microsoft had two streams of framework development in parallel for
the last couple of years. One is the COM+ framework and the
traditional DNA architecture and the second, the new one, the .NET
Platform, which has its roots in Microsoft's Java. At some point of time a
decision was made to go with the new stuff. |
Now Microsoft is trying to do its best to shade this major direction change. The change is presented as an evolutional one although it is actually revolutional. It is very important for Microsoft's customers to feel that the new stuff is based on proven existing technology. This may also be the additional reason for delaying full implementation of the .NET component services in order to have an application server as part of the new platform.
The Microsoft .NET Platform targets a framework called the .NET Base Class Library (BCL). .NET compilers donít produce native machine code; instead, they generate a pseudo-machine code called Intermediate Language (IL) thatís executed by the .NET run-time. This new programming paradigm simplifies the Windows programming model and makes Web applications easier to write. It also claims to enable a new generation of software that runs on every conceivable type of computing device, from the most powerful Web server to the lowliest hand-held PC.
Most people believe that the component services that are now provided by COM+ (MTS) will be rewritten in future versions of the .NET Platform. It seems that it was not fully done yet due to time and resource constraints. According to some, COM+ 2.0 evolved into NGWS (Next Generation Windows Services), which at the last minute (a few or two before PDC) changed to .NET. (http://www.wrox.com/beta/misc/naming.asp) But certainly there are already many things implemented in the .NET Platform replacing the COM+ infrastructure:
Corel porting .NET to Linux ?
According to regulatory documents filed Wednesday, October 11, 2000 with the SEC, Corel has granted Microsoft the option to direct Corel to port part or all of Microsoft's .NET architecture to run on Linux. As you may recall, Microsoft recently invested $135 million in the financially troubled software maker and announced that the two companies would jointly develop products for Microsoft's .Net effort, which lets customers "rent" software over the Internet (the marketing way of saying that .NET facilitates writing web services, which may be charged for). When the investment was announced it was greeted with surprise -- Corel had long been a vocal critic of Redmond and its outstanding legal issues with the software behemoth suggested that a partnership was out of the question. But Corel's financial woes following the collapse of a proposed merger with Inprise were apparently dire enough to merit inking a strategic relationship with Microsoft. Microsoft, of course, has long been struggling to develop a strategy for Linux, which many analysts believe could compete with or supplant Windows in certain areas over the next five to 10 years. It's now apparent that Corel may well be the first phase of that strategy...
Microsoft Proposes a New Language...
June 28, '00
On June 26 '00,
Microsoft announced that it had submitted a new language called
C# (pronounced 'C Sharp') to the Geneva-based standards
committee "ECMA" (http://www.ecma.ch/).
In my opinion, C#
will do extremely well within the Windows camp. Microsoft makes excellent
tools for developers. C# will be integrated into Visual Studio.NET so itís
IDE will be top-notch. However, on other platforms, C# may just be another
programming language. While C# is indeed being handed over for
standardization, what is being standardized is nothing more than the core
programming language. The true meat, the new Visual Studio COM libraries,
are not described in the C# language specification. The COM library that
ships with Visual Studio 7.0 is what is going to have all the punch in it.
With this library you will be able to kick out killer Windows apps in
VC++, C# and VB by using something called the "Common Language Subset"
(CLS) interface. C# is a thin language core that sits somewhere between
Visual C++ and Visual Basic. Visual J++ now has the spot but it is safe to
assume that it is, in Java terms, being deprecated.
The latest SOAP Opera
October 24, '99
Microsoft submitted a new specification to the Internet Engineering Task
Force (IETF). This new XML-based specification for distributed
applications has been christened SOAP. Simple Object Access Protocol
being touted as a way to handle remote procedure calls (RPC) across the
Internet. SOAP is useful for inter-object communication between disparate
components. I would go ahead and argue that this is a master-stroke from
The Battle for the Enterprise (contd...)
Microsoft is promoting its Distributed interNet Applications Architecture (DNA) as a platform for developing fully distributed enterprise applications. There are six core fundamental technologies which are part of Microsoft Component Services without which DNA would not be possible. They are,
While Microsoft today is a one-stop shop for a viable set of distributed object application tools, Sun's JavaSoft has created an environment where an industry of third-party distributed tools-and-platforms have started to flourish.
JavaSoft is promoting its Java Platform for the Enterprise (JPE) as a core technology for developing multi-tier distributed applications. There are six fundamental technologies that are part of this.
Sun vs. Microsoft
On May 12, Sun filed a new legal motion asking the U.S. District Court to require Microsoft to include a Sun compliant Java implementation in both Windows 98 and its MS software tools for the Java programming environment.
Sun asked that the court require Microsoft to either:
Microsoft dismissed all the options, calling the entire action a publicity stunt, and saying that its Java customers/developers would be hardest hit if the court granted the requested injunction.
While Sun talks of purity of Java implementations, there are people who argue that Sun should put the legal issues with Microsoft on the back burner and instead concentrate its resources on enhancing its own JVM to better compete in the marketplace (instead of the courtroom).
As of today, Microsoft is the only company with a browser software implementation that is capable of running Java 1.1 applets. So I see no reason why Sun is so upset with Microsoft. If I need to run any RMI or JNI stuff, I always have the option of downloading it as a plug-in from the Microsoft site.
If you are not aware of this yet, I am sorry to inform you that even the latest version of Netscape Navigator 4.05 does not run Java 1.1 applets. To my utter disbelief, I found out that Netscape does not support the Java 1.1 Delegation Event Model yet. SO IF YOU ARE RUNNING NETSCAPE, YOU WILL NOT BE ABLE TO VIEW JAVA 1.1 APPLETS. THIS IS A FACT. Even Sun's Java 1.1 Plug-in has problems with Netscape. This came as a rude shock to me and I am sure it is the same case with most of you. I sincerely wish Netscape solves this problem at least in their next release. So if you use Netscape and want to view Java 1.1 applets, you will have to move over to Internet Explorer 4.0 !
If you want to see for yourself, go to your Netscape/Program/Java directory. You will find a single file called java_301. Give it a .zip extension, unzip it and try to use the javap.exe utility program that comes with your Sun 1.1.x JDK compiler on any of the awt component classes. You will not be able to find any of the Java 1.1 methods like add...Listener() etc. For your information, I compile all my programs using Sun's JDK 1.1.5 compiler.
By the way, Symantec's JIT which comes with Sun's JDK 1.1.6 has some serious problems. Every time I have to disable it to make my JDK 1.1.6 work fine. So I have removed it from my machine. Coming to think of it, as time goes on, I feel all these actions by Sun are helping segregate the market even further.
Think about it. If my Sun Java 1.1 compliant applets can only run on MS Internet Explorer 4.0x, why do I want to remove IE from my machine? To run Sun's plug-in on IE or Netscape, I have to first force the user's of my web page to install this ActiveX control (ironically, Sun's plug-in is an ActiveX control which has to be installed for running on IE). I don't need it for IE since IE runs my Java 1.1 code really well. I only need it for Netscape since Netscape does not run Java 1.1 code. However, the Sun plug-in has serious stability problems with Netscape. If you want to see for yourself, take look at http://java.sun.com Sun plug-in's download site. They say it right there just before you can download it.
And do you know what the Sun's plug-in has come down to? - ALL OR NOTHING - The same slogan which Sun used to beat MS ActiveX has now come to haunt them. I can write Java 1.1 applets which can read and write files to my hard-disk with Sun's plug-in. I am not trying to create a controversy here. I am just stating facts.
Let us not fight among ourselves trying to do a one-up on each other. While Sun, Netscape, Microsoft and all the "Biggies" have reason to protect their intellectual property, we the users of this technology should not be affected by all this. I have a lot more to say but I do not want to say it here. I am sure that people who really write Java code would have already found out the Caveats by now and those who haven't found 'em yet will get to very soon.
The implementers whether they be Sun or Netscape or Microsoft know the gotchas in their implementations and I am sure they are making all out efforts to rectify them. I do not want to rake up any more issues. I leave the conclusions to you.
Update: Netscape has since come out with newer versions of their browser and have been supporting JDK 1.1 fairly well since their 4.06 release. However, IMHO, Microsoft Internet Explorer 4.x and more recently IE 5.0 run JDK 1.1 code far better then Netscape. Unfortunately, at this time, neither browser supports JDK 1.2.
The Battle for the Enterprise
Ever since Java came out, there has been a lot of talk that it will some day become a potential threat to the Windows Operating System. There has always been a long standing debate going on, with the Sun loyalists on one side and the Microsoft loyalists on the other, each camp trying to outdo each other and literally slugging it out.
Over the past couple of years, there has been a lot of applications that have been developed using Java. Each of these have tried their best at emulating the familiar look and feel of the Windows environment.
Java is an excellent and an extremely powerful language. Java enables developers to write secure applications faster. Cross-platform compatibility and Security have been the two most highly touted aspects of The Java programming language. The language as a whole is still evolving into maturity and there has been a lot of major revisions to the language as a whole.
However, we are yet to see really large and powerful applications entirely developed using Java. If one were to live by the 100% Java slogan, applications have to be cross-platform compatible. This will also mean that these applications may execute slower than code which uses native binary code. One of the first companies that caught on to the Java bandwagon was Corel. It's Java Office Suite package somehow never saw the light of day. Lotus' E-Suite sounds promising but no one knows how it will look like when it finally ships.
Windows and Microsoft are very strong on the desktop market. Instead of wasting their resources on trying to emulate Windows or killing it, wouldn't it be a better corporate strategy for the creators of Java to concentrate on the server side? If they are trying to make significant inroads, they may have to fight it from the server side where incompatibility rules. This is Java's home-turf! If we need compatibility, this is the place where more than anything else we need it most. Microsoft is not as strong on the server side as it is on the desktop.
Java is an excellent distributed programming language and a runtime environment. The server is one place where Enterprise JavaBeans will play a major role. ( For those who do not know, Enterprise JavaBeans is a set of specifications for developing distributed Java components). This will probably allow developers to create highly secure, imaginative server-side software that addresses and resolves complex incompatibility issues. Tools and Servers written to this spec should help developers build stateless server-side components, as well as persistent business logic and data objects that are portable across platforms. It will probably help standardize Java as a corporate server platform standard.
So, what has Microsoft been up to these days? Why hasn't Microsoft done anything on the server side? Well, you might be in for a surprise here. Microsoft's Transaction Server is the equivalent of Sun's Enterprise JavaBeans. MTS has been released for some time now and is now in version 2 while Enterprise JavaBeans is still a spec, yet to be released. So, am I saying that MS has a fully working implementation even before Sun has even released it's specs for server side development? I'm afraid that I am saying exactly that.
However, we do have an excellent battle on our hands here. Whoever prevails, the end-users are the real winners. Let us hope that we as developers bet on the right horse and see our fortunes grow.
The slogan should always be "Don't expend energy trying to kill it. Overcome it..."
This site was developed and is maintained by Gopalan Suresh Raj
This page has been visited times since March 13,1998.
Last Updated : June 28,00
All products and companies mentioned at this site are trademarks of their respective owners.