Negative (or why people started adopting java)

Matthias Spycher matthias at coware.com
Fri Mar 3 13:39:17 PST 2006


I completely agree with Andrew's points. Interspersed some comments below:


Andrew Fedoniouk wrote:
> 
> 4. Execution model: VM + real GC. Safe sandbox. Pure byte code cannot GPF
> in principle.

Concurrency and the memory model should be mentioned. Final, volatile 
and object initialization are well defined in a concurrent setting (as 
of J2SE 5).

> 
> 5. Extremely simple Java Native Interface mechanism - bridge to native code 
> for
> mission crititcal pieces.

Minimal exposure, even to JNI programmers, of the VM's internals. 
Verbose, ugly? Maybe, but works as intended.

> 
> 6. Extremely simple bytecode system. I know around 12 working 
> implementations
> of Java VM.

Mobility of state and behavior -- this was one of the original 
requirements for the Oak language and runtime when it was first 
implemented. It is interesting to note that the platform was initially 
designed for PDAs and other mobile gadgets with wireless connectivity. 
The internet, browsers and applets came much later; and "accidentally" 
turned out to be the most effective vehicle for marketing the system. 
Leave out the byte code and we might instead be programming in Dylan or 
some other "exotic" language.

> 
> 7. ClassLoader as an entity. Killer thing, IMO.
> 
Should we mention that a dynamic compiler will optimize (e.g. inline) 
across units that are loaded at runtime? For server-side programming, 
even D will be challenged on this front.

> 8. Reflection as part of runtime.
> 
> ------------------
> Having said that Java has problems of course. It is good for some set of 
> tasks.
> It is not an universal language.
> 
> But it is damned stable. Last 7 years or so it is working as it is.
> 
> 

Agreed. D is a great step forward for C and C++ programmers, as these 
languages compete in the same application domains. Java and C# will 
continue to dominate in managed environments. IMHO, Scala is the kind of 
language that might challenge Java/C# in the long run.

Matthias



More information about the Digitalmars-d mailing list