Ugly UCI

Discussion of chess software programming and technical issues.

Moderator: Ras

Joost Buijs
Posts: 1635
Joined: Thu Jul 16, 2009 10:47 am
Location: Almere, The Netherlands

Re: Ugly UCI

Post by Joost Buijs »

Guenther wrote:
Joost Buijs wrote:UCI was already popular long before there existed something like Fruit or Glaurung.
I never used the xboard protocol at all, I went straight strait from a CLI and my own custom GUI to UCI somewhere in 2000/2001.
Sure, UCI has it flaws but xboard is not perfect either, it is just a matter of taste.
Sorry, it was not popular before Fruit arrived. Actually it was a kind
of 'heard of' minority thing, far below WB and even CB(which is finally
dead since even the last remaining Fritz diversed from it, but it
was no free protocol anyway).
I can easily derive stats from my old site RWBC up to a certain year.
(of course only for released programs - everything else would be just speculation
anyway)

Just sort by release date and see for yourself until Fruit appeared ;-)
http://rwbc-chess.de/wb_chron_date.htm

Guenther
I guess it depends upon what world you live in.

Around 2002 Shedder and Fritz were the two most important engines in existence and both interfaces had already UCI built in.
For their own engines Chessbase used (and probably they still do) a proprietary interface that is nothing more than a DLL.
It is possible that there were a lot of amateur engines with xboard support at that time, but that was probably due to the fact that a lot of them were based on open source engines like TSCP and MSCP.
Roger Brown
Posts: 782
Joined: Wed Mar 08, 2006 9:22 pm

Re: Ugly UCI

Post by Roger Brown »

Joost Buijs wrote:
I guess it depends upon what world you live in.

Around 2002 Shedder and Fritz were the two most important engines in existence and both interfaces had already UCI built in.
For their own engines Chessbase used (and probably they still do) a proprietary interface that is nothing more than a DLL.
It is possible that there were a lot of amateur engines with xboard support at that time, but that was probably due to the fact that a lot of them were based on open source engines like TSCP and MSCP.
Hello Joost,

Fantastic statement.

I think you will find that less engines then were based on TSCP / MSCP, than are now based on Fruit, Stockfish, Robbo, Rybka (depending on where you stand on that issue) and Ippo.

*Is that one of the reasons why UCI is so popular?*

Your use of the word important is an expression of your perspective - to which you are fully entitled.

I just profoundly disagree with it.

Later.

*tongue still in cheek*
abulmo
Posts: 151
Joined: Thu Nov 12, 2009 6:31 pm

Re: Ugly UCI

Post by abulmo »

hgm wrote:The protocol specs do not require a GUI to interpret mate scores. If a GUI decides to print '100006' in stead of 'mate in 6' wherever it prints scores, that would be perfectly compliant, and reasonably readable. And engines that print 32757 would still get 32757 printed even in GUIs adapted to this mate-score spec, like always. Absolutely nothing gets broken by this, it is fully backward compatible, both for GUIs and engines, and there are no drawbacks for engines adopting this standard. In fact even those benefit on legacy GUIs, as 100006 is a lot more user-friendly than 32757.
Then rewrite the specifications, should means an obligation, not an option.
Richard
User avatar
hgm
Posts: 28354
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Ugly UCI

Post by hgm »

Seems to me that it is you who is playing with words, now. Of course I am not going to rephrase the specs in a way that would encourage active developers to not use this new convention.

The point is that engines that do not obey this directive will still work exactly as they used to work before. But that they would work better on WinBoard when they do make use of this extension of the spec to explicitly indicate to the GUI a certain score is a mate score.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Ugly UCI

Post by Evert »

mcostalba wrote: Modern italian is more similar to spanish than to latin, and of course both italian and spanish derive directly from latin (as many other european languages).
What is interesting is that we don't call Italian "modern Latin" or Latin "old Italian", whereas Greek is called "modern Greek" or "ancient Greek", but still essentially Greek. I don't know enough about languages to say whether there is more to this different way of phrasing.

The main distinction between Latin and ancient Greek is that Latin transitioned in a whole tree of languages, while ancient Greek simply progressed into modern Greek.
It is interesting to me that also english language, although not a strict derivative, uses many words derived from latin, although not in the common word, but in its similar scientific-scholars words, like:

milk - lactation (the latter is a direct derivation from latin)
home - domestic
water - aquatic
gold - aurific
soldier - militia
woman - female
book - library
senator (well this _is_ latin :-)
judge, law, etc similar juridic terms (also these are a very direct derivations)
English is almost a pidgin of half a dozen other European languages. :P
Well, not quite, but it's fascinating to me to see old English and see how much more similar it is to Dutch.
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Ugly UCI

Post by stegemma »

Evert wrote:[...]
English is almost a pidgin of half a dozen other European languages. :P
Well, not quite, but it's fascinating to me to see old English and see how much more similar it is to Dutch.
I've seen somewhere on the web a very old english text that were... just a slightly modified latin, transitioning to english. Italian is now so different to latin that we cannot just say that it is just a progress for latin. I think that JAVA is more similar to C++ than Italian to Latin, just to explain better what I mean.

Someone say that Spanish is the natural evolution of Latin (I think it was a poet who say that).

We can somehow think that UCI stay to XBOARD as JAVA stay to C++... and I like C++ more than JAVA...
Author of Drago, Raffaela, Freccia, Satana, Sabrina.
http://www.linformatica.com
abulmo
Posts: 151
Joined: Thu Nov 12, 2009 6:31 pm

Re: Ugly UCI

Post by abulmo »

hgm wrote:Seems to me that it is you who is playing with words, now. Of course I am not going to rephrase the specs in a way that would encourage active developers to not use this new convention.

The point is that engines that do not obey this directive will still work exactly as they used to work before. But that they would work better on WinBoard when they do make use of this extension of the spec to explicitly indicate to the GUI a certain score is a mate score.
I never say they do not work, I say they are not compliant. An engine that is always pondering whatever the hard/easy (what a bad syntax to turn pondering on/off!) command it receives will work like a charm, but can barely be considered compliant, and here in a somewhat annoying way. Not returning the mate score as specified, is maybe less annoying, but no more compliant to the latest specification.
Richard
User avatar
hgm
Posts: 28354
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Ugly UCI

Post by hgm »

An engine that ponders even when pondering is off is not compliant, as using CPU when you are not supposed to is an offense. When you don't ponder when the GUI says you can, it just means you are lacking a feature. This is perfectly allowed.

If an engine elects to have the GUI show mate scores 32769 - 2*N, rather than #N, it can do that. It might be crappy, but unfortunately it cannot be forbidden, for reasons of backward compatibility. It should not be encouraged in any way, however.

I make a distinction between compliant and 'state of the art'. Engines that do not make use of the newly introduced mate-score standard (or do not allow setting of their hash-table size through th ememory command, but requires the user to edit some silly ini file instead, etc.) are just not 'state of the art', and offer the user less comfort than they could have.

I think this discussion is just side tracking from the real issue: should a protocol be extended to allow things to be done that could not be done before, or should it remain eternally the same, because offering new possibilities would make engines that do not use these new possibilities look bad compared to the engines that do? It seems you want to argue for the latter...
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Ugly UCI

Post by michiguel »

stegemma wrote:
Evert wrote:[...]
English is almost a pidgin of half a dozen other European languages. :P
Well, not quite, but it's fascinating to me to see old English and see how much more similar it is to Dutch.
I've seen somewhere on the web a very old english text that were... just a slightly modified latin, transitioning to english. Italian is now so different to latin that we cannot just say that it is just a progress for latin. I think that JAVA is more similar to C++ than Italian to Latin, just to explain better what I mean.

Someone say that Spanish is the natural evolution of Latin (I think it was a poet who say that).

We can somehow think that UCI stay to XBOARD as JAVA stay to C++... and I like C++ more than JAVA...
Spanish is "evolved vulgar Latin", and I am sure Italian is derived from it too. They do not come from "classical Latin".

Miguel
Joost Buijs
Posts: 1635
Joined: Thu Jul 16, 2009 10:47 am
Location: Almere, The Netherlands

Re: Ugly UCI

Post by Joost Buijs »

Roger Brown wrote:
Joost Buijs wrote:
I guess it depends upon what world you live in.

Around 2002 Shedder and Fritz were the two most important engines in existence and both interfaces had already UCI built in.
For their own engines Chessbase used (and probably they still do) a proprietary interface that is nothing more than a DLL.
It is possible that there were a lot of amateur engines with xboard support at that time, but that was probably due to the fact that a lot of them were based on open source engines like TSCP and MSCP.
Hello Joost,

Fantastic statement.

I think you will find that less engines then were based on TSCP / MSCP, than are now based on Fruit, Stockfish, Robbo, Rybka (depending on where you stand on that issue) and Ippo.

*Is that one of the reasons why UCI is so popular?*

Your use of the word important is an expression of your perspective - to which you are fully entitled.

I just profoundly disagree with it.

Later.

*tongue still in cheek*
Well, where I stand is that I compare all these so called 'derivatives' with using doping in cycle racing.

I feel very reluctant to proceed working on my own engine because of this.

Every good programmer can produce a top engine within a couple of months or maybe even weeks by grabbing all the ideas from Ippolit/Robbolito and Stockfish, and I don't mean the plain copying of code.
Nowadays this seems to be common practice and even testing groups are supporting this, why would they care anyway.

Sometimes I wonder if there still is any use in developing an engine at all.