While attempting to avoid joining the general debate, I can't help but to nitpick this statement. There is a BIG difference between reading a general statement, and looking at a piece of code implementing it. The code usually narrows the scope of the main concept into something that can be efficiently implemented. For most, the effect is that when they look at a piece of code they end up implementing something similar, while when they read a general idea there is much more diversity in the resulting implementation. Just a few example concepts, with no particular attempt to cherry pick tough ones:Rebel wrote: In the early 80's I got my hands on every instructive chess book that was available and TOOK everything that was useful and put that into EVAL. I don't feel I did anything wrong.
And now (anno 2011) the same knowledge you can freely download and I really do not see any difference taking GENERAL PUBLIC AVAILABLE KNOWLEDGE from books or from freely downloadable sources. That is of course as long as they write that learned KNOWLEDGE in their own code, as we did.
1. "passed pawns must be pushed"
2. "less pawn islands are better"
3. "quick development is less important in closed positions"
4. "keep the pawns shelter in front of your king intact"
5. "opposite color bishop endgames are drawish"
6. "bishops are better than knights if the knights cannot find good outposts"
7. "controlling the center is good"
8. "don't trade when you control more space"
Show someone these statements without code and the result is going to be much more diverse than showing them the code itself. This is particularly true for people that are not particularly strong at chess, since a strong chess player is more likely to look at code and generalize to the broader underlying chess idea than a coder without as strong a command of the related chess principles. Also, weaker coders are less likely to design efficient implementations on their own, and therefore more likely to settle on a similar implementation if they have seen one (showing a decent but not amazing programmer like myself an english description of SEE is very different than showing me Crafty's SEE code for example).
Even ideas that are stated with implied obvious implementations:
9. A rook on the 7th is worth a pawn
10. 2 bishops are worth about 1/2 a pawn
Are more likely to inspire diversity when stated in general than in code, since the exceptions and conditions that come to mind during implementation are more likely to be different when you have never seen a known effective implemented version.
NOTE: I am not trying to join a debate on what is right and wrong, I am just pointing out that looking at an idea expressed in code has a very different effect than something described in general principle. Obviously, I am not not arguing open source code should not be looked at, after all, the only point in being open source is to be looked at. Just that the analogy of reading a chess book and looking at source is not apt.
-Sam