The last week or so has been a stark reminder of how hard it is to do “Open”, and how the term itself doesn’t mean anything. There are many shades of grey when it comes to open. Let’s take a peak at what happened, and then try to come up with some tools to help us communicate what we truly mean.
Ext JS
This one has been talked to death. At its heart, the project originally had a license that was hard for people to understand. The “LGPL unless” clauses were unclear, and many thought untenable. At best, it was very cloudy.
After some people discussed the issues, mainly in private, with Jack we saw a new Ext 2.1 release until the GPL license (no more special clause). Some were unhappy about this, mainly because it was also unclear that the team actually said “we were wrong” and that these folks had a right to fork the project due to LGPL. Jack quickly came out with an exceptions clause and people are trying to iron this out.
SpringSource Application Server
SpringSource announced a new product for JavaOne, an application server. The Spring Framework itself is licensed under the Apache license, yet the new application server is GPLv3.
This caused a bit of a stur, as people were unclear of the difference, and I read a few posts saying that everything had been changed (which is totally untrue).
Marc Fleury came out of the biotech wilderness to comment on this all, claiming that this is just a packaging of the old stuff with a new license to kick into gear a new business model:
So voila, we now have a box drawn around an OSGi kernel, the Spring framework and Hibernate/Tomcat, and it has a name: it’s an application server. It is the same thing you had yesterday for free, except it is now under the GPL and a proprietary subscription license.
Rod and the team consistently argued that there is actually a lot of engineering here. One little embarrassing moment was in one of the TSS replies. Both Rod and Adrian replied to a message with the same boilerplate response:
Creating an application platform that makes the benefits of OSGi available to end users was a huge investment for us. There’s a *lot* of technical innovation under the hood which won’t be immediately apparent but which enables us to make a generational leap. If we’re giving that technology away in open source, we wanted others who build on it to also give away the results in open source.
When the community saw that, they thought that this was very much canned.
Adobe SWF / FLV Binary Specs
Adobe made a big PR announcement around the opening of Flash and more.
When you come out and say “now we are Open” it gets everyone excited. Their stock bumped up, which may or may not have been related to this (a lot of stocks went up at the same time).
I was ecstatic to see the news on the wire, because I think this will be great for the Web. If we could get Flash to be part of the Open Web, I would love to see it as a win-win.
Unfortunately, when I looked into the details, there wasn’t much to see. The claim was that the FLV/SWF/F4V binary formats will be Open, and there will no longer be the restriction that said you can’t RUN the code.
The problem was that there was no license to go along with this claim, which means that we can’t actually do much with it yet. Adobe isn’t more “Open” today than it was the day before the announcement. This will hopefully change very soon when we actually see the license, and hopefully see even more.
Time to learn
What did I learn through all of this? All of this licensing lark is about clarity and communication. I actually like all of the three parties here. I consider Jack, Rod and many Spring-ers, and lots of the Adobe folk as friends.
When it comes to licensing:
- You need one, please
- Please make it a standard one
- Be careful which one you choose first, as changing it later will cause a lot of issues.
All of the concerns have been due to communication through licenses and on top of them. The license is a great starting point, but it isn’t enough.
So, what does it actually take to be Open?
- 0 points: Say you are open
- 10 points: Choose an OSI license
- 20 points: Define the governance of the code, or the protocols / specs. If the spec gets a license that is great, but how does it get changed? Does Adobe hold all of the cards still? Can others participate? For code, who participates? Can anyone patch? Can you, and if so how do you become a committer? At the core: HOW ARE DECISIONS MADE
- 30 points: An reference implementation under an open source license
- 40 points: Where does the IP stand? Did you donate it to Apache or some other foundation? For an example, you can see Exhibit B: Patent Non-Assertion Covenant for the OpenSocial Foundation Proposal
Now, this can be a gradual thing. It is common to start at one end and then slowly move down the stack. It took some time to get the OpenSocial Foundation in place for example, and everyone involved is still working out the governance model.
Also, no answer is “right”. You can put code out there as open source and hold all of the cards. That is your prerogative. It is so easy for us to sit back and say “Oh come on Jack, just put it all out there!” or “Spring? GPLv3? Come on!” or “Adobe, just open source the entire Flash VM!”. These decisions have huge business ramifications, which huge potential consequences. You can understand how it is hard.
All we can really ask is to have the clear communication. Just be honest with us. Be clear with your intentions. The ramifications really do effect us too. I may get more involved in a project that isn’t just run by one company, where they can change things on a whim. If the purpose for using open source is more than the insurance of “if they do something I can fork it” then this stuff matters hugely. Some are in the game for insurance, but in general I think that people like to also get behind causes. They want to put energy into something they believe in. As soon as this happens your project has a part of us in it, and you need to respect that.
I am really excited to see a day though where SWF/FLV does have a clear license, thoughts on governance and how the community can get involved there, and frankly, guidance from Adobe on why they are doing this. Based on that information, people will get more or less excited. Others have already reverse engineered the Flash formats, and a Flash player that lives in the wild under full control of just Adobe means a certain kind of “Open”… one that isn’t very. I have belief that over time, the need and desire will push Flash over the edge. You only have to look at where things have gone with Flex, Tamarin, and other open source projects at Adobe. Macromedia is winning, and over time Flash will surely be open source, especially as Silverlight gets better.
The Peeps Don’t Care
Finally, I know that 99% of the developers out there may not even care, let alone users. There are open source wonks who like to argue about licensing and methodologies. As I watched the John Adams HBO series, I felt a little like those fine chaps arguing over the finer details of things. Many of the people didn’t know what was going on there, or why a particular Article was written the way it was. But, they had drastic implications for the people. I think that the same can hold here for some of the projects.
We need to pat backs when they deserve it, and hold the feet to the fire a little when the details don’t match the rhetoric. I can’t wait to see a better software world continue to grow over time.
May 5th, 2008 at 1:16 pm
Dion,
This is a great conversation to be having. A few questions in regard to this statement:
“The problem was that there was no license to go along with this claim, which means that we can’t actually do much with it yet. Adobe isn’t more “Open” today than it was the day before the announcement. This will hopefully change very soon when we actually see the license, and hopefully see even more.”
I’m curious what other open spec’s do for a license. I searched around at specs like HTML 5, XML 1.1, etc and couldn’t find anything more than a copyright notice, information on trademarks, and a typical “no warranty” statement. The SWF specification also contains these. So can you provide more information on what kind of license you think is appropriate for an open specification? What does it really mean to put a license on a spec?
Hopefully we can talk more about this while we are both at JavaOne.
-James (Adobe)
May 5th, 2008 at 10:18 pm
James,
The key issue is having a non-assert for IP. Without an intent agreement, if I write anything to your spec right now, I may infringe on your patents which you could sue me over.
If you look at exhibit B:
http://sites.google.com/a/opensocial.org/opensocial/OpenSocial-Foundation-Proposal/Intent-Agreement
You will see our intent agreement. You will also see a creative commons license for the spec itself, to be absolutely clear.
D
May 6th, 2008 at 6:23 am
Thanks Dion. I totally get that. Makes sense. But in the case of that agreement, it is not a license on the spec. So what you are looking for might be covered in a license on the spec (as I think you have mentioned that the GDATA Spec has a license which also states this kind of thing) or could also be in just some public agreement like Microsoft’s Open Specification Promise:
http://www.microsoft.com/interop/osp/default.mspx
or like Open Social’s Intent Agreement.
Thanks for clarifying this.
-James
May 7th, 2008 at 7:44 am
There is an open-source flash player called gnash that may benefit from Adobe opening the spec.
I think one of the main reasons Adobe opened the flash spec was because flash on Linux is an absolute mess, and they didn’t want to bother with it when an open source project can do a better job. Don’t quote me on that though.
May 8th, 2008 at 12:59 am
Dion and James…
What’s the verdict here? If you build your own Flash Player substitute you could infringe on Adobe patents and be shut down / attacked at anytime?? I’m not a licensing expert by any means, but I’m very curious about this.
Thanks!
June 8th, 2008 at 6:11 pm
Dion, James, and Andre…
yeah a substitute would be amazingly helpful for that, and for all of us who still have problems with the stupid registry crap and cant download the official version and cant find a substitute