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

Re: [computer-go] Score estimating



Don -

This is somewhat off topic, but are you familar with the Python/C interface libraries?  It's trivial to write a C++ class that looks and behaves like a native Python class to the Python interpreter.  This means that an interesting programming methodology is to write an entire progam in Python, profile it to see which parts are slow, and then re-write just the most performance critical in C/C++.  In many cases, you can re-write a critical 5-10% of your code, and reap huge gains in performance, largely offsetting the penalty for using Python while still using the expressive language for the majority of the code, especially during the most fluid and often changing early stages of development.  It isn't clear that Go programs can break down in this manner, necessarily, but in general I find this a very productive way to work.


Sorry for the digression,

Paul Jacobs

----- Original Message -----
From: Don Dailey <drd@xxxxxxxxxxxxxxxxx>
Date: Sunday, August 8, 2004 8:41 am
Subject: Re: [computer-go] Score estimating

> 
> Chrilly,
> 
> I'm no  expert on  this but I  think speed  is always critical  in any
> game.  Speed and memory are  to computers what intelligence is to man.
> It's just  that none  of us has  figured out  how to write  a scalable
> program (which is  also a good program.)  From what  I've been 
> able to
> determine,  the best  programs either  just have  1 level  
> setting, or
> contrived settings not really based on being able to utilize computing
> power.  Most of them play almost instant moves even though the 
> game is
> much harder than chess.  It's  as if nobody knows what 
> computations to
> do that will use the cycles and still play significantly better.
> 
> Therefore  the  emphasis is  on  the  expressiveness  of the  language
> because it's more important to explore and experiment at this point.
> 
> I think what you  are seeing with Java is not that  it is suited 
> to go
> programming, it's just very popular.  It's not particularly expressive
> OR fast, but it's a good  compromise in both directions.  It IS faster
> than most of  the goodd expressive languages though  it's no match for
> C. 
> 
> I have been  looking at a relatively new  computer language that comes
> very close  to C  in performance,  but is actually  a very  high level
> expressive language.  The  issue for me, is that  I tend to experiment
> with  ideas to  the extent  that it  takes too  long to  be constantly
> reworking  the code.  The  best language  for doing  this seems  
> to be
> Python  or  Ruby  (I  believe   Ruby  is  cleaner  and  slightly  more
> expressive.)  Unfortunately, these  languages really kill performance.
> But  the language  "Ocaml"  seems to  be  the best  compromise in  all
> regards, it's extrememly fast and extremely expressive.  It's actually
> easy to  learn even for  us old-timers who  are used to  the procedure
> oriented languages we learned on.
> 
> 
> - Don
> 
> 
> 
> 
> 
>   X-Original-To: computer-go@xxxxxxxxxxxxxxxxx
>   From: "chrilly" <chrilly@xxxxxxxxxxxxxxxxx>
>   Date: Sun, 8 Aug 2004 10:55:16 +0200
>   Content-Type: text/plain;
>           charset="iso-8859-1"
>   X-Priority: 3
>   X-MSMail-Priority: Normal
>   X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3
>   X-AntiSpam: Checked for restricted content by Gordano's 
> AntiSpam Software
>   X-BeenThere: computer-go@xxxxxxxxxxxxxxxxx
>   X-Mailman-Version: 2.1.4
>   Precedence: list
>   Reply-To: computer-go <computer-go@xxxxxxxxxxxxxxxxx>
>   List-Id: computer-go <computer-go.computer-go.org>
>   List-Unsubscribe: 
> <http://hosting.midvalleyhosting.com/mailman/listinfo/computer-go>,
>           <computer-go-request@xxxxxxxxxxxxxxxxx?subject=unsubscribe>
>   List-Archive: <http://computer-go.org/pipermail/computer-go>
>   List-Post: <computer-go@xxxxxxxxxxxxxxxxx>
>   List-Help: <computer-go-request@xxxxxxxxxxxxxxxxx?subject=help>
>   List-Subscribe: 
> <http://hosting.midvalleyhosting.com/mailman/listinfo/computer-go>,
>           <computer-go-request@xxxxxxxxxxxxxxxxx?subject=subscribe>
>   Sender: computer-go-bounces@xxxxxxxxxxxxxxxxx
> 
>   >
>   >By the way: I am working in java, if anyone wants to know.
>   >
>   I realized that several Go projects are written in Java. I am 
> an hacker from
>   the computer-stone-age and have written the time critical parts 
> of my
>   chessprograms in Assembler. Is Java not considerable slower 
> than C/C++? Or
>   is this not true anymore? Or does speed not matter in a Go-
> Programm. Is ease
>   of programming more important? (Although I see in this respect 
> no big
>   difference between C(++) and Java).
> 
>   My question has nothing to do with score-estimation, but I 
> wanted to ask
>   this already on other contributions who mentioned Java. 
> Actually the real
>   background of this question is that I have difficulties to 
> understand the
>   Go-programming paradigm. Speed is everything in chess and it is 
> therefore   difficult to imagine, that it should not be in Go.
> 
>   There were some plans to write together with Peter Woitke 
> (GoAhead) a new
>   Go-program. One of Peters basic requirements was: If time 
> and/or processing
>   power increases, the strength of the programm increases. 
> Especially if time
>   goes to infinity, the playing strength does the same.
>   I had problems to understand this requirement at all because in
>   computer-chess it is obvious. But Go programs seem to have a 
> problem to use
>   "infinite" time or processing power. One consequence of this 
> paradigm is:
>   Although there are much more moves than in chess, the time 
> setting for a
>   computer-Go game is much shorter. If there appear programs who 
> could use
>   time wisely one would have to discuss this settings.
> 
>   Best Regards
>   Chrilly Donninger
> 
> 
> 
> 
>   _______________________________________________
>   computer-go mailing list
>   computer-go@xxxxxxxxxxxxxxxxx
>   http://www.computer-go.org/mailman/listinfo/computer-go/
> 
> _______________________________________________
> computer-go mailing list
> computer-go@xxxxxxxxxxxxxxxxx
> http://www.computer-go.org/mailman/listinfo/computer-go/
> 

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/