[computer-go] Re: language choices

Antoine de Maricourt antoine.de-maricourt at m4x.org
Tue Dec 5 14:43:12 PST 2006


>
> But as a chess programmer,  I disagree with your statement about orders
> of magnitude.  If your chess program is 30% faster than mine, all else
> being equal,  you have a measurably stronger chess program and you will
> probably win even a fairly short match.   In a highly competitive chess
> tournament where many programs have a realistic chance of winning, a 30
> or 40 percent difference is to die for.
>
> If your program has an annoying 0.75 second delay,  even getting this
> down a little is a big deal.  
>
> Even if I were a Java programmer, I would go for as little as a 2 to 1
> speed increase even if it uglied up my code a little.   But I wouldn't
> obsess over 20 percent and I wouldn't reorganize the code for that.
>
> - Don
>
>   

There is another case were speed matters, beside the 'being the best 
under time constraint with similar hardware' one. Suppose you have 
written some experimental code and you want to conduct many experiments 
in order to fine tune parameters, or even to introduce some variation in 
your experimental code. Suppose each experiment takes a long time: 
several minutes or even a few hours, and you have to conduct many of 
them. Then even a 30% speedup might be very worthfull, as it could save 
a lot of experiment time, even if one had to spend more time for initial 
optimisation.

I often went into such situations, and many time this was the primary 
raison I spent some time to optimize my code.

Another point about code efficiency is that it is probably very 
dependent on individual programmer's skill, probably more than on the 
intrinsic difference between C++ and Java. As a C++/C/ and even assembly 
programmer I will probably never use Java. Not that I consider C++ as 
far superior - just a little bit :-) - but there is no benefit for me to 
use Java. All what is said to be a great advantage of Java can be done 
in C++ as well. I can develop very quickly 'quick and dirty' code to 
test new ideas in C++, and recode it in a very clean / organized / 
modular / robust ... code later if needed. This ability is not coming 
from the programming langage itself... and I don't think it takes me 
more time to do it in C++ rather than in Java.

Antoine



More information about the computer-go mailing list