[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
computer-go: Programming languages
William Harold Newman <william.newman@xxxxxxxxxxxxxxxxx> wrote:
> Also incidentally, the Gamesman's Toolkit was the thing which
> convinced me to switch my Go-playing program from C++ to Common Lisp.
> Doing the Gamesman's Toolkit thing in Lisp is still messy, but it's
> substantially less messy than doing it in C++ (or C!). I took this as
> strong evidence that some fundamental problems in Go would be easier
> to analyze in Lisp (or, probably, in a functional language like ML)
> than in C++. I still think that's correct, but man, oh man, they're
> still hard problems. I've been working on them a long time since then,
> and I still haven't been able to turn my analysis into something which
> plays a decent game of Go.
Yes, many of the languages in use have their own strong points. In my life I
have started to implement go in at least: Assembler, C, basic, Pascal,
Prolog, Java, Perl, and some others I do not remember. They all seemed to
have their advantages and drawbacks. My conclusion (so far) is to use what
ever language I feel most comfortable with. Some other language may have
some benefits I miss, but will these compensate for the trouble of learning
a new way of doing things? Maybe, but can I know that in advance?
More theoretically, I can see two approaces to get around these problems.
One would be to construct a language specifically optimized for programming
Go. I don't quite know how it should be, but there must be elements that
make much sense. Suggestions, anyone?
Another solution would be to use all the languages I (or any member of "my"
team) knows, and find an environment that allows all these different
languages to be mixed. This may not be as impossible as it sounds, as we
still wouldn't need all languages, just a few (very) different ones. For
example, a C-based environment (or C++ or Basic), that has a prolog
inference engine and a lisp processor available... And perhaps some neural
network tools, and genetic algorithms, and a whole library of scientific
stuff. All this for the back-end, and a corresponding array for the gui,
file i/o, and other peripherial things... And forget what I said earlier
about the time invested in learning to use all these things ;-)
- Heikki
--
Heikki Levanto LSD Levanto Software Development heikki@xxxxxxxxxxxxxxxxx
"In Murphy we Turst"