[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ADTPro beta available
In article <1152604997.992204.177630@35g2000cwc.googlegroups.com>,
mdj <mdj.mdj@gmail.com> wrote:
>
>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.
:-)
Check out: http://www.skch.net/columns/java2.html
>In turn, the language itself is defined to avoid being bound
>to architectural limits.
<g> .... if so, why does the Java language explicitly prescribe the
sizes and bit patterns of its fundamental data types? An int is *always*
a 32-bit signed 2-complement integer, a double is *always" a 64-bit
IEEE floating-point number .... etc etc. These architectural limits are
directly hardwired into the language itself !!!!! Do you want to do
128-bit number crunching efficiently, on hardware which directly supports
it? Forget about doing that in Java....
>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.
Indeed, single-platform development is simpler than cross-platform
development - we're in full agreement here! Java avoids cross-platform
development by "porting" the entire platform, rather than the application.
This means simpler development of course, but it also means a limitation
to whatever the JVM platform offers.
But this method is not limited to the JVM. Any platform can be made
"cross-platform" in the same way - by porting the platform to another
platform through emulation.
>> 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.
:-) ... http://www.research.att.com/~bs/bs_faq.html#Java
>All functionality is delivered by the platform the Java program is
>running on, except the virtual machine, which is just a virtualised
>processor.
You forgot the *quite* *lage*, and growing, class library of Java. Or
are you saying that the Java class library offers no functionality?
If so, I strongly disagree with you.
>You could create a standalone platform that could run Java programs if
>you like, and this has been tried before (without success).
Yep -- these efforts repeated the earlier failures of Western Digital's
"The pascal Micro Engine" (which executed UCSD Pascal P code directly
by the processor - a processor which, needless to say, contained a lot
of microcode) as well as Intel's first 32-bit CPU, the iAPX-32 (which
executed an Ada variety of P code -- it too failed for the same reason:
slow execution. The 80386, which was released a few years later, ran much
faster).
>Java is
>used today to write programs that run on a multitude of platforms.
No - Java is used to write programs for the JVM platform. The JVM platform,
in turn, runs on several other 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.
You're posting in comp.sys.apple2 and you're not aware of the Apple II
and its OS'es? OK, here they are: Apple DOS, Apple ProDos, Apple CP/M,
Apple Pascal, Apple OS/9 - none of them have any JVM.
>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
Support for all of that could be obtained through third-party libraries.
There were numerous GUI libraries for MS-DOS - most of them even ran
in text mode. There were multitaskers for MS-DOS - ever heard about
DesqView for instance? One can also network through MS-DOS ... some years
ago I wanted to back up the harddisk of an MS-DOS computer I was going to
retire. Instead of shuffling floppy disk or using a file transfer program
running through a slow serial port, I plugged in an Ethernet card and then
surfed the web and found networking software working under MS-DOS. After
a little while I had a network connection between that MS-DOS computer
and the rest of the network, and then I could just copy the entire harddisk
to another computer and then burn its contents on an archive CD. OK, I
used the NetBEUI protocol for this - but there are also TCP/IP stacks
implemented for MS-DOS.
--
----------------------------------------------------------------
Paul Schlyter, Grev Turegatan 40, SE-114 38 Stockholm, SWEDEN
e-mail: pausch at stockholm dot bostream dot se
WWW: http://stjarnhimlen.se/