From 4b6c0e31385f5f27a151088c0a2b614495c4e589 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Thu, 14 Oct 2021 12:47:50 -0400 Subject: initial commit, including theme --- content/posts/2008-05-15-don-t-use-extjs.html | 408 ++++++++++++++++++++++++++ 1 file changed, 408 insertions(+) create mode 100644 content/posts/2008-05-15-don-t-use-extjs.html (limited to 'content/posts/2008-05-15-don-t-use-extjs.html') diff --git a/content/posts/2008-05-15-don-t-use-extjs.html b/content/posts/2008-05-15-don-t-use-extjs.html new file mode 100644 index 0000000..80ad15f --- /dev/null +++ b/content/posts/2008-05-15-don-t-use-extjs.html @@ -0,0 +1,408 @@ +--- +date: "2008-05-15T07:26:16Z" +title: Don't Use ExtJS +--- + +

+A couple of years ago I recommended YUI and Ext (formerly +YUI-Ext). I've changed my mind. Don't use Ext at all. The Ext license +has changed four times since its inception, and each time the license +has become more restrictive.

+ +

History

+ +

Ext was originally created as an extension to YUI. It was +BSD-licensed, just like YUI. YUI-Ext added several sorely-needed +features to YUI. The most notable additions were a layout system, a +Tree View widget and a Data Grid widget (YUI has since added +each of these, although the YUI widgets are still less flexible than +their Ext counterparts). Eventually support was added for jQuery +and Prototype as well. The team dropped the "YUI-" prefix, and +YUI-Ext became Ext.

+ +

Ext 1.0 was relicensed under the LGPL. Although switching from the +BSD license to the LGPL is relatively innocuous, it is still significant +because the LGPL is more restrictive than the BSD license.

+ +

Eventually the Ext team changed the license again. The new license was +a custom license that granted conditional LGPL usage rights. Basically +the LGPL usage clauses applied, but only if you weren't trying to +develop a library or an Ext clone.

+ +

Confused? Yeah, me too. Here's the text from the old Ext "Open Source +License":

+ +
+ Ext is also licensed under the terms of the Open Source LGPL 3.0 license. You + may use our open source license if you: + +
+ +

A lot of open source developers were understandably confused +by this hybrid license. The biggest problem was that it wasn't clear +whether this license was compatible with other Open Source licenses. It +also wasn't clear whether Ext could be legally distributed with Open +Source software, since the license only granted LGPL usage rights, and +not LGPL distribution rights.

+ +

To address these complaints, the Ext team changed the license again: +the latest version of Ext is licensed under the GPLv3. This latest +change complicates things quite a bit for many users, as we'll see in +the next section.

+ +

Problems

+ +

The GPL is far more restrictive than the BSD license and LGPL. It is +rarely used for libraries, because the viral clause would effectively +the library from being used for any non-GPL software. In fact, these +problem were addressed over 16 years ago by creating the LGPL:

+ +
+ By 1990, it was becoming apparent that a less restrictive license + would be strategically useful for some software libraries; when + version 2 of the GPL (GPLv2) was released in June 1991, therefore, a + second license - the Library General Public License (LGPL) was + introduced at the same time and numbered with version 2 to show that + both were complementary. The version numbers diverged in 1999 when + version 2.1 of the LGPL was released, which renamed it the GNU Lesser + General Public License to reflect its place in the GNU philosophy. +
+ +

Who is affected by this change? In no particular order:

+ + + +

Things get even murkier when you consider linking and distribution. +Does generating a dynamic page count as linking to Ext? Does any public +web application automatically count as distribution? What about +applications which use Ext to and access a common APi, such as a SOAP +endpoint or RSS feed?

+ +

These questions were posted in a +thread about the license change on the ExtJS forums.
+Here's how Jack Slocum, the primary Ext developer, responded:

+ +
+

+ If you are generating any markup or javascript code via the server in a + page SPECIFICALLY designed for Ext, then that server code will have to + be GPL as well. +

+ +

+ For example: +

+ + + +

+ Like MySql and other GPL software the way to use GPL code without + having to license under GPL is to not bundle or distribute the GPL + code with your application. If you instead have the end user + (developer?) download and install ext js on their own, they are then + bound to the license and not you or your software. +

+ +

+ For those seeking an FAQ, we have defined and explained some of the + reasoning and license implications under these 2 pages: +

+ +

+ http://extjs.com/products/license.php +

+ +

+ http://extjs.com/company/dual.php +

+ +

+ It's worth noting that the examples given at the beginning of this + post are just my opinion and it is impossible for us to analyze + everyone's usage and say whether or not someone "complies" with the + GPL. That really is a task for an attorney or even someone with + better knowledge of your application and how Ext JS is used. +

+ +

+ In the end, we want Ext JS to be open source friendly and still have + a good business model in place to grow. The old Ext License was not + open source friendly and pretty much killed all options for use in + open source projects. That wasn't our goal so we had to address it. +

+
+ +

There are several problems with the statements above. The biggest one +is that the original BSD license and subsequent LGPL license had none of +this ambiguity.

+ +

In other words, the problem the Ext team is trying to fix is one they +created themselves. If that wasn't bad enough, the solution actually +hurts many Open Source developers far more than it helps.

+ +

In an attempt to clarify the situation for non-GPL Open Source +developers, I posted several questions in the Ext license thread. I +also created a post on Reddit about the license change and +summarized my questions there:

+ +
+

+ As of page 8 of the thread on the license change I have yet to receive a + response, simple or otherwise, to any of my comments: +

+ +

+ There's this comment: +

+ +
+ The new license prevents Open Source software that is using a + license other than the GPL from using Ext. Applications which use + popular Open Source licenses like the LGPL license, BSD license, MIT + license, and the Artistic license would be required to either + re-license under the GPL, carefully design their application to meet + the requirements in your post, use an older LGPL-licensed version of + Ext, or move to another library entirely. +
+ +

+ And this one: +

+ +
+ What about authors who which to provide their software under a + license that is more permissive than the GPL, such as the MIT or BSD + licenses? +
+ +

+ And this + one, which was directly in response to Jack Slocum, the primary + author of ExtJS: +

+ +
+

+ Hi Jack, +

+ +

+ I can see how switching to a license without exceptions would make + things simpler, but what about those of us who release Open Source + software under non-GPL licenses such as the BSD, MIT, and Artistic + licenses? +

+
+ +

+ I've been an Ext user since its inception as YUI-Ext, but the fact that + I cannot seem to get a straight answer to a simple question makes me + wary and extremely skeptical. +

+
+ +

John Resig, the author of jQuery and Processing.js, +responded:

+ +
+ It's important to understand that OSS developers are not their target + audience at all. I'm 100% certain that we'll never get a clear + response. They're using 'open source' as a buzzword selling point to + lure companies in, befuddle them with confusing viral licensing, and + obligate them (through the obvious balking that the corporate lawyers + will do) to get them to buy a full, corporate, license. It's very + sneaky, quite disingenuous, and paints a bad picture for open source + development as a whole. +
+ +

It's been over three weeks since these this exchange on Reddit. None of +my questions have been answered on the Ext license pages or in the +68-page license thread on the Ext forums.

+ +

Rationale

+ +

According to the Ext license page, Ext licensing is based on the +principle of "Quid Pro Quo", or "something for something":

+ +
+

+ Dual Licensing is based on the principle of Quid Pro Quo - + "something for something". In return for the advantages you realize + from using an Ext product to create your application, we require + that you do one of the following: +

+ + +
+ +

The justification for using the GPLv3 instead of the LGPL is addressed +on the Ext license FAQ page:

+ +
+ We considered once again releasing under straight LGPL but it was not + an option as a business. We tried that with version 1.0 and found out + quickly that it enabled others (e.g. large commercial entities) to + take our work, wrap it up and sell it as their own. With no mention of + us at all. We, as a business with a full time team of talented + developers, can not exist under those circumstances. We would quickly + become diluted and competing with ourselves. +
+ +

The concern about others taking their work and selling it without +attribution is particularly ironic, considering:

+ + + +

What do the projects above have in common? That's right, they are all +in the public domain or available under extremely permissive Open Source +licenses.

+ +

The Ext team is certainly entitled to license and sell their software +any way they see fit. However, it is hypocritical and dishonest to +complain about other people taking your work and selling it as their own +when you take other peoples' work and either sell it as your own or +relicense it under an extremely restrictive license.

+ +

It is tempting to attribute this entire fiasco to a simple +misunderstanding on the part of Jack Slocum and the Ext team. Here's +what I had to say on Reddit:

+ +
+ It is a bit disconcerting that Ext has such strong roots in existing + Open Source software, and yet the project seems at best partially + indifferent, and at worst, outright hostile to the Open Source + community. +
+ +

Unfortunately, according to John Resig, this isn't the first time that +there have been problems with the Ext team:

+ +
+

+ 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. +

+ +

+ They're providing a great disservice to the Open Source community in + general. They consume with reckless abandon, it's impossible to even + hope to borrow code from them, and they turn it all into a + money-making machine. No aspect of that sits well with me. +

+
+ +

Jack Slocum did respond to this comment on a separate blog. He also +wrote a post on his blog. Neither adequately addresses John +Ressig's main points or my questions from the Ext forums, so I won't +bother quoting his mostly vacuous responses here.

+ +

Conclusion

+ +

To recap, the reasons I recommend against using Ext are:

+ + + +

Some suggestions for the Ext team:

+ + + +

Finally, here are a list of Ext alternatives. None are as nice as Ext, +but they are all available under permissive licenses and they each have +an active and enthusiastic user community:

+ + + +

Comments are still broken at the moment. I've posted this article on +Reddit, so feel free to comment there.

+ -- cgit v1.2.3