Friday, April 25, 2008

Choosing an OSS License and the Ext-JS saga

The news that Ext-JS has, from one release to the next, changed from a modified LGPL to a GPL based license nearly made me fall off my chair. There have been many poor judged, and ill advised decisions made by software companies over the last few years, but this has got to be up there with the stupidist I've seen and I'm not even personally an Ext-JS user.

What they have effectively done is built up a community, taking full advantage of the open source model by accepting user contributions and patches and then turned around and kicked their own community up the backside. It is projects like Ext-JS that give open source a bad name. How can a company have faith in open source if the people behind it can't even decide how to license the thing?

When you start off in the software business you have to very early on decide whether you are an open source company or whether you are a commercial software company. If you choose the former then you need to choose an appropriate license. For platforms the GPL license can make a lot of sense (think Linux and Java) to prevent forks, force contributions etc. although I'm still not a big fan of it.

On the otherhand for libraries or frameworks only a few licenses make sense (Apache 2.0, MIT, BSD and to a lesser extent LGPL). With Grails we went for Apache 2.0 as one of the most liberal licenses out there. Once you've decided on the license as an open source company your job is the grow the community by attracting users who put faith in your product and the fact that its licensed in a liberal way. Those users would not come in the first place if you had a restrictive license.

By choosing the open source route you have made a decision as a company to promote the community driven approach. Of course this doesn't stop you from releasing a commercial version, you could dual license it as Ext-JS have done for those who want the comfortable feeling of paying for something. You cannot however, have it both ways you are either an open source company or you are not. Ext-JS seem to be stuck in 2 minds as to whether they really are an open source company, it is this indecisiveness that is going to see their community go elsewhere.

It is not like they're unique either, the Ajax framework space is super competitive and they've just dropped the ball and given their competitors a big advantage. My personally prediction on this one is that they'll lose a lot of users, probably to Yahoo UI and jQuery UI or possibly Dojo. Something else will soon come along to fill their space and soon they will have lost their competitive advantage, their users and all those license renewals.

24 comments:

Anonymous said...

What's so weird is that it grew out of extensions to the YUI in the first place. So some people left YUI for EXTJS, and now some of those defectors may in fact come back to the BSD goodness of YUI.

Stephan.Schmidt said...

"My personally prediction on this one is that they'll lose a lot of users, probably to Yahoo UI and jQuery UI or possibly Dojo. Something else will soon come along to fill their space and soon they will have lost their competitive advantage, their users and all those license renewals."

Amen. I'm glad I'm not the only one thinking this way.

http://stephan.reposita.org/archives/2008/04/24/more-cluelessness-from-extjs-lead-developer-jack-on-the-gpl-issue/

Peace
-stephan

ziegfried said...

It's also completly dramatically for me - since I've put a lot of work in Ext UI - which I can trash right now :( Damn!

Michael Easter said...
This comment has been removed by the author.
Stephan.Schmidt said...

"One could argue for its place in comp sci, business, or ethics."

Or chaos theory.

Cheers
-stephan

Marcel Overdijk said...

I'm not a license guru. But what the EXT faq state is when you modify their code, or extend it, that you have obligations under the GPL license. What these obligations are I don't know and was not bale to find them quickly, so if someone knows let me know.

I'm considering dropping out on the EXT plugin for Grails.

Elvanor said...

I totally agree with Graeme - this is shocking news. This is also sad as I wanted to start using ExtJS extensively in a new project. I did a small review of the available JS libraries out there, and ExtJS really seemed to stand out.

Not so much as an Ajax / general JS library (for this in my opinon nothing beats Prototype which is absolutely awesome - even if it comes from the RoR project, nobody's perfect ;). But as a general library for building rich web applications with widgets etc, ExtJS really seemed great. This is something that:

* Prototype does not do;
* Yahoo UI is seriously behind ExtJS;
* I don't like Dojo approach of non standard HTML to setup the widgets.

I saw that several people have already announced a fork of ExtJS. I wish them a lot of success, and if a solid fork emerges, I'll probably use it.

Anonymous said...

Sadly this doesn't surprise me. As an open source project, these guys were very elitest and not at all professional when it came to releases.

They released way too often, nothing wrong with that, but their releases often broke existing applications.

We used ExtJS in 3 projects, each of them stuck in their particular version because the next one requires significant engineering.

They are like kids in a candy store, always looking for next coolest sweety, ignoring all previous sweets.

I have since abandoned ExtJS and moved to Google's GWT.

grandfatha said...

Use GWT or Dojo and find a great CSS guy to fill the "slickness"-gap. You can create amazingly looking applications without ExtJS, it just requires more effort by the designer-guys ;)


Whatever the motives of Jack Slocum were when switching the license (be it good or bad), he has lost a lot of trust among professional developers.

I can tell you that I would not go to my PM/manager to talk him into buying Ext licenses. They have lost my trust and to me it is like ExtJS never even existed.

Anonymous said...

I don't get how you can be upset with a company for releasing their code under the GPL!!

This isn't about which license is better for FREE commercial development. If that's the case ASF, BSD, etc would would win hands down.

It clearly appears the old license had cracks in it, and it needed to be repaired. You might not like the GPL, but its as Open Source as you are going to get.

Graeme Rocher said...

@Anonymous

I have no problem with them releasing their product under GPL or with the GPL license for certain types of open source projects. That is I have no problem if they had done this from the beginning.

My problem is that they have led people along by pretending they have a liberal LGPL license, taking full advantage of the benefits that brings in terms of rapidly growing a user community, accepting user contributions and seeing excellent sub projects like GWT-ext spring up and then promptly turned around and slapped those same users in the face by converting to GPL.

If they had been GPL from the beginning no one would have been under any false impressions on what Ext-JS is and how its licensed and I can guarantee you they wouldn't have half the community they do now

Anonymous said...

I don't know if it makes sense to release a javascript library as GPL: javascript is already released to the client/customer, isn't it? So what's the problem?
If you wonder about the server code, it's neither linked statically or dinamically to the client javascript code, so you can release to whatever licence you want. Am I wrong?

Chrigel said...

Well, this news sure caught me on the wrong foot. I will stay with the LGPL version and see where it's going.

Anonymous said...

not to mention that the library was originally licensed as BSD.
Then converted to what they "claimed" to be LPGL but in reality was not. (it had additional conditions).
Getting criticism for claiming to have LPGL license when they haven't, they chose to move to GPL.
In fact, initially they were not even all the way GPL, adding limitation like "can use GPL license for non commercial use", then removed this limitation quietly.
This still may have been acceptable if they added a FLOSS exception like MySql does, instead they are interpreting using js on a web page as distribution that requires server side to be GPLed as well.

The damage they've caused by creating confusion goes beyond ExtJS project







This would still not be bad,

Georgi said...

At least they did it. Changed the license. Again.

Graeme, you are right in claiming that someone who does not clearly state what he wants is not trustworthy enough for a community of +35000 users. And no, I think that the GPL does not even state that something that runs over a network has to be GPLed at last. extjs may not ask you to GPL all your (server) code by using extjs. I think they do not know this fact. I think they are a little bit headless at the moment.

I like extjs. I wanted to buy licenses but I had to read "another license change" today. I am a developer who has to use frameworks, who has to pay bills and who has to look for the company he's working at. The following is what I think: http://www.dzone.com/links/extjs_when_open_source_kills_community_progress.html

Just my $0.02, Georgi

Anonymous said...

@Elvanor

I was planning to use ExtJS with Jaxer. Now I am reconsidering unless they re-add some sort of permissive license again. I haven't completely written off ExtJS yet. And I still want to use Jaxer. I am looking at Dojo again, jQuery UI, YUI, etc - but I am also looking at the new Javascript client-side toolkit of Echo3 beta1. It looks quite clean and you can create your app entirely with Javascript with no markup. That's one of the things which I loved about Ext was that I could code everything without HTML markup. I think you CAN do this with Dojo/Dijit as well but all of the examples I am seeing use markup. So take a look at Echo3 as well at http://echo.nextapp.com/site/

Anonymous said...

Also look at this example application: http://download.nextapp.com/downloads/echo3csjs/0.1.4/e3demo.zip

and it's main download page here: http://echo.nextapp.com/site/echo3/download

NextApp's Echo product originated as a Java-based web application server which supported Ajax and you coded everything in Java much like GWT. With this beta of Echo3 now you can ocde the UI in Java server-side or Javascript client-side. It is licensed under Mozilla public license, LGPL and GPL.

Unknown said...

Of course they want to make money, make money is fine but the chosen path (from liberal license to restrictive license) is ... ugly.

When I was developing ItsNat (a Java AJAX framework) I was clear with the license model, dual licensed AGPL/commercial from START.

http://www.itsnat.org

Anonymous said...

Hmmm. Seems to me people are overly willing to ascribe malice to what appears to me to be simple lack of judgement.

The ironic thing is that Ext changed their license because people were complaining about them using the LGPL.

As a business user, I could care less. As an end-user developer, GPL and LGPL are both open source, and there's no practical difference between the two for Javascript web libraries. What's the big deal?

The only people who have a reason to complain are those who want to use Ext JS as part of their own libraries. I suspect that's a vanishingly small number compared to Ext's target user base.

Anonymous said...

One other thing: I doubt they're going to lose many users at all.

Reason the first: most users really don't care about this at all. It's a tempest in a teapot frothed up by people who write libraries and want to use Ext as part of their own work. Not a big deal.

Reason the second: after doing an extensive comparison of the available options (Flex, Ext, YUI, jQuery, MooTools, Dojo, GWT, etc.) for my company, we came to the conclusion that Ext is quite a ways beyond the other options when comparing functionality, appearance, consistency of code, performance, robustness, and development methodology.

Combine both reasons and not many people are going to see any advantage in moving from Ext at all.

Anonymous said...

Scott A = Jack

Anonymous said...

I have recommended that library in my company, and used it in two projects. now it really put me into an awkward situation, I am considering replace it in my current projects, but it requires too much time, and i feel it's difficult to ask for help from my team members, since I am the one who brought the project into current situation.

Anonymous said...

healthSouth Koreapsychological defenseTomicapregnancyLove and marriagekeep thinhouseTwilightAnecdotebabyeconomy depressionautoYao Restaurant travelcareerbabyloveweddinghealthlose weightbeautygardening babyComputerpoisonous animalbaby smarterexcitation method

Website Hosting said...

Thanks for the nice post.