[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ADTPro beta available



Paul Schlyter wrote:

> > Cross-platform is the smart way to go at this point, especially as more
> > people start getting fed up with Windows and start looking for alternatives.
> > (My notebook no longer dual-boots Windows and Linux.  It only boots Linux;
> > the handful of Windows apps I'm still using work with Wine and/or a Win2K VM
> > running under VMware.)
>
> Cross-platform software is indeed nice, but a bit complex.  It requires you to
> write the software with portability in mind, and then to actually build it on
> multiple platforms to see that it actually works across platforms.

Not if you write the software in a language designed for cross-platform
use. This is the whole point of Java - a cross platform API + a virtual
machine. In turn, the language itself is defined to avoid being bound
to architectural limits.

The entire point of it is to avoid the complexity you refer to. Rather
than it be done for each and every cross platform application, you
simply leverage a cross platform API that already exists. In the case
of Java, you also compile your code to a cross platform 'instruction
set' which is then translated or compiled as appropriate on the host
platform.

> That's not the path chosen by Java though.  Java is single-platform: it runs
> only on the Java platform.  It creates an illusion of being cross-platform
> by having the Java platform emulated on various other platforms.  But by that
> method, you can also make MS-DOS programs "multi-platform".

Nonsense. There is no 'Java platform' in the sense the term is used for
every other platform. All functionality is delivered by the platform
the Java program is running on, except the virtual machine, which is
just a virtualised processor.

You could create a standalone platform that could run Java programs if
you like, and this has been tried before (without success). Java is
used today to write programs that run on a multitude of platforms. Yes
they'll only run where there is a JVM implementation, however there
exists no platform I'm aware of for which such a JVM does not exist.
Hence your program is cross-platform.

If you look, you'll see that there is indeed a JVM implementation that
runs under MS-DOS. Unfortunately it provides only a tiny subset of the
Java API, and is thus not useful for non-trivial code. Why? The MS-DOS
platform doesn't provide the functionality required for networking, UI,
threading, etc.

Matt