1. Run on Multiple Platforms from the Smallest Devices to the Largest Mainframes. Run on multiple platforms, from smart cards, embedded devices(JStamp), cell phones(Nokia, Motorola, Ericsson etc), pdas (Palm, Symbian, Sharp),laptops and desktops (MacOS, Linux), servers (Unix based), Non Stop Servers (Tandem) to Mainframes ( IBM ).
.NET is a cross platform and cross language system. It is available for Linux as MONO (Which means should be compatible with all other penguins), Free BSD(Rotor) and also for Mac(Rotor). .NET is available for almost all mobile platforms as Mobile.NET SDK and .NET Compact framework.
2. Run Dynamic Languages Run Dynamic Languages like Python (JPython) , Scheme (JScheme, SISC, Kawa), Ruby(JRuby), Smalltalk(Bistro). In comparison a commercial development effort to port Python to .NET showed dismal performance. Furthermore, a paper comparing the CLR and the JVM came to similar conclusions .
The comparisons of the JVM and CLR performance have been a hotly debated topic. There have been different benchmarks on the JAVA vs .NET, even by the middleware company, that showed .NET is faster. To be true, this is just a marketing stuff, I dont think you can really compare the two. The JVM aims to run Java, thats it. The CLR aims to run all CLI compatible languages. This is clearly stated in the paper cited above and it paper also clearly states that the CLR is faster in certain tests, while the JVM is faster in others. I suppose the paper was linked to with the hope that people will not read it, but will accept that the paper did say that the JVM is better that the CLR....
3. Compile in One Platform Run in Another. Visual Studio.NET and .NET SDK End User License Agreements specifically states that code compiled with it cannot run in non-microsoft platforms.
The restriction is only on the executable and not on code. If you want to run the in other platforms, use tools like Mono to compile your code. VS.NET is aimed at windows
4. Smaller Runtime Download The Java Runtime Evironment (JRE) is a 8MB runtime download, .NET runtime download is over twice as large (i.e. 20 MB).
This is an acceptable reason, if size is important to you, but then .NET supports a lot more languages(which are used to write commercial application) than the JVM. And .NET is still in version 1.1, while Java is at 1.4, so as the system becomes more optimized, the chance are high that the size will come down. (Do you ever think of 20MB as huge any more, I doubt though)
5. No mandatory upgrades. No subscription fees. No software insurance fees. How many MIS organizations are held hostage to microsoft's draconian licensing policies?
.NET Runtime as such has no fee associated with it, nor does the SDK. So I am not sure what this point tries to stree. Seems more like a I hate MS kinda point
unfortunately, #1 is still not true. MONO is not finished and won't be for at least a few more months. Until it is, we can't really claim that .net runs on mono. We can say "most of .net's non-winforms stuff runs on mono".
Posted by: sirshannon | July 25, 2003 at 10:20 PM