With GNU Smalltalk 3.0 having just been released, there's a bit of buzz about it. But, I'd caution anyone who is contributing within the Squeak community on an ongoing basis to stay away from GNU Smalltalk.
The problem: GNU Smalltalk appears to be released under the GPL (which seems natural). The GPL taintedness of the code in the GNU Smalltalk distribution therefore would apply to any derived products. If you take something you create as a result of looking at GNU Smalltalk code, and put it into a Squeak distro, some would argue that this is in fact a derived work. It's no longer compatible with the current Squeak license, and taints the entire distro.
For example, let's say you like the Generators of GNU Smalltalk, so you look at how it's implemented in the GNU Smalltalk distro. Now you write the same methods (or close enough) and contribute it to Squeak 3.10. Oops. Now Squeak 3.10 is GPL-tainted.
So, while it's probably OK to look at the protocol and documentation of GNU Smalltalk, we must be very careful not to taint the contributed code by looking at the implementations. Keep a clean-room distance from it.
Ouch.
Damn GPL.
Update: My declaration resulted in quite a stir on the Squeak-dev mailing list. I think the best post that puts actual facts and findings to my warning is
one from Joshua Gargus:
LGPL code is completely unacceptable for inclusion in the main Squeak
distribution, and doubly so if it is code that the FSF holds the
copyright to. RMS was unwilling to elaborate on the interpretation of
the LGPL for image-based systems such as Squeak. In his view,
including a single LGPL class makes the entire image into a "derived
work" that can only be redistributed subject to the restrictions of
the LGPL.
Comments
I can grant that the interpretation of the LGPL is "unclear", but the citation in this post is absolutely incorrect.