FAQ
Is the Cookbook PLT-specific?
As little as possible. If we had the technology to support multiple Scheme implementations without making the Cookbook very difficult to read we would do so. As it is, we have settled for the compromise position of
BeingPltSpecific.
What's with the CompilationCopyright? Why isn't the Cookbook totally free?
We want to get Scheme in front of people who normally wouldn't hear about it, and one of the best ways to achieve this is to get the Cookbook published and into bookstores around the world. We don't yet have a publisher for the Cookbook, so have taken the pre-emptive step of reserving some of the rights we think a publisher may want to protect their investment in publishing and distributing the Cookbook. We think the rights we have reserved are fairly minor, and we hope that any publisher we find will allow the book to be totally free.
Should the Cookbook be published we will consider several uses for the royalties:
- Start a non-profit foundation, for the advancement of Scheme, along the lines of the Python Software Foundation
- Donate the royalties to PLT or TeachScheme
- Waive royalties and decrease the cost of the book
- Offset the costs of hosting the Cookbook
- Spend the money on CDs (only kidding)
Why not license the Cookbook under the GNU Free Documentation License (FDL)?
The FDL is not a free license in the same sense that the GPL or
LGPL is. For an explanation of some of these issues, see
Why You Shouldn't Use the GNU FDL or the
Draft Debian Position Statement about the GFDL.
In particular, if the Cookbook were licensed under the FDL, it would place restrictions on the use of the Cookbook's explanations of code, in other free software. This would be true even if the Cookbook's Scheme code were dual-licensed under the
LGPL. By requiring that contributions of both documentation and Scheme code to the Cookbook be licensed under the
LGPL, we ensure that both documentation and Scheme code can be reused in other contexts which are compatible with the
LGPL, including as part of the source code of
LGPL libraries.
The Cookbook is primarily implemented using features of the
TWiki wiki, such as the ability to associate forms with wiki pages, and generate pages based on queries of page content and form data. In addition to this, the Cookbook uses a
Scheme code formatter, implemented in Scheme, to format all of the Scheme code that appears in the Cookbook.
Besides TWiki queries and some small patches to TWiki to integrate with Scheme, the Cookbook does not contain any custom script implemented in languages other than Scheme.
The
TWiki wiki is implemented in Perl.
None of the available
Scheme wikis provided all of the features which we considered important for the Cookbook, and we felt that it was more important to provide a usable Cookbook, than to "eat our own dog food" and delay the Cookbook while suitable wiki features were developed in Scheme. Features that were considered important, which were not available in existing Scheme wikis, were: user authentication (for tracking changes and discouraging wikispam); revision control (for data integrity and to simplify the job of the editors); and a large number of more minor features and configuration capabilities that have been battle-tested and refined over time in mainstream wikis.
The Schematics project includes the
MoshiMoshi? wiki, and in future, we hope to make use of it and other Scheme systems. Given the web-based nature of wikis, integrating code written in other languages is straightforward, as demonstrated by the
Scheme code formatter, implemented in Scheme, which is used to format all of the Scheme code that appears in the Cookbook.
The members of the Schematics project (
http://schematics.sourceforge.net/) created the initial Cookbook. Special mention is reserved for
AntonVanStraaten who hosts this site and has done all the system administration work in addition to many contributions to the Cookbook content.