From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,70016ed51014902d X-Google-Attributes: gid103376,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Warning: Flame Bait Date: 1996/11/30 Message-ID: #1/1 X-Deja-AN: 201503832 references: <01bbdcb5$7500ab30$24af1486@pc-phw> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.ada Date: 1996-11-30T00:00:00+00:00 List-Id: In article , Robert Dewar wrote: >Portability is MUCH more than just a question of the language definition, it >is about being able to practically port a wide range of applications from >one machine to another over a wide range of machines. Java does not yet >begin to meet either of these criteria. We have to wait to see whether >it can in the future, but right now, Java is quite limited in its reasonable >application domain in practice, and I don't see too many Java compilers for >the 1750A, let alone the 8051 :-) Quite true. Portability in practice is quite different from portability in theory. Java has the "theory" part done quite nicely -- a Java program that works properly on one machine will work the same on any other machine that correctly supports the Java language (except for issues involving shared variable updates by multiple threads). You can't say that about Ada, since Ada doesn't define lots of things (order of evaluation of arguments, pass-by-reference vs. pass-by-value, semantics of arithmetic overflow, etc -- I could name several tens of cases). On the other hand, if a Java compiler doesn't exist on your machine, you're out of luck. Likewise, if your machine doesn't have a word size that is a power of 2, Java can't be compiled efficiently for it. The designers of Java clearly valued portability above all else, including efficiency, and there are many situations where Java simply is inappropriate. We'll see what happens. Java may well be the final nail in the coffin for weird machines. Hmm. Anyway, it's hard to reason about portability "in practice". Think about all the C programmers who write code assuming sizeof(int) = sizeof(char*), and write code that is quite portable -- in practice. My taste wants some more basis, than, "I ported it to 3 machines, and it seemed to work." I have this itchy feeling -- I want to *know* that it will port. - Bob