[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [computer-go] How to play go with other programe?
yonik wrote:
> > Personally I prefer this standard: program talks GTP on stdin/stdout,
> period.
> > Engine shouldn't bother with things like TCP, PPP or whatever else. It is
> > way easier to use an external proxy ("glue") to plug an stdio program on
> the
> > connection you need/want/have to use.
>
> You are confusing interface with implementation. What should be
> standardized, and what engine authors have to worry about are two entirely
> different things. GTP/TCP should be standardized. That doesn't *require*
> an engine author to implement it. They could talk GTP over stdin/stdout and
> use an adapter, like you say, or use whatever other library they want to
> implement the full stack. Implementation details are up to the engine
> developer, but the full *interface* should be required so interoperability
> can be achieved.
>
> Again, back to HTML and HTTP: HTML content authors don't necessarily need
> to worry about the delivery mechanism (HTTP) since that is handled by a
> separate component (web server usually), but HTTP certainly has to be
> standardized for interoperability!
Well, maybe I misunderstood you. But I still cannot see the need for
standartization of GTP/TCP. HTML and HTTP are of different class of
use. The Web is an international integrated system. I cannot imagine
GTP being used on such a scale.
> Trying to run a tournament where the only requirements were for programs to
> speak stdin/stdout would be a nightmare. Either
> a) the tournament provider would have to have hardware & operating systems
> in every conceivable combination to run
Why? In any case you _have_ to worry about different systems, unless
you take a fascistic position and insist on using only one of them for
your tournament.
Regarding hardware, I don't see the problem. It is natural to require
that any computer brought in the tournament has certain means of connecting
to the local network (e.g. a LAN adapter---I don't know the details).
In modern computers the exact hardware doesn't matter because implementation
details are hidden in drivers.
And the tournament provider doesn't need to think of it. He goes to
google and grabs a set of already written scripts/programs (maybe even
GoGui, judging by Arend's messages it's capable of many things).
> b) it would be up to the engine authors to make sure their programs ran on a
> platform provided by the tournament providers
This is not an acceptable option of course.
> c) tournament providers would have to provide adapters that ran on every
> conceivable platform.
Take any portable language, say Java. Write a set of simple scripts.
It is done.
> The greatest common denominator of computer systems today is TCP. That
> should be leveraged.
What I don't see is the point of this standardization. You say "TCP is
great", go and write a set of "glue" scripts that provide a way to
organize a tournament over TCP connection without stressing engine's
authors. A tournament organizer, mr. A, bumps into your scripts,
thinks "wow, that's what I was looking for" and starts a tournament,
everybody is happy.
Now let's say mr. X decides that null-modem cable is the best way of
communication in the world. He writes a set of scripts that allow to
host a tournament on a set of computers connected by such cables.
Another tournament provider, mr. B decides that those scripts are a
masterpiece and hosts another GTP tournament.
Now, we have two GTP tournaments, hosted with different communication
channels used to transfer GTP sessions.
* Do engine authors care? No, because tournament providers both accept
programs speaking on stdin/stdout.
* Do mr. A or mr. B care? No, because they both host working tournaments.
They don't need to intercommunicate with each other, because they have
two different tournaments there. They can easily switch from mr. X's
scripts to yours or vice versa.
Paul
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/