Breaking up with my Ext JS

Back in 2007 when I was exploring the possibility of making ShiftEdit I started looking for a javascript toolkit. I wanted a toolkit that could handle layout, tabs, windows, menus etc. I remember looking at Dojo, Scriptaculous, jQuery and then some others. None of them compared to Sencha's ExtJS3. ExtJS3 was forked from the YUI framework, it had all the components I needed and more. It had good documentation, plenty of extensions and an active forum for getting support.

ExtJS is available under a commercial and a GPL license. As they are using GPL and not AGPL I felt secure being able to use their framework legitimately without needing a commercial license. Even so I looked into purchasing a commercial license to support the company that provided a vital part of my app. Having looked through the license agreement I was taken aback by this line:

"you are not allowed to create applications that can be described as a development toolkit or library, an application builder, a website builder, or any application that is intended for use by software, application, or website developers or designers"

Seeing as this is exactly the kind of service I am providing I decided the commerical license was not a viable option. It struck me as odd that this would even form part of the license agreement, what are Sencha afraid of?

Using the GPL version has it's limitations. No access to the latest point release, so you end up having to maintain a bunch of hacks, even for bugs you yourself have reported. The framework code is not available on Github so nobody external to Sencha can contribute code back to the framework.

Some time later Ext JS 4 came out. A fair amount of code rewriting was required to be compatible with the new version. ExtJS had provided a useful compatibility mode to ease the transition but it still took some time.

Since then Ext JS 5 and now 6 have come out. The upgrade path looked anything but straight-forward and the most feasible option would be to start again and then import bits of my old app. It'd near enough require a total rewrite.

I noticed that newer Ext version were no longer being made available on Sencha's CDN. It seems the GPL version continues to be an outcast.

I looked again at the commercial license. This time the minimum purchase is 5 licenses, even if you only need one. It seems to me that there is something rotten happening at Sencha. They used to have several well-known developers (Ed Spencer, Brian Moeskau) who I respected but have since moved on. They even took developers off the team page and replaced then with corporate shills. They seem to be run by money men who are only interested in working with big corporations. I know longer see ExtJS as a viable framework for indie developers.

As I needed a rewrite anyway I looked into modern alternatives to ExtJS. I've decided to go with jQuery UI. While the jQuery UI components are very bare bone, they can be extended and should do everything I need. In fact the project should end up being a lot lighter with a smaller memory footprint. As I'm starting again from the ground up, it's a great opportunity to re-organise the code. I'm using requirejs to compartmentalise code into a more logical structure.

I'm excited about working with jQuery for a more demanding project as I find it very elegant to use. I'm keen to work with the jQuery UI crowd and hopefully contribute some good extensions and fixes back to the community.

I intend to post more updates as I work on the rebuild.

12/10/2015 permalink | Posted in web development | 0 Comments »

Bookmark and Share

About me

Adam Jimenez is a freelance web developer who has been professionally developing websites since 2000.

Find me