[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: computer-go: Languages for programming go are?



The question of a special Go language is an intriguing one, and will
probably remain so for quite a while. If I remember correctly, the main task
of the Fifth Generation project was to design a programming language that
would be suitable to be used for solving AI problems in general, and solving
Go in particular.

The main problem, as has already been pointed out a few times, is the lack
of consensus about a lot of important low-level decisions. In the past,
performance was always a strong driving force but nowadays less so. Opposite
to what someone else pointed out, I think portability is an important issue.
It was the main reason I started to look at Java, only to find out a lot of
other good things about it. Nothing new, but nicely packaged. It mainly made
me realise even more the importance of properly designed general intefaces
and libraries.

Under the current circumstances, my opinion is that we should not so much
try to look for a special programming language as well as trying to come up
with libraries that perform certain CG specific tasks. The programming
language used becomes less important now that there are more and more ways
to communicate between different programming languages. The only other thing
really needed is a way to specify common data-structures (think XML) and
interfaces (think CORBA, IDL)

So my new question is: what functions would you want to see in a CG specific
libary? Do you have any that you think are worth sharing?

My personal top three suggestions:
- A superfast tactical function that tells you whether something can be
captured or not and ideally in how many moves.
- A powerfull pattern-matcher.
- Efficient implementations of common algorithms like alpha-beta and
PN-search that only require plug-in algorithms specific to a certain goal.

I could list more, but I'll leave a few to be filled in.

    Mark Boon