Jon
Fri Jan 23 01:51:59 CST 2004
Matthew W. Jackson <themuujAThotmailDOTcom@NOSPAM.NOSPAM> wrote:
> I believe that during early versions, Java was not intended to be platform
> independant.
Yes it was. It's always been available for Solaris and Windows, for
instance. Indeed, right from the first version of the language
specification:
<quote>
Java is a general-purpose concurrent class-based object-oriented
programming language, specifically designed to have as few
implementation dependencies as possible. Java allows application
developers to write a program once and then be able to run it
everywhere on the Internet.
</quote>
> Even now it requires somebody to port large sections of the
> class library (written in C) each time a new platform is introduced.
Almost all of the class library is written in Java, and there's one
common code-base for Sun's VM across platforms. Sure, some parts of it
will be platform-dependent (such as the native parts of the preferences
API implementation)
> Besides, the .NET virtual machine makes it easier to provide code-based
> secuirty. While this might be possible with machine code, it certainly
> wouldn't be as efficient.
I'm not sure where this comment comes in... was it for the "what's the
point of .NET otherwise"? If so, I agree that there are for more
reasons to use .NET than just portability.
> Also, Windows has been available on platforms other than x86 in the past (NT
> ran on Alpha).
True, although as far as I'm aware .NET isn't available for the Alpha
version of NT.
> Theoretically, the .NET runtime can optimize code for a specific processor
> at runtime. I'm not sure how much the current implementations do this, but
> it is POSSIBLE that .NET programs on AMD machines could take advantage of
> 3DNow, and on machines with SIMD instructions those could be used, and etc.,
> etc. Even if the instruction sets were the same, it's possible that
> different models perform certain operations and different speeds, and the
> JIT compiler can keep that in mind when choosing which machine instructions
> to use.
Indeed.
> Plus, there are other implementations of .NET.
And that's the really important thing, when talking about .NET's
potential platform independence.
> Another promising project is Mono, which runs mainly on Linux, but they are
> also working on an interpreted version (as opposed to Just-in-time-compiled)
> which could be easily ported to several other architectures.
And indeed the interpreter runs on:
Linux/x86, Linux/PPC, S390, StrongARM, SPARC, HPPA, SPARC v9
The JIT is being worked on for other processors, and it sounds like the
PPC version is coming along.
--
Jon Skeet - <skeet@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too