|
|
1.1 ! root 1: ! 2: ! 3: GNU Chess: Experiences Learned ! 4: with Communal Sharing ! 5: by Stuart Cracraft ! 6: (and contributors to the GNU Project) ! 7: ! 8: ! 9: Limited sharing has characterized the computer chess community ! 10: for the past two decades. Occasional research articles give hints ! 11: and suggestions for useful features, but rarely reveal the real ! 12: details of the critically important advances. We will here ! 13: describe an effort underway (titled "GNU Chess") to create a more ! 14: open and friendly environment of sharing. ! 15: ! 16: GNU Chess is part of Project GNU, a large-scale effort in which ! 17: the philosophical goals are far-reaching. We will not go into any ! 18: great depth about these goals as they relate to the larger pro- ! 19: ject, because these are described elsewhere [1]. However, we will ! 20: mention the basic issues and the changes we hope to encourage. ! 21: ! 22: The start of the GNU Chess project was a natural result of the ! 23: experiences gleaned in writing a chess program. While the author ! 24: was at a progressive academic location [2], he was able to con- ! 25: ceive the idea of a communal chess program only after much heart- ! 26: ache. During the period of writing the initial version (which ! 27: has since undergone many improvements and whole revisions), it ! 28: became clear that the best features and most useful hints, the ! 29: very best of the heuristics, were hidden and difficult to find in ! 30: the literature. ! 31: ! 32: Sprinkled across many books, research papers, magazine articles, ! 33: accumulated in the community, during the past 25 years, there was ! 34: literally a void of true, empirical programs. Locating usable ! 35: programs was difficult. Many programs were the result of academic ! 36: work in "ivory towers", and hence were inaccessible to the common ! 37: man. Other programs were sequestered in research think-tanks. Na- ! 38: turally, developers of commercial programs carefully guarded ! 39: their source in order to protect their investment. On the other ! 40: hand, a few chess program source listings had actually been pub- ! 41: lished, but these were not really very strong, often written in a ! 42: non-general language, and frequently more pedantic than practi- ! 43: cal. ! 44: ! 45: The idea of a reasonably strong communal program solidified. ! 46: When we refer to a communal program, we do not regard this as ! 47: public-domain software. Rather, we refer to a program which is ! 48: under the shared authority of a number of individuals, the prin- ! 49: cipal contributors. These individuals have experienced and real- ! 50: ized the positive results of a sharing community and the rapid ! 51: improvements that come through contributing in such a community. ! 52: Further, these individuals devote time and energy to coordinating ! 53: the contributions of other individuals. While they exercise a ! 54: certain editorial right, this is usually not exercised arbitrari- ! 55: ly; instead, a discussion is often undertaken. ! 56: ! 57: Eventually, a working C program that played chess was available. ! 58: The coordinating institution for Project GNU [3], accepted our ! 59: suggestion of inclusion of a chess program in the GNU distribu- ! 60: tion. Initial distribution of GNU Chess commenced in October of ! 61: 1986. Interest in the project increased rapidly. ! 62: ! 63: Contributions came in from many places and people. Interfaces to ! 64: X-windows and SUN-windows were donated, thus allowing very fancy ! 65: chess fonts on bit-mapped screens. Also, contributions involving ! 66: large portions of opening books such as MCO and collections of ! 67: master games were added to the distribution. Additionally, ! 68: tree-search modifications and heuristics were provided, and occa- ! 69: sionally even entire rewrites. ! 70: ! 71: The program advanced in strength by several USCF class intervals ! 72: during a period of less than one year. During this time, many ! 73: unusual features and enhancements were added to the program, usu- ! 74: ally under the coordination of two or more people, with one work- ! 75: ing in a distant-advisory capacity to the other. Frequently, gra- ! 76: duate students would give up significant time from their thesis ! 77: work to devote energy to contributing. Their corporate counter- ! 78: parts would often give up project time to make their donation. ! 79: ! 80: Contributors would often enter the project in a very forceful way ! 81: and then having made their contribution, learn the viability of ! 82: communal sharing once others had stepped in and contributed to ! 83: them, thus providing considerable reinforcement. Frequently, con- ! 84: tributors would then go into "hibernation" for a long period of ! 85: time, but most of them remained open to contributing and were ! 86: helpful when asked to reprogram their particular contribution in ! 87: a more recent version. ! 88: ! 89: GNU Chess has made great strides in relatively little time. It ! 90: has run on many different hardware architectures and has been ! 91: compiled by a number of C compilers [4]. A sampling of the com- ! 92: puters on which the program has run is: National 32032, Vax ! 93: 11/750, 8550, 8600, 8650, Motorola 68020, CCI 5/32, CCI 6/32 ! 94: (tahoe), Cray XMP. ! 95: ! 96: It is our belief that GNU Chess will stimulate graduate research ! 97: in computer chess theory and practice. When students are able to ! 98: easily obtain a state-of-the-art program in order to test out ! 99: their ideas, they will no longer need to reinvent the wheel. The ! 100: students will be able to investigate their research areas much ! 101: more thoroughly, because they will spend more time on the specif- ! 102: ic research areas they are concerned about. Basically, GNU Chess ! 103: "frees up" time in order to get on to more fundamental issues. ! 104: ! 105: We also feel that as other researchers gain trust in the GNU ! 106: Chess project, they will be more likely to release their results ! 107: directly and rapidly, through journal articles, or directly to ! 108: the GNU project, and in fact become contributors and join the ! 109: present list [5]. At the very least, a communal, ever-growing ! 110: program will encourage the few "closeted" researchers to be some- ! 111: what more open in their approach to disseminating advances. ! 112: ! 113: In whatever form it takes, the progress toward elaboration of ! 114: machine chess is ongoing, and we hope that GNU chess will be ! 115: helpful to the community. Copies of GNU Chess source and "book", ! 116: as well as additional experimental code are available from the ! 117: Free Software Foundation [3] or the author [6]. ! 118: ! 119: ! 120: [1] The GNU Manifesto, Richard Stallman, Free Software Foundation, Inc. ! 121: ! 122: [2] University of Southern California, Information Sciences Institute. ! 123:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.