On Tue, 2008-11-04 at 07:43 +0100, Heikki Levanto wrote:
> My personal preference might be C, but at
> work I have to learn more Java... Anyway, I don't want to start a
> language
> war here, not again...

Oh, you want a war :-)

Seriously,  Java has it's place but if you really get serious about
developing the highest performance strong playing bot I think you pretty
much are forced into a low level language.   I see only a very few
reasonable choices if you want to go that way:

   C or C++
   Assembly
   D
   
These are all languages that are low level and you could write an
operating system in.   From my experience it seems like that is the best
"litmus test" for what you could use for a top level game playing
program.  

There are few languages other than these that offer reasonable
performance, not worse than 2X slower than C,  but they tend to be
memory hogs.  Java is one of them.   I cannot imagine every seeing a top
chess program written in Java, or anything that is really memory
intensive as good GO program tend to be.     Is any of the 2200+ GO
programs on CGOS written in anything other than C?

There are also a few language that perhaps could be added to the above
list but need some more evaluation.  Recently I looked at VALA, a
Java/C# lookalike that is more memory efficient and compiles via C to
native code.   It is supposedly much more memory efficient than Java and
seems to have Java-like speed.   I wrote one of the reference bot's in
this language but that is not a high performance bot.  

There are some other high level languages that could be interesting that
are designed to pass the "litmus test" of being powerful enough to write
operating systems in:

   Lissac
   Bitc
   Ats

From what I can see, nothing is happening recently with Lissac, perhaps
it's dead?  It was designed to write an OS in and it's higher level than
C and even gets a higher score in performance than C in the Computer
Language Benchmarks Game.   It appears to be buggy, incomplete and I see
no activity.   It's a shame, it looked really promising.

I'm probably missing some languages.   I think there is a really fast
native code Pascal compiler that is very C-Like in performance and you
could write a high performance chess or GO program in it that is close
to C performance and efficient memory use.   

Just being able to compile to native code doesn't necessarily make it a
candidate.  It seems that you need to have great control over how memory
is layed out and used and the ability to do pointer-like things.  

Am I being too critical of languages?   I cannot find anything that
beats C (other that perhaps assembly, and I did once write a chess
program using an assembler.)

- Don




Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to