John Resig on ExtJS, the GPL fiasco and open source community style
Published April 28th, 2008 in GPL, Java, Open SourceIt seems as it does not end.
Reading a comment from John Resig, the (or one of the geniuses, sorry if there are more :-) genius behind jQuery, a library which was for some time a basis for ExtJs (beside YUI), irritated me a lot.
We (the jQuery project) worked hard with them to try and fix bugs and add features for an ExtJS integration layer. They turned around and built their own, specialized, library (removing the need for any of our work) and then mutated the licensing into this bizzaro scheme that they have now. We can’t, in good consciousness, even recommend their library anymore due to its very nature. On top of this they ended up hiring our lead evangelist to promote their work. I can’t speak for everyone on the team but I feel quite frustrated and used.
I’m speechless about the style of ExtJS. Without the not correct comments on my blog by Jack I wouldn’t believe someone could act this way.
I think you are missing the point. This has nothing to do with money, we are doing fine financially. It had to do with cleaning up what had until 2.1 been a hodge-podge of licenses that came out of necessity into a clean simple licensing structure that is aligned with what we expected all along.
says Jack. Sure it’s about money, everything could be clear - or to most people is clear - with the LGPL. No need to switch to the GPL at all. When it’s about being open source, switch to the ASL. And I find it highly irritating how Jacks kids are always dragged into this ydiscussion as in “my kids are waking up so I have to cut this short.” and “With my third child due, and savings running low”. I have no kids on my own but most certainly not drag them into a business discussion as an excuse.
Funny thing: “Ext JS is currently asking for input on two FLOSS exceptions to help make open source usage of Ext JS more flexible.” if this plays out like the switch to LGPL or GPL, hooray another episode in this mind boggling soap opera.
Update: “The intention of this exception is to allow for more liberal licensing of extensions, language packs, themes and open source developer toolkits and frameworks for Ext libraries under a variety of open source licenses.” on their blog.
Sure, because the more liberal the licenses of extensions are, the better it would be for the commercial side of ExtJS. Best to have the extensions as Apache licensed code and ExtJS to be GPL. The Ext LLC can reuse and resell the extensions without bothering. “(Note: this exception is not for applications and does not grant any exception for the library itself. A FLOSS exception on the libraries for open source applications will be addressed in the exception discussed in “Next Up” below).” This is so ridiculous and gives Open Source such a bad name. They hurt everyone who tries to make a living in the open source space.
This post is almost insightful as your last post on the subject.
“We (the jQuery project) worked hard with them to try and fix bugs and add features for an ExtJS integration layer.”
Yes, this is true. They did fix bugs in jQuery so Ext JS could run on top of it. The “add features” was making jQuery able to do animations of multiple css properties in a single animation thread (something every other library already did). I don’t see how this is “using” the jQuery project, if anything itis helping it.
It’s worth noting that I wrote the integration adapter, not them.
“They turned around and built their own, specialized, library (removing the need for any of our work)”
As stated above, I wrote the adapter. I also wrote ones for prototype and YUI and one where you didn’t need any adapter (maybe that’s the specialized library he is mentioning?). All he did was fix bugs in his library.
“and then mutated the licensing into this bizzaro scheme that they have now.”
Bizaro scheme? Our license now, as of 2.1, is the standard dual licensing model many open source companies use.
“We can’t, in good consciousness, even recommend their library anymore due to its very nature.”
I think this has more to do with jQuery UI than anything we did.
“On top of this they ended up hiring our lead evangelist to promote their work.”
Yes, we thought he did a great job and wanted to pay him for his work. Is this a bad thing?
Rey and I intentionally discussed jQuery and our mutual agreement was - even though he was working for us, he was perfectly able to continue what he was doing with jQuery. We didn’t see jQuery as a competitor and in fact I have personally recommended them on many occasions for use in web pages on normal websites.
–
As for the rest of your post it sounds so much like a conspiracy theory that I won’t even bother responding.
“I don’t see how this is “using” the jQuery project, if anything itis helping it.”
Think of it this way: Let’s say the Wordpress project came to us requesting some specific issues be resolved in jQuery so that they could provide jQuery as a default library (along with other libraries). We work hard to fix the issues and release. They then decide to go ahead and build a different library to replace the functionality that jQuery provides, marginalizing its usefulness (who would pick some other library when you could just pick the new default and be done with it). I would be upset with Wordpress for not communicating their eventual plans to us - especially since we diverted valuable time and resources to help them. That’s not to say that the issue(s) would not have been resolved eventually but that we had to divert from our normal course of action, produce results, and watch them become less useful.
“maybe that’s the specialized library he is mentioning?”
I’m referring to the default core Ext library (the one that replaces the need for other libraries and adapters).
“Bizaro scheme? Our license now, as of 2.1, is the standard dual licensing model many open source companies use.”
In Ext 2.0.2 the intermediary agreement that a developer had to agree to before receiving the open source license was highly non-standard and caused a lot of frustration (as you’ve noted elsewhere).
However, the situation has not improved much in 2.1: there is still a huge amount of confusion and frustration surrounding the use and interpretation of GPLv3 in ExtJS. A couple quotes:
Note that the GNU FAQ actually includes a special provision to discuss what is occurring here. By including the specified provision you can actually prevent what you mention, above (the viral leak of the JavaScript’s licensing into the server-side code). Leaving the license without the provision effectively makes it unusable in any corporate situation (and, really, in most personal uses as well). Since, as of right now, the ExtJS license page simply points to the default GPL, without the provision, I assume that ExtJS does not wish to honor it. This is a very important point and really defines the difference between using the GPL as a marketing tool (promoting “open source”) and actually using it as a reasonable means of licensing and development.
It should also be noted that the GPLv3 remains incompatible with virtually all other open source JavaScript libraries. This means that while ExtJS is fully capable of consuming code from other libraries (and placing it under the GPL) it is unable to contribute back to the general JavaScript community, which is a huge shame - and one that stifles innovation.
“I think this has more to do with jQuery UI than anything we did.”
No? jQuery UI was created because both the 1) Functionality of ExtJS (and similar libraries) was not sufficient for our users and 2) the licensing and restrictions provided by them were unacceptable for our users. Such as not being able to redistribute the images/css of the themes, for example (although, this is no longer the case with the new 2.1 release). The fact that portions of the code base were completely blocked from additional use only further confused the aforementioned licensing issues.
“Rey and I intentionally discussed jQuery and our mutual agreement was - even though he was working for us, he was perfectly able to continue what he was doing with jQuery. We didn’t see jQuery as a competitor and in fact I have personally recommended them on many occasions for use in web pages on normal websites.”
Absolutely - and we’ve appreciated that. It’s more a matter of being a good citizen in the world of open source development. If ExtJS was seen as a project then this would be as if the jQuery team actively sought out and brought on a member of the Prototype team. There’s no reason for actions like that in an atmosphere of sharing and collaboration (being what most open source projects provide). However, driving ExtJS like a corporation makes for decisions that are in the best interest of the company - not in the interest of the greater community.
All of this ties back to the larger point: ExtJS continues to consume to better the ExtJS users and the ExtJS corporation. When was the last time that ExtJS contributed something to an open source project? code? bug reports? Considering that it’s pretty much impossible for a project to take on ExtJS code, due to the licensing restrictions (it’s GPLv3 and no other JavaScript open source project is compatible with that license), it pretty much goes without saying that ExtJS serves as a black hole of innovation - it continues to consume and nothing escapes.
Ultimately it depends on what you feel the best direction is for ExtJS: Are you using the GPL as a way for users to ‘get a licensing scheme that works for them’ or are you trying to live up to its ethos: providing an air of openness and sharing, helping to better the development community at large? There is absolutely no problem with ‘trying to make a living’ or even running a business - but portraying yourself as a member of the open source community is quite disingenuous when, really, you’re in it in license alone.