Jules:
I was just wondering how wide spread the use of GTP currently is?
So do I. Personally, I am using gnugo as a "reference implementation" for GTP. I am writing a nngs <--> gtp interface (unix: pipe+fork+exec) so that i can use nngs as primary interface for go-programs. Since GMP over a network connection is silly, I think GTP is a logical choice. Line oriented protocols are simple to construct and debug. I would have liked a more smtp/nntp-like protocol, with status/error-numbers instead of the "?number textstring" lines, but the current format will do.
There are two things, I would like to be changed in gtp: 1) a reserved namespace for "local" additions, eg all commands starting with [xyz] are reserved for local command extension. 2) gnugo should *not* pollute the existing namespace with redundant commands. eg: genmove_black is equivalent to "genmove b". this is protocolbloat to avoid. 3) gnugo extends the error messages with descriptive text, eg: out_of_range: point d33 is outside the board. 4) some features still seem to bi missing : the equivalents of sgf MN, PL , some timecontrol. 5) at the moment, the protocol is practically stateless. this allows for the goprogram to accept and generate moves , without having a notion of a game (or gamestate). Maybe a "game" or "session" layer should be added in a next version of the protocol.
But: the current protocol enabels a program to functional with only 5-10 gtp commands implemented, which allows it to focus on making moves instead of changing pixels on a screen ...
AvK