The Silverlight 2 Beta 2 licensing terms, while in no way guaranteed to be the same terms as the final license, have an interesting side-effect: they appear to prohibit developers from writing open source applications.
The relevant portions of the Beta 2 EULA are quoted here (my emphasis):
1. b. You may also use the software to design, develop and test sample code and programs that you (i) make available to other designers and developers in source code form as examples of how to use Microsoft Silverlight or (ii) deploy to end users for non-commercial purposes.
1. c. You may make your Silverlight applications available only on the following conditions: [...] you may not make available any Silverlight applications that conduct e-commerce transactions, that collect personally identifiable information or confidential data, or which are for hazardous environments that require fail safe controls; and you may not offer Silverlight applications on a commercial basis, such as under a paid subscription or on ad-funded web pages.
Those restrictions, which are certainly permissible (it's Microsoft's runtime, they can do whatever they like with it), have the interesting consequence of making it impossible to write open source Silverlight applications using Beta 2.
The reason is what's known as a restriction of use clause, or discrimination against a field of endeavor. If you recall, the Open Source Definition, the baseline standard for all open source licenses, reads:
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
Thus all open source licenses may not put further restrictions on the use of the licensed code. Yet the terms required by the Silverlight Beta 2 EULA do indeed include such a restriction of use.
In other words, if Silverlight 2 were released today under the Beta 2 terms, it would be a violation to write an open source Silverlight application.
To be clear, this says nothing about the final Silverlight licensing terms. In fact, we know they'll at least be partly different, as the Beta 2 terms expire "within 30 days of commercial release of the software, but in no event later than January 1, 2009."
Nor does this say anything about whether or not Microsoft intends to release portions of the Silverlight or .NET itself under an open source license, or whether they will permit open source implementations of the runtime (e.g., Moonlight). Interesting questions, but that's not what's being discussed here.
So how will the final licensing terms differ? Will Silverlight permit open source applications? I imagine it will, as it seems absurd in 2008 to release a web-based runtime that is hostile to open source. This will be interesting to watch.
Update: Okay, now I'm confused. Microsoft is distributing sample code for Silverlight applications under the Microsoft Public License, an OSI-approved open source license, which seems to be a violation of the Beta 2 EULA, for all the reasons listed above.
Can someone make sense of this?
Update 2: As suspected, this probably isn't intentional, and might get cleared up in the final release. I feel a little bad picking on Microsoft here, but it's better to ask about this stuff now than wait until after it is too late. I not so secretly want Silverlight to be successful -- I just want it to be successful as an open platform, not one that forks the web in proprietary ways.
Lauren Cooney twittered in reaction to this post:
@dalmaer saw that :)evidently that's not the case btw, and we're working on clarifying it. some pieces of silverlight are under MPL, so...
Let's wait for Lauren's clarification about the final licensing plans. (Though, there still seems to be a conflict with the Beta 2 EULA... Probably just an oversight.)