Saturday, April 26, 2008

extjs - when open source kills community progress

Two days ago, Jack Slocum from extjs announced a license change for the JavaScript/Ajax framework extjs ( The previously "dual-licensed" frameworks stays dual-licensed - for open source and closed source software. This is no real news, mainly only one letter changed, the letter "L". "L" like in (large) big. I recognized the change because I was on the page to buy 5 developer licenses. I am not sure to do so now.

GPL vs. LGPL - the difference

extjs 2.1 and later is licensed under the GPL now, earlier versions (up to 2.0.2) are under the LGPL. The "lesser" or better "library" GNU general public licence is less restrictive than the original GPL. In short words, the LGPL was created to grant the user of a program/framework the right to use it without giving the complete source code back. Using any GPL source code or part of it requires you to open source all your code, the LGPL only requires you to publish the changes you did to the LGPL-code. So using extjs in a, let's say commercial application, was okay until now.

extjs dual licensing model

Software development is expensive, to pay your rent you have to sell something. In the open source world often training, proprietary licenses, special programming or consulting is available from the "vendors" of the software, companies like RedHat show that it is possible to earn money with GPL-software if you have a good business model. extjs (additionally) used the approach by selling development licenses. It is forbidden to build a framework or development base from extjs unless you meet certain circumstances. Anyway, having the library under the LGPL granted you the permission to sell your own work with extjs built in. The new dual licensing model including the GPL passage now forces the developers to buy developer licenses. This is not a bad thing per se, as mentioned before, this is no problem for me. The problem is that I do not exactly know what I buy with a development license, which was no problem as long as the LGPL-fallback was effective. But now other questions are important: Can I give away extjs as often / where / when I want to do it? Are my customers bound to buy a developer license too, if they simply want to improve the JavaScript of my application or is my application then completely GPLed? Do I need to forbid this explicitely?

The consequences I: extjs and the community

Putting extjs under the LGPL helped to build the community which is very active, as seen in the forums of extjs. The word was spread, the framework used. And the product thrived and prospered from large companies and/or many programmers using it. Not at least because of the license. extjs is a good framework, but what is it good for if nobody uses or extends it?

Reading the forum at the moment is no fun. It reflects many of my own thoughts and worries about the future of extjs. Many people relied on the framework, built software with it, extended their own programs and are not sure what is happening at the moment or how the future will go on. This decision may kill the community, many users request a fork of extjs based on the last LGPL version (2.0.2).

The consequences II: extjs and the fork

"Forking" is a process where someone takes the open source part of a software to create a new open source project. One of the most known forks is Joomla, a content management system that forked from Mambo by taking the source code and advancing it from that base.

extjs up to version 2.0.2 - technically - is under the LGPL. In principle it is possible to take this code base and create a new branch (or fork) of it. Anyway, the old license too tried to avoid that by prohibitting derivative work that is a framework or development toolkit. But the download of the version 2.0.2 includes a LICENSE.txt which says that you may use the LGPL if you "Are using Ext in a commercial application that is not a software development library or toolkit, you will meet LGPL requirements and you do not wish to support the project" which is, in my opinion, not hard enough to avoid forking. The fork then needs to derive from version 2.0.2 and under the LGPL, thats all.

So it is GPL then, GPL is a good thing, why the hassle?

The uncertain future (any license changes again, anyone?). The imprecise actual commercial license (please, please, please, make it clear!). The community that will perhaps not forget or forgive and most certainly shrink from now on. The unknown handling/procedures, i.e. developing plug-ins for extjs (is it then GPL? Commercial? May I post it, because then its derivative work and I may need a developer license? If I submit the code, who possesses it - do I need to GPL my other code if I "use it back"?). This very last point - the uncertainty - prevents me from sharing my experiences with extjs in their forum at the moment.

I develop software and live for and from it. Ergo I pay for software that I need to do my on-a-daily-base-job. We integrated extjs and spent some hundreds of hours to develop (with) it, so we wanted to buy the licenses without any real need (because we meet the LGPL/extjs license agreement). This should have been a contribution for the excellent work of Jack Slocum and his team. But I am not willing and not obliged to support uncertain business decisions, especially when they compromise my own software and business. I'll stay with extjs 2.0.2 and keep an eye open to their policies. Or other frameworks. A pitty, I thought I do not need to do that for some two years or so.

Labels: , , , , , , , , ,



Anonymous Anonymous said...

Well, future will tell how corporations think of that. I dont think very good...

3:38 PM  
Anonymous Anonymous said...

You profit from their work, then think about purchasing a license (which allows you to distribute under a *perpetual* license). I know cause I bought one. Then what happened? They move to a real open source license intended for the open source community and you get cold feet. That makes no sense to me. The more I follow whats going on, the more I empathize with ExtJS's decision. Some of you guys are just too ridiculous.

9:50 PM  
Blogger Georgi said...

For your information: We did not profit from their work (yet). Our extjs-module is just getting used, that is because I wanted to buy the licenses now.

And of course we have to rethink our decision to use extjs in case it is GPL (i.e. as fallback). Either doing this or not respecting the viral aspect of GPL software. You must not use GNU GPL licensed software in closed source. I always respect that.

You write you bought a perpetual license which is fine. Then you surely have a license agreement when or when not (and under which circumstances) you are allowed to use the software. Please tell me! I cannot find enough information of that on extjs's page. What good is the perpetual license for? Does it respect the needs of my clients?

Maybe that this makes no sense to you, but it makes perfect sense in the business. I have to secure my interests, too. LGPL would have helped, GPL does not, the perpetual license has to be shown to my lawyer.

Just my 0,02$, Georgi

1:50 AM  
Blogger Daniel said...

Some time has passed and Ext, LLC reacted on some concerns of the Open Source Community.

To answer your question regarding the commercial license: It is a license bound to a developer not to a site/product/server. It is non-transferable. If you buy this license for your company, develop something for a client and the client wants to change the code after you're done, they have to obtain a developer license since they now are also developer using Ext Js. I don't think the license is imprecise.

Maybe you can communicate this licensing need by comparing Ext Js with Adobe Photoshop (I know, one is a framework and the other is a program - but read on). If you would produce something in Photoshop for your client and give him the result (i.e. the PSD file). He has not bought Photoshop from you. If he wants to alter the PSD file, he will need to purchase his own copy of Photoshop.

5:41 AM  
Anonymous Anonymous said...

wow! thanks for another great blog post!
Customized application development

6:06 AM  
Anonymous Anonymous said...

From where can i download extjs 2.0.2?
if you know, please write me to my email.

7:53 AM  
Blogger Nick Ace said...

Hi everyone,
Iam a also a developer, I would want to buy the license to avoid any problem, but first I want to make sure, if there is alternative cause Iam just a small time freelance which do not have yet the resources to buy such, the thing is, can I use EXTJS to develop my apps and I will not modify any of the ext package, but my web apps will be hosted in a webserver and only generate configs that will be use by extjs, this webapps will be then use buy the end user, its not downloadable, if i do this can I ask for a small fee for the service of my webapps without getting an issue with the license?

Hope any body would response Iam realy in a blur rightnow.


9:08 PM  

Post a Comment

Links to this post:

Create a Link

<< Home