Linked by Eugenia Loli-Queru on Wed 20th Feb 2002 18:45 UTC
.NET (dotGNU too) A lot of people have trouble understanding what .NET really is and what its goals are. Mostly because Microsoft has done a good job of confusing everybody using terms that are not self-explanatory or with terms that mean more that one thing. This editorial will present my thoughts on .NET, what it really is, what its motivations and goals are, and why it is the next "big thing." Should we embrace it or fear it? Both, I daresay.
Permalink for comment
To read all comments associated with this story, please click here.
Incorrect statements
by Phazer on Thu 21st Feb 2002 10:04 UTC

.NET is very interesting and your article is a good read. But when you
start making comparisons to Java I must respond.

> The new APIs are highly object-oriented, and the objects used are
> accessible by any supported language (VB.NET, ASP.NET, C/C++/C# and
> recently, even Java). This is a pretty revolutionary feature, having
> objects accessible by any language. In the past, there was not a
> unified and universal way where a C++ program could access Java
> objects or Python objects.

It's not revolutionary. Java has made this possible for years. Just
take a look at some of languages available for the JVM:

http://flp.cs.tu-berlin.de/~tolk/vmlanguages.html

Also the .NET runtime does only support a subset of the complete C++
standard, which means you cant use some important features in
C++. Basicly there's not much better support for multiple languages
in .NET than in the JVM. Look at this article for an analysis of the
CLR:

http://www.javalobby.org/clr.html

> With .NET you can have a series of different languages talk to the
> same objects, while with Java, only Java could access its own objects.

See above.

> However, unlike Java, .NET code does not run in a "virtual
> machine". The code is actually JIT'd to the native code of the host
> platform at runtime. Of course Java has this capability too, but what
> .NET does differently is keep track of which modules have already been
> compiled to native code, and not bother re-compiling them from the
> intermediary language a second time. The runtime is smart enough to
> figure out when an intermediary language module has been modified, and
> re-JIT it at runtime only when that has occured. What does this mean?
> It means that .NET code runs just like Java running JIT'd the first
> time you run the code. The second time though, .NET code runs closer
> to the speed of C++ (with the added overhead of garbage collection).

Saving the JIT compiled code does not improve performance. Java
doesn't save the JIT compiled code because there's no advantage in
doing this. Java and .NET should be about equally fast. About 90% of
the program code takes 10% of the execution time, so there's no gain
in compiling this code to machine code. JIT compiling the rest of the
code is done very fast.

> Microsoft loves to have its .NET ported everywhere.

I seriously doubt this. It would mean that M$ can sell any more copies
of Windows and would loose the dominance on the desktop market. Do you
have any grounds for this statement? Has M$ stated that it wants .NET
ported to all platforms?