I'm gratified that Bill Kerr has followed up on my concerns about Scratch Licensing and, after what I'd consider an impartial review of the situation, reached pretty much the same conclusion I have. Here are some quotes from Mitch Resnick's response to Bill's post:
* One key issue remains. We restrict the source license to non-commercial distribution. Our concern is that a company might make a slightly modified version of our source code and start selling it with a big marketing budget -- and with a different educational philosophy than our own. Such an effort could (via its marketing budget) gain much more visibility than our Scratch effort, and undermine our educational efforts with Scratch. I don't know if that's a significant risk. But we're hesitant to allow commercial distribution of variants of our source code, at least until Scratch is more firmly established in the world.
* In your post, you mention that you personally moved away from certain versions of Logo because they were commercial. So I would think that you would appreciate our efforts to keep Scratch non-commercial, and to avoid commercial competition at least for a while, as we establish Scratch.
* Like you, I am also concerned if the Scratch license "significantly restricts the distribution of Scratch to children around the world." But a well-funded commercial competitor could also restrict the proliferation of Scratch (and the educational ideas underlying Scratch). As I said earlier, I think the Scratch Team's goals are well-aligned with yours; we just have some difference of opinion on how to best achieve those goals. We will continue to re-evaluate our licensing policies over time, as we try to figure out the best way to help more people become engaged with Scratch and related educational ideas.
Let's start with the Logo question. My reading of the Logo (programming language) history is that the popular Logos of the 1970's and 1980's were commercial and proprietary, including the LCSI Logo, which I presume should be considered the canonical Papert Logo. Because these were proprietary implementations, what happened then was not forking off a common free codebase. What you got was a bunch of knock-offs, many just cherry-picking the flashy "turtle graphics" parts without the deeper aspects of the underlying Lisp dialect.
I don't want to be too glib about it being a mistake to not "open source" the original Logo -- they simply preceded the Free Software movement. We know a lot more about software licensing now than we did then. But we can speculate that a free Logo kernel would have strengthened Logo in its day, putting a real Logo directly in more kids hands as well as putting a more powerful language inside those knock-offs. Open source processes have been a raging success in programming language development, more than in any other application, and it is unfortunate that Logo came along too early to take advantage of that.
Getting back to Scratch: what if this happened:
A government agency, or foundation, or university makes a slightly modified version of our source code and starts giving it away with a big marketing budget -- and with a different educational philosophy than our own.
That's allowed under the current licensing scheme. In fact, a government has better than a marketing budget, it could make its evil Scratch fork part of the curriculum.
Setting that hypothetical aside, let's try to guess what they're really worried about. Let's say LeapFrog wants to market multimedia authoring and programming environment for kids, and they want to build it on Scratch. Here's what they can do now, by my reading:
- Get an earlier version of Scratch under the more permissive (BSD-style) license and do more or less whatever they please.
- Distribute the binary release of Scratch with whatever supporting materials they wanted.
- Modify the source release of Scratch and donate the IP to a shell non-profit. Sell books, hardware, etc., and distribute the software on a non-commercial basis.
- I think that given the weird nature of Squeak that you could distribute the binary of Scratch with a patch that either via an automatic installer or with some minimal user intervention would change Scratch to do whatever you wanted it to do.
In short, I think if an aggressive corporation really thought they could make a lot of money redistributing a version of Scratch, the current licensing provides plenty of holes for them to do so.
One last point that deserves some discussion: what's the role of educational philosophy in this, really? I for one would be happy if LeapFrog took Scratch, re-branded it, properly crediting the Scratch team, retained the original intent and philosophy and sold a zillion copies. Is the Scratch team against that? I don't buy the idea that a company would take Scratch and mutate it into something with a fundamentally conflicting educational philosophy. Scratch is a tall stack of obscure and obtuse (to most programmers, at least) software engineering built for a specific purpose. If you want something less powerful than Scratch, there are much easier ways of getting there than trying to create a neutered Scratch. It simply doesn't make economic sense. There just aren't enough Squeak developers on the planet to contemplate it. If someone wants a crappier Scratch, they'll write a knock-off.
What's annoying about all this is that the Scratch Team is making a cost/benefit analysis and deciding that an imperfect method of preventing an unlikely outcome which is potentially sort of bad, but doesn't affect them directly, that they'd rather prevent that than take advantage of the entire global free software community and distribution system, which actually exists, and gets stronger every day, with or without them.