@Aart: Yes, sorry for sort of hijacking your thread. It is not completely off topic, though: you started the subject of adapters by promoting Folkert's connection adapter. Look at it on the bright side: It keeps your thread on top!
Daniel Shawul wrote:No I don't but you repeated ignore my comments. I said they could do that if they want but it would be duplicated work. And then I described the better option of telling the GUI to do it. So now you have something in between which you can completely avoid.
If I ignore them, it is because I think they are not valid points. In fact what you reiterate here is exactly the opposite of what IMO is actually the case. 'Duplicate work' is when you have to implement the same thing in many different GUIs. With an adapter using a protocol they all already know you only have to do it once.
And I still don't see what would be in the adapter that is also in the GUI. Your remark about having the adapter tell the GUI 'how to set up a position' or 'sending move lists' is still totally unclear to me. Why do you think an adapter would need to do any of that? What else can I do with points I don't understand other than ignore them, if no clarification is forthcoming?
In the adapter I propose there would only be some standard server / client code for making the network connection (which would not be in the GUI, which only makes pipe connections to daughter processes), and some algorithm for negociating the color, resigning games in either direction (accompanied by a telluser message) until both ends got it right. After that it would just relay the moves or result commands. None of that would be in the GUI.
Look at all your notations see the adapter is immediately connected to a GUI. You brought about Arena and other GUIs just in your _last_ post which I pointed out. That is not an argument at all if you have the same GUI on both sides but you want p2p connections then better integrate it into GUI. That is how every p2p game or other app is setup. Don't invent something weird to make a point...
Weird?
What is weird about wanting to allow Arena users to connect directly with WinBoard users on another machine? People ask for exactly such capabilities in GUIs all the time. And yes, the adadapter connects immediately to the GUI, sitting in between it and the network. That is why it is called an adapter. Polyglot also always connects directly to the GUI. Or engines. Why do you think that is significant? Surely you agree that even though engines always connect to GUIs, it doesn't mean it would be a good idea to incorporate the engine code into the GUI?
But you only brought up connecting Arena vs Winboard, Arena vs Scid etc just in your last post.
Indeed, I brought it up when it became clear that it was not obvious from the beginning (as I thought it would be). What else would you want me to do? If there is a misunderstanding because I was apparently not clear enough in the initial post, should I not clear it up?
And even at that there aren't many chances for the user to write as many adapters for GUIs as there are adapters for different chess variants. So you might as well integrate it with your gui in short add support to Arena, Scid etc simple.
Adding something to Arena would be 'simple'? How? It is closed source... And even if it were not, it would be duplicate work.
Right but we were not talking about connecting entire GUIs in the first place.
I don't understand what you are trying to say here. What is 'connecting entire GUIs'? Are there also half GUIs or quarter GUIs? If we are not talking about it, why do you bring it up? You think we should be talking about it?
So either you have to admit it sounds like the referee engine designed to equip all GUIs that exist in the entire world in one blow. Or that it is better to integrate it in the GUI if the purpose is to have p2p connections between your apps ...
Well, as should be clear now, my purpose is
not just to have p2p connections just between two apps. It is to provide a possibility for any two GUIs in the world to connect to each other. OK, the referee engine connects to a GUI. The adapter connects to a GUI. So yes, I suppose in this sense this adapter (and any adapter) is similar to a referee engine (or any engine).
The advantage of a modular approach is flexibility: the user can pick any set of components he likes, without having to accept a package deal, where he has to put up with aspects of the package he doesn't like just because he needs a unique feature only that package offers. This is why we moved away from stand-alone Chess programs, and separated GUI and engine. So that any GUI can be used with any engine, and vice versa.