In Java, you write in the Java language and you deploy into the JVM. Compare this to a traditional Microsoft way of programming.You could program in C or C++, or you could code in VB. Or if you were w
In Java, you write in the Java language and you deploy into the JVM. Compare this to a traditional Microsoft way of programming.You could program in C or C++, or you could code in VB. Or if you were working on a Web site it would
probably be Active Server Pages, with a macro language inside.
Microsoft needed to get closer to something resembling the Java world, but couldn't do it on the Java platform after the court ruling. So it's come up with its own answer to Java - .NET.
There are a lot of similarities between Java and .NET, but also many features that are quite different.
Both have a common run-time engine that can be ported to multiple platforms. Java, of course, has made huge capital out of this, and the JVM is available on a very wide range of platforms. Microsoft says that its common runtime might well be available on a number of platforms, but it's targeting the Windows family first. However, if you carefully read the SEC filing for the investment by Microsoft into Corel last year, you'll find that Corel was contracted to do the Linux port of the common run-time. There's no doubt Microsoft wants CRL to be crossplatform, but it refuses to give exact timescales. My best guess is that it will target three main non-Windows platforms: Macintosh (including OS X), Linux and Solaris on SPARC hardware.The latter would allow it to indulge in the inter-corporate slanging match that characterises Microsoft/Sun exchanges.
It would be wise, though, to temper any thoughts of Microsoft going into a cross-platform world with the reality of what it's delivered in the past. Microsoft sold a Windows cross-compiler for Macintosh, which it claimed it used
internally. However, it was missing lots of capabilities, which were obviously there in the version it used itself. It's not unreasonable for IT management to assume that .NET will be a Windows-centric world.
For language choice, there are major differences between the Java world and the .NET world. In Java, you program in Java - that's it.The reality isn't quite so clear cut. If you want details on a surprisingly long list of such solutions, take a look at http://grunge.cs.tuberlin.de/~tolk/vmlanguages.html. Over on the .NET platform, it's a similar solution, although Microsoft is making big claims for the cross-language support of the run-time. So out of the box, Microsoft will be supporting VB, C++ and a new language called C#. All of this works because the language is compiled down to something called IL (Intermediate Language).This is the byte code that is then run on the target machine within a JIT (just in time) run-time engine.You can run the JIT engine at run-time or you can compile to native byte code as part of the application installation process.
Whether you like the Java world or the .NET approach will depend a lot on where you're coming from. If you're a seasoned VB developer you might well not like the idea of having to learn Java to participate in the Java world.You might think you can take your code over into the .NET world and it will work. It's a big claim, but one I see few VB developers actually believing.
The reasons for this are simple. The VB .NET world is hugely different from the VB 6 world, and it takes a lot of work to move code from one to the other. Microsoft is rumoured to have taken on board a lot of criticism of the Beta 1 release of VB .NET, and it's making changes to the forthcoming Beta 2 release to appease the VB community.How well it works in practice is hard to predict at this stage. Sun has almost a five-year lead on Microsoft, but Microsoft can
afford to buy market share and mindshare.