I suggest to remove them from the documentation, and put them in a historic appendix (and make it difficult to find ). You do not need to remove the code.hgm wrote:Why? It did not design most of it, and as a scientist I am usually very objective.Matthias Gemuh wrote:I expected you to defend your protocol !
Well the "..." are of course an abomination. Actually, I dont think they are really part of WB protocol. They are merely documented tolerance of WinBoard for the non-compliancy of GNU Chess. I would strongly recommend no other GUI implements that, and I am severely tempted to remove it from WinBoard as well. I am strongly against catering to non-compliant engines. (But I am too busy adding things to be bothered by removing things...)However, UCI has only one move format, while WB will use combinations of the following scenarios :
- move in SAN format
- move in coordinate format
- move preceded by "usermove"
- move not preceded by "usermove"
- move preceded by "..."
- move not preceded by "..."
New programmers should be reading only what is WBII w/o the WBI clutter.
The cluttered documentation of the protocol is the worst aspect of it. Most people that are scared of the protocol and think than UCI is simple (from the engine perspective) is because they are overwhelmed by unnecessary stuff.
UCI is not simpler, it just have a simpler documentation.
The 'usermove' is a very good feature, and in the Alien Edition it proved essential for letting engines that support a wide variety of games with different move formats reliably generate Illegal-move messages. Unfortunately it was not in the protocol from the beginning. I admit the cost of maintaining backward compatibility can sometimes be high. But that is nothing compared to abandoning it.
You probably know that better than I: I never implemented WB protocol from the GUI side. From browsing through existing WB code, I got the expression that most of the complexity comes from going the extra lightyear to cater to non-compliant engines. I don't really consider that WB protocol, and if I wre to write a GUI from scratch that supported WB protocol, I would certainly not do such things. (E.g. sending 'hard' before 'easy', using 'white' + 'a2a3' to avoid using 'black'.) Basically all the 'idiom' stuff mentioned in the specs is obnoxious, and I would abandon it without hesitation. The 'black' and 'white' commands are superfluous for engines that support 'setboard', and I would never send them to such engines. If there are egines that would not work because of that, it must mean that they implemented other commands in a way that violated the specs, and that would just be to bad for them. Out they go!... and move formats are not the only issue with WB.
Yeah, micro-Max is simple too. But it plays very poorly...UCI is simple.