Don wrote:benstoker wrote:Dann Corbit wrote:
If I take Houdini and binary edit it my own name, then I have made a wonderfully original program, because it is at least as strong as the strongest program in the world.
You think? Is that what Houdini is, then? A mere hexedit job? Really? If you bring your hexedit job to the First Loser Tourney and only come in as strong and not stronger than some other hexedit job, then no, I have no idea beyond looking at stdout whether your hack is original or not. But, I'll say it again and again, if your hexedit hack, for reasons known only to God, manages to trounce all other engines in a significant way (as Houdini has), then, I gotta hand it to you, brother, you got to be some kind of genius having created Top Dog with nothing more than a hex editor. That is freaking Original with a capital O.
This is your misconception and you are wrong about it. The analogy which is most appropriate is the marathon analogy.
Please, I think the analogies are, shall I dare say it, getting very anal.
Every reasonable chess programmer (who uses good testing methodology and is reasonable talented) can improve on Ivanhoe. For example if the Stockfish team started with Ivanhoe I am positive they would find some substantial improvements. So could Gian-Carlo, Vas, and ANY of the good engineers in computer chess.
And I certainly can see and appreciate how a serious engineer who takes pride in his own work would have little interest in simply fiddling with IvanHoe as a starting point. Though, I'm sure there are other respected engineers who would not recoil at the thought.
I wonder, what if somebody extracted some of the good stuff out of IvanHoe and submitted it for inclusion in Stockfish, saying up front "hey guys, I got this out of IvanHoe ..."? Should the Stockfish gang reject it?
We basically use a trial and error procedure. ALL of us have good ideas and we implement them and then test them. The ones that don't work we discard and the ones that work we keep. When we look at other peoples source code (which we do) we see things they did wrong - and if they looked at ours they would see things we did wrong. I could improve Stockfish, Houdini, Ivanhoe or any program you could give me and I'm quite sure all the top guys could do so too. As a matter of fact, look how quickly the already brilliant program Glaurung improved when the talents of others was added to the team.
However, improving a very strong program is not the same as MAKING a very strong program from scratch. When you start from someone else's best work, you start with all of the THEIR good ideas then you add your own to it. If you start with the very best program you have basically pushed your way to the front of the line and you take off from there.
I think there may be some kind of bifurcation of standards between the open source crowd and the closed source crowd. And I didn't realize that or fully appreciate it. After all, with open source, it is only expected that I would stand on the shoulders of giants. With open source I do get to jump in at the middle of the race and there's no problem with that. That's the whole idea of open source. Take other's work, improve it, contribute your improvements back. That goes on here in talkchess and at open-chess, where code for Stockfish is contributed all the time. I think it's done a lot in the open source world. Apple's Safari originated from the KDE Konqueror browser. They took it, improved it, renamed it, and, if I'm not mistaken, eventually contributed some of the code back - but I don't remember - they should have, if they didn't.
With open source, I can't fake it. Hex editors will get me nowhere and are pointless. With open source, I have to write the code and it's useless if it's not original and does not improve the program. With open source, people really do get to look at what I did. And if I have come up with a new idea that improves the science of computer chess, that idea is expressed openly and subject to scrutiny and peer review. That idea can be tested by others to see if results can be duplicated, and thereby confirming the advancement of the science.
Closed source is just different. Closed source is just a completely different game, isn't it? There's no community contribution. Indeed, code inspection is not just verboten, it becomes almost illegal. Closed source involves just one man or a close company of individuals working privately. How am I suppose to know when or if something original has been contributed to a closed source program? It's a black box.
Say you give me two closed source programs. You ask me to tell you if they are different. What can I do? I guess I'd first note the file size. I can whip out a hex editor. I'd could call up Dr. Hyatt and beg him to run these things on his cluster and tell me which one plays better. If there was a difference, and one was stronger than the other, then I'd know that much. What else can I do to examine a closed source prog? I'd look at its stdout output. Compare that. What else? Send it to BB and Zach and beg them to do some disassembly judo on it. What else? Ask the author? That's probably the last thing I'd do. Like the old rap song, "ya cant truss it."
Houdart dumps his closed source program on the world. It's another black box. If he's done nothing other than copy IvanHoe code and renamed it, then he's a joke. I cannot see the code. What do I do? Well, the file size is different. Somehow I manage to talk Dr. Hyatt into testing it. He reports back to me that Houdini crushes everything. I ask him, "how? what's new about it." He says, "Hell if I know. I got better things to do. Ask Zach." Zach calls BB and they spend a couple months doing their disassembly judo on it. They issue a report. The conclusion is expressed in words like this: "there are enough similarities to say that Houdini is in some areas substantially similar, if not identical, to IvanHoe and in other parts substantially dissimilar." Thank you BB and Zach. After all that, I still don't really know much about Houdini, other than the glaring fact that it is significantly better than everything else.
And so although Houdini is clearly original in some significant respect, I can never know why or how. It's the best engine in the world that does not advance the science of computer chess one bit, since the knowledge of its improvement is private and secret.
Closed source engines are never in a race of Ideas. That's not their game. The Ideas expressed in closed source engines are unknown, or are only vaguely hinted at by their mealy-mouthed authors. I can go to the First Loser Tourney with my Hexeditorolito closed source engine and intone to the slobbering crowd that it employs my new Super Duper 4th Dimension Bitboards idea. That's nothing more than a stupid advertising slogan. It may not even be true. In fact, truth be told, I made it up when I was drunk. It doesn't even matter! Who cares? Because if Hexeditorolito trounces the competition, I go home with the prize regardless. Whatever I did to make Hexeditorolito win, nobody will ever know! Ain't that great? All I hope is that I can sell enough Hexeditorolitos before those annoying holier-than-thou disassemblers are on to me. Sound familiar?
Which is why ... closed source engines are only in it to win, to beat the other engines. The closed source engines can't say their race is about Ideas of computer chess ... ever ... UNLESS the ideas are EXPRESSED. Fabian's Ideas were expressed when he opened the source. And the science was advanced.
If any closed source author proclaims he's written an engine from the ground up that is all his, I really have no reason to believe it. My response is SHOW ME THE MONEY. Because, with a closed source engine, what the hell do I care what Ideas are inside the engine -- the author ain't going to tell me. All I care about is whether the closed source engine performs. Did it win or lose. Is it Top Dog or First Loser.
It does take a certain amount of talent to improve a very strong program, but you are completely ignorant about the process if you believe that is proof of genius. Houdini is a case in point. The day Robert Houdart put the sources to Ivanhoe on his hard disk and put his name on it, he immediately joined the ranks of the elite in chess programming. There is a discussion on the Ippolit forum about the changes he made to obfuscate what he had done, but the bottom line is that he STARTED from that point and then moved forward from there. So for as long as he didn't get caught, he had the best program in the world.
A more accurate way to characterize this is to say that Houdart helped build the best program in the world, but he only helped. He does not deserve top billing on the marquee, but people like you keep him in business.
Agreed. Houdart did something, who knows what, that deserves credit (that's what I'm saying). Agreed. He didn't do it on his own from ground up. And I would add he deserves discredit for taking an open source program and making it closed source. Whatever else is said, it's the best program. It's original in some significant respect, and it cannot be any more a pariah than any other closed source black box chess engine.