[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Languages for programming go are?
Hi Bob,
I'm not sure it's a very big issue which language you use, as long as
you start with something reasonably adequate.
My own opinion is that you should use something fast and powerful,
definitely some compiled language. I have found that there is never
enough performance for what you would like to be able to do. Again, I
don't think it matters a whole lot which compiled language.
Personally, I like C (actually I hate C, it is an ugly language but I
still consider it my best choice) because it is portable and compilers
are about as fast as current know-how permits. The portability may
not be an issue for most people, and good fast compilers exist for
many languages now.
But there is a different school of thought on this, one I don't
personally agree with, but I present for your consideration. Most Go
programmers feel that performance is a non-issue, I have even heard
complaints that their programs play weaker with better hardware. If
there is truth to this, then the only thing that matters is the
ability to express ideas and concepts programmatically. So you might
even consider a language like perl, a very powerful and expressive
language. Compared to a compiler, perl will be a dog in terms of
performance, but then again, consider that in a short time, we will
have computers that will run perl code just as fast as the equivalent
C code runs right now on current systems.
2) If one were to imagine a new language, invented solely for the =
purpose of writing a great computer go system, what would its =
characteristics likely be? (Or would there be multiple new languages, =
for different parts of the problem?)
If I was going to go to the trouble, I would try to make this language
as expressive as possible, and forget about performance. I would use
it as a language to prototype ideas with. The idea would be that if I
was happy with an idea, I would recode it in a more performance
oriented language. If I felt that performance didn't matter, then
recoding it would be of no benefit and I could use the language as is.
> But using =
> different/new languages _can_ dramatically improve the productivity of a =
> programmer, both quantitatively, by providing more efficient tools, and =
> qualitatively, by changing the way he/she thinks about the problem.
The way you think about a problem is crucial. I think what stands in
our way the most is that we try to make the machines in our own image.
Don
From: "Bob Myers" <rtm@xxxxxxxxxxxxxxxxx>
Hi everyone. =20
As far as I know, most existing computer go programs are coded in C or =
C++. I hear that HandTalk is written in Assembler, bless its soul. I =
seem to remember hearing of a program written in LISP.
I have two questions for the members of this list. =20
1) What are the pluses and minuses of writing a go program in various =
existing computer languages?
2) If one were to imagine a new language, invented solely for the =
purpose of writing a great computer go system, what would its =
characteristics likely be? (Or would there be multiple new languages, =
for different parts of the problem?)
I am quite aware that coding in this language vs. that cannot alter the =
underlying computational complexity of a problem. But using =
different/new languages _can_ dramatically improve the productivity of a =
programmer, both quantitatively, by providing more efficient tools, and =
qualitatively, by changing the way he/she thinks about the problem.
Simply put, assume we are going to invent a language for writing go =
programs. What would that language be likely to look like? (And, once =
we know that, what if any are the challenges in writing a compiler for =
the language?).
Bob Myers
Intelligent Go Foundation =20