Java > Scala

Walter Bright newshound2 at digitalmars.com
Sat Dec 3 12:44:55 PST 2011


On 12/3/2011 12:33 PM, Walter Bright wrote:
> It's when you take advantage of things C has to offer, like user defined value
> types, pointers, etc., that C pulls way ahead.

A couple examples. Take a linked list:

   struct List {
      struct List *prev, *next;
      ...payload...
   };

We can do that in Java:

   class List {
      List prev;
      List next;
      ...payload...
   }

Right? But hidden in the Java class are two extra entries, a pointer to the 
vtbl[] and a mutex. Every one of the Java List instances is going to consume 8 
more bytes than the C version. Consuming more memory has performance costs. No 
Jit I know of can fix that.

Secondly, consider the small string optimization that is common in C. Can't do 
it in Java, and no credible Jit technology can fix that, either.


More information about the Digitalmars-d mailing list