The Java goal does not allow pollution
on
Java for EGCS
·
· Score: 1
but you can't have WORA if there are different versions.
You can if the spec is tight enough (it might be, it is certainly tighter than C's) and if the different VMs conform to the spec. It would help if Sun conformed to their own spec in the area of JNI, and it would be nice if someone could verify that Sun's JCT only checked for those things defined in the spec (I've heard that if you don't run it in the Pacific Time Zone, you cannot pass), but such is life. It looks like a huge step in the right direction, and it is much easier to write portable code in Java than it is to write it in C or C++.
Has Java Progressed wrt Generic Programming?
on
Java for EGCS
·
· Score: 1
Casts don't cost much in a decent VM, and because there's no preprocessor, you can write (and I have seen it done) "generic" expanders in perl. That is, I don't care whether "Java" does generic programming, because I do generic programming in something that looks like Java (just as templates resemble C++), and I've got (at least) two ways to do it, one compact and somewhat slower, the other not compact and somewhat quicker. Given the generally miserable performance of C++ compilers and debuggers on C++ templates, I don't miss them at all.
In practice, pointers are only necessary for small parts of an operating system, which (in Java) could either be accomplished by small scraps of unsafe code, VM-specific classes, or unsafe extensions to Java. Go give Modula-3 a look; it has an unsafe variant, and M-3 has been used to write an operating system (SPIN) that compares favorably (in terms of performance) with flavors of Unix available on the same box (DEC Alpha).
Furthermore, adding pointers to Java (in an unsafe, walled-off extension to the language) does not give you the same language as C, and certainly not C++. How do I know? Because I've seen it done.
but you can't have WORA if there are different versions.
You can if the spec is tight enough (it might be,
it is certainly tighter than C's) and if the
different VMs conform to the spec. It would
help if Sun conformed to their own spec in the
area of JNI, and it would be nice if someone
could verify that Sun's JCT only checked for
those things defined in the spec (I've heard that
if you don't run it in the Pacific Time Zone,
you cannot pass), but such is life. It looks
like a huge step in the right direction, and
it is much easier to write portable code in
Java than it is to write it in C or C++.
Casts don't cost much in a decent VM, and
because there's no preprocessor, you can write
(and I have seen it done) "generic" expanders
in perl. That is, I don't care whether "Java"
does generic programming, because I do generic
programming in something that looks like Java
(just as templates resemble C++), and I've got
(at least) two ways to do it, one compact and
somewhat slower, the other not compact and
somewhat quicker. Given the generally miserable
performance of C++ compilers and debuggers on
C++ templates, I don't miss them at all.
In practice, pointers are only necessary for small
parts of an operating system, which (in Java)
could either be accomplished by small scraps
of unsafe code, VM-specific classes, or unsafe
extensions to Java. Go give Modula-3 a look;
it has an unsafe variant, and M-3 has been used
to write an operating system (SPIN) that compares
favorably (in terms of performance) with flavors
of Unix available on the same box (DEC Alpha).
Furthermore, adding pointers to Java (in an
unsafe, walled-off extension to the language)
does not give you the same language as C, and
certainly not C++. How do I know? Because
I've seen it done.