[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