Chess engine controversy
In this week's The New Yorker, James Surowiecki calls Apple's launch, next week, of the expensive iPad 'a fundamental gamble, namely that people will pay for quality'. In today's world, free (digital) stuff is indeed so easy to get that it's increasingly difficult for companies to make money with new technology. Think downloading movies and music; think installing a cracked version of Office or Windows 7. But what if something of equal or better quality can be obtained legally and for free? Like... a chess engine?
Rybka
Like almost all serious chess lovers, here at ChessVibes headquarters we're big fans of the Rybka software, which is relatively cheap and will for sure be your strongest chess coach ever. Recently, however, a chess engine was released on the internet which is claimed to be even stronger than Rybka's latest release... and it's totally free. Welcome to the world of open source software, and its many complicated discussions and controversies.
Firebird
Firebird is an open source chess engine developed by a team of anonymous Russian programmers who call themselves the Decembrists, after the well-known uprising in Russia in 1825. It's part of a whole family of chess engines called IPPOLIT. It was released in October 2009 with its source code. In other words, the guys who made the program didn't care if others found out how they did it - they share their 'code' with the whole world. (Update: See Vincent Diepeveen's lengthy comment for more details on the background on the Firebird-programmers. As Russian translator Paul Janse notes, Ippolit Matveevich Vorobyanov is the name of the anti-hero in Ilf and Petrov's famous novel The Twelve Chairs.) Firebird is slowly but steadily gaining in popularity, not only with hardcore chess computer fans but also with strong chess professionals. The reason? Not only is it completely free, but it's also allegedly stronger than Rybka. Various comparisons on the internet between Rybka and Firebird have suggested that Firebird may be some kind of improved Rybka, although nothing is very clear here, either. (According to a small survey among the ChessVibes editors, we found that Firebird does seem to reach deep ply levels a bit faster.) At the recent Amber tournament in Nice, ChessVibes asked two leading Dutch grandmasters, Jan Smeets and Erwin L'Ami (who happen to be on Veselin Topalov's team), whether they knew about the Rybka/Firebird developments, and what they thought of it. Here's how they see it:
Smeets: I read on some forums that such a clone existed, I think this was in October last year. I think I read it at the Rybka Forum. However, there it wasn't allowed to mention the name, but if you Googled it it was easy to find. At that point it was Ippolit. First it was Ippolit, then Robbolito, then Igorit. Robbolito was a one-core engine, but quite a strong one-core engine, so you could run it simultaneously with other engines. Igorit was the first multi-processor engine but I think that one was a failure. And then came Firebird, which was a combination of Robbolito and Igorit, and this one was good. I use many engines, because it's good to vary. L'Ami: One day I entered his hotel room, during the Corus tournament, and I saw all these strange, crazy names I had never heard of. But now I know that currently everybody uses them. Smeets: Yes, many, many players use them. It's also a popular subject on the ICC for example. But it doesn't make a big difference, you know. These programs are so strong these days. I think they're all playing at 3300, 3400 level so fifty points weaker or stronger doesn't really matter.
Controversy
So what's the deal with all these new engines? Is one really stronger than the other, and how does it matter? Well, here's where the controversy begins. Right afer Firebird was released, a statement appeared on the Rybka forum site (Smeets also refers to it) in which Rybka's creator, Vasik Rajlich, officially declared:
There was an open-"source" (using the term loosely) clone of Rybka 3 released in the spring. Unlike the last time, there was no real attempt to hide the cloning - the hackers were even kind enough to keep me updated via email.
Rajlich alludes to a previous confrontation with Russian open source progammers - or 'pirates' as Rajlich calls them - back in 2007, when the open source engine Strelka was released, which was, according to the Rybka team, suspiciously similar to many features of the Rybka 1.0 engine. Here's the relevant background from the Wikipedia-article on Rybka:
There were allegations that Strelka was a clone of Rybka 1.0 beta, in the sense that it was a reverse-engineered and slightly modified version of Rybka. Several players found Strelka to yield identical analysis to Rybka in a variety of different situations, even having the same bugs and weaknesses in some cases. Osipov, however, stated repeatedly on discussion boards that Strelka was based on Fruit, not Rybka, and that any similarities was either because Rybka also was based on Fruit, or because he had tuned the evaluation function to be as close to Rybka as possible. With the release of Strelka 2.0 beta, source code was included. Rajlich stated that the source made it "obvious" that Strelka 2.0 beta was indeed a Rybka 1.0 beta clone, although not without some improvements in certain areas.
Rybka & Fruit
An important aspect of the whole argument is yet another accusation, this time from the Russians, namely that the first release of Rybka was itself largely based on the open source engine Fruit, which was released in 2006 and is now a so-called freeware program (not to be confused with open source software!). In a lengthy, very interesting video interview Rajlich gave to Nelson Hernandez last year, he didn't really answer the question as to which open source programs initially influenced the development of Rybka the most:
Hernandez: What chess engines in public domain, when you got started, had the biggest influence on the earliest versions of Rybka? Rajlich: Well, actually I started in a kind of strange way. I printed out just about every single paper there was to print out about computer chess; all these academic papers. A lot of them are interesting, a lot of them are just really relevant, actually. (...) So I kind of started to work through that, that was how I started. Probably it's not the most efficient way to do it. Probably the most efficient way is to take an open source program - at that point it would have been Crafty - and just kind of go through that. And I gradually worked around through that. (...)
Those interested in the gory details of the allegations might also want to read the IPPOLIT Wikipage, which includes statements such as:
- Rybka's piece square tables are generated from the same code as Fruit's.
- Rybka's pawn evaluation is virtually identical to Fruit
- Rybka's "pattern" evaluation is virtually identical to Fruit's
These are, well, interesting claims, which suggest deep code-researching, but unfortunately, the website contains mostly stuff like:
In the this the prominence of the Revolution versus unto the Capitalists obliges with the stroboscopic clarity unto the final victory. For the Revolution: anonymous for with the philosophics. For the Capitalists: anonymous or plus known (too), in with the conveniencings.
Such incoherent nonsense makes it considerably more problematic to take the claims from the IPPOLIT team serious, and it's probably one of the reasons why Rajlich is so fed up with these guys. Anyway, the net result of all this is that the IPPOLIT-article on Wikipedia has now been deleted and accusations of censure and even some far-fetched global conspiracy theories are suddenly all over the internet. On the Rybka forum and even on other chess computer sites, all discussion of IPPOLIT software are deleted or banned, causing even more anger with the 'Decembrists' and their supporters. And they seem to have a point, as this aborted discussion on Talkchess.com shows.
Evidence
One thing that's clearly lacking is concrete evidence from the Rybka team that Firebird is, in fact, a true clone of Rybka - something that is, of course, required in the case of any serious accusation. But so far, the evidence has not been presented in a coherent way. In an intriguing and generally polite discussion on the forum of Chess.com, one defender of IPPOLIT react as follows:
[Rajlich] claims that the authors were in correspondence with him the whole time they were doing this. Show us the correspondence and maybe I will believe. BUT, (and thats a big but) reverse engineering is not illegal. For years there have been forums that have been trying to figure out how Rybka works by its playing style. That is also reverse engineering. All [Rajlich] is saying is that [IPPOLIT] uses ideas similar to Rybka. He can't or won't prove that these ideas are even in Rybka. And even if they are, Rybka is a five year old program.
The Rybka team itself apparently doesn't want to spend much time about it. In a brief reaction, Rajlich wrote to me: "These are all just decompiled Rybka 3 clones. It's pretty obvious from the Ippolit sources, any programmer will tell you the same thing." As a programmer myself, I must say I find his point of view understandable, because I know how hard it is to make good code, and how proud a well-written script can make one. Rajlich is also, obviously, tied to a highly successful commercial product with links to other companies and sellers. (You've guessed it - here's where the conspirary theories start to unfold.) On the other hand, it would enormously help resolve the controversy if some real evidence was presented by the Rybka team. This could be 'code snippets' (relevant fragments of code), or other striking silimarities in design, or even, as the above commenter suggested, quotes from correspondence with the IPPOLIT programmers. The problem, I assume, is that Rybka's code is not open source, and showing it as part of evidence against pirates may in turn compromise its integrity - and this time, it wouldn't be stealing. This puts Rybka in an unpleasant Catch-22 situation, which was no doubt gleefully foreseen by the Decembrists. But even apart from any technical discussions - what if Rajlich is right and Firebird is simply a Rybka clone - a product of piracy, that is - only stronger? Should we all stop downloading it just because it wasn't manufactured in an entirely 'fair' way? As another commenter on the Chess.com forum muses:
If they absolutely ripped off Rybka, then I would be happy to remove Firebird from my computer and purchase Rybka 3. No big deal. I've got the money and want to support software developers, as I have always done in the past in the field of music. Music software is far more expensive. Several of my music programs cost between $250.00 to $500.00. One product requires a $100.00 upgrade fee each year to stay current. I don't use cracked software.
Not worth it
That sounds very noble, but how realistic is it? Perhaps hardcore computer programmers have some sense of professional ethics, but what about pro chess players like Jan Smeets and Erwin L'Ami? Can they expected to be that honest as well? Aren't they right to be just interested in the best available chess engine and compare them, use them all to their own advantage? Here at ChessVibes headquarters, we're in serious doubt. We're very sympathetic of Rybka's cause, simply because it's such an outstanding and cheap product. Rajlich wrote to me he very strongly believes in having a positive message:
Rybka 3 doesn't even have normal copy protection. Future versions of Rybka will be available over the internet - users will log into PlayChess or ChessPlanet [or ICC or FICS - ed.], and their analysis will run on remote machines, like with cloud computing. This has a lot of nice properties - continually updated Rybka versions, possibilities for shared analysis, hardware power available from traveling devices like Pocket PCs, iPhones, flexible hardware availability, etc. It also has the side effect that it stops all software piracy - these now-ancient problems from two years ago won't be repeated.
That's great news (and the idea of online engines is controversial in its own right) but it doesn't answer the moral dillemma whether we should use potential clones or not. We'd really like to give Rybka the benefit of the doubt, but at the same time we think that as long as Rybka's accusations are not based on concrete evidence, using Firebird as an interesting alternative isn't morally wrong necessarily. After all, as Surowiecki writes in the same New Yorker article, information (or, in our case, evidence) is also an aspect of quality - increasingly so, especially in our modern digital world. Perhaps most importantly, Jan Smeets makes an excellent point when he says it really doesn't make that much difference, unless you're going to hold matches between the two programs just for academic purposes. In practice, who cares if a 3300 rated engine or an 3350 one is assisting you in analysing your games? Such a trivial difference is simply not worth it to award potential pirates and mistreat the original programmer. We hope the whole matter will be resolved soon.