I think this is naive.M ANSARI wrote:I agree, it is amazing that someone would go to such extremes to try to decompile a program. It would seem that someone who would put that much effort might better use his abilities in doing his own stuff. But then again Rybka is the strongest engine on earth and chess happens to interest "nerdy" types who would be proficient in such things and might see it as an interesting challenge. I really have no doubt that Vas already something much stronger as he probably understands his code better than anyone. Also he has much more experience in what works and what doesn't work. What I worry about is that in the next release there will be such an invasive protection scheme that it would decrease the overall strength of the engine. I think that happened to some extent with Rybka 3 but doesn't seem to have worked ... but then again much more sophisticated programs get hacked every day and I am not sure that would be the way to go. Maybe he can change his business model to having a sort of way where someone who buys an original engine is entitled to many updates per year, this way you are always ahead of the curve. Not sure how many would subscribe to something like that though as the computer chess freaks are very few in number.mjlef wrote:I find neither version hard at all to understand. I aso do not think they were decompiled since variable names make sense and are easy to understand. I donlt even need to look at an Italian dictionary since you can tell from what calls what the purpose of things. My guess is the authors merely looked at the assembly code from other programs and combined the best ideas of each in a new program. Is stealing ideas illegal or wrong? Well, I personally think stealing an idea without credit is wrong. But is it a copyright or patent violation? I assume Vas has not patented the ideas in Rybka, so probably not that. In any case, the computer chess market is so small that any profits a programmer makes writing this code would be totally gobbled up by lawyers if they even tried to sue.mcostalba wrote:As a programmer I can say that is _impossible_ to work an a source like the one posted.Volker Pittlik wrote:It shouldn't be to difficult for someone who does such ports sometimes. I'm not the one who can do it cause I'm simply missing a compiler for Windows.Dr.Wael Deeb wrote:...
One question though:
Can it be compiled for the Windows operation system![]()
However, Marco's comments about the mistakes in the Italian are interesting. What makes me wonder is that there aren't any comments in the source code. The speed how fast one forgets what he has programmed himself without comments is amazing. OTOH there are these tablebases.
vp
What I think is that there is one properly edited and commented source that this guy uses to develop and then when he has to post to public takes this 'good' source, strips comments, unify in one single big file, shuffles the formatting and gives it to the C preprocessor the result of this obfuscation process is what we see published on the site.
I could easily to the same with Stockfish and I would bet anyone of you to reconize the original from the obfuscated one although the functionality remains 100% the same up to the last bit.
I think he is doing like this to give the reader a bit of fun trying to understand what's in it.
If these programs are stronger than Rybka, I am sure with an hour of source code viewing, Vas could understand any beneficial changes. With all his work on Rybka 4, I have no doubts that he will be well ahead of these programs very soon (and probably already is).
Mark
(1) show me one program of any complexity that has _zero_ comments. The only ones I can think of were _not_ produced by humans, but were produced by decompilers where the comments are not a part of any executable and so cannot be retrieved.
(2) variable names are easy enough to come up with after studying the code. The first version had some stupid names that no "human" would consider using if they had originally developed the program, because we don't like to use variable names that take forever to type, and then type them over and over as we write code.
This code (ippolit/robbolito) is not something produced by human hands. whether it is a combination of decompiles from several programs or just one program is not something I would even try to answer without a lot of time, and since I really don't care, I'm not willing to waste that time to try to decipher its roots.
But anyone that thinks humans write code like that is simply being naive. Or disingenuous. or both.