Sunday, September 23, 2007

Java?

After spending some time writing Ruby and Java code, I had a hard time crossing my eyes again to make heads or tails of GRAY MATTER’s C++ code. That got me thinking — is it time to migrate to a more modern programming language?

Ruby’s syntax is beautiful, but it can’t deliver the performance that a chess engine needs. But what about Java? I did some research, and a couple of things scare me:

  • Java doesn’t have an unsigned 64-bit integer type. We’d have to use signed 64-bit integers as BitBoards. Also, the farther we move up from the bare metal, the less we can rely on our low-level bit-twiddling hacks. Who knows what kind of bizarre problems may result.
  • The Java crowd seems a little bit too enthusiastic about Java’s performance, especially when compared to C++. I don’t trust the Java echo chamber.

I guess we’re sticking with C++. I’m discussing this with Doug, and he agrees that we should stay as close to the bare metal as possible.

2 comments:

José Enrique Rodríguez said...

Have you considered C#?

Rajiv Bakulesh Shah said...

I've heard good things about C#, but I don't even own a Windows machine, so C# is out of the question. Thanks for the suggestion, though. :-)