Please take into account the history of xboard/WinBoard which can be read here, for instance. Initially xboard was a (UNIX) user interface written only for GNU Chess, and this was long before PGN standard and FEN had been defined in 1994. The communication between xboard GUI and GNU Chess was done via a protocol that was close to what is called "WinBoard protocol v1" today. So "setboard" using the FEN standard could not exist at that time. There were good reasons not to throw away the whole protocol later on, but instead to define the improved WB protocol version 2 where adding the "setboard" command was one of several important changes.Chan Rasjid wrote:UCI has many advantages over the xboard protocol. It seems the xboard protocol is wrong from the start:-
1) 'edit' command is just bad. Setting position the fen way (as in UCI) is clean and could have been an obvious way to go.
Therefore I think it is not appropriate to call the xboard protocol "wrong from the start" and base this on the argument that v1 was not using FEN yet. It simply couldn't, like the people in Stone Age had no television yet and therefore couldn't watch football games.
There are for sure different opinions about which kind of protocol is "better": the "stateless" UCI or the "stateful" WB. It is o.k. for me if the stateless approach is your favourite. My preferences are different but I do not try to convince you. I think this is the best way to handle different views when it seems impossible to objectively decide which one is "better". At least one thing is obvious, though: for both WB and UCI protocols there are a lot of engines implementing it without any serious problems.Chan Rasjid wrote:2) uci 'position' command is smart. It takes away the need for programmers to worry about takeback a move, loading pgn games, etc. it sends the originating fen position + all game moves. The programmmer just do a 'setboard' and 'make' all the moves and it would lead to where to start searching from. The programmer don't need to know if a human player took back moves, etc. The GUI programmer add some codes and all chess programmers benefit. Interfacing with UCI is much easier for the programmer.
Sven