Reader's questions: "What are your thoughts on ExtJS4? This version also follows the MVC pattern and while the framework is quite heavy, it can be interesting for large scale web apps"

Answer: I've previously looked into ExtJS4 before and there are actually quite a few teams here at AOL using it actively for non-trivial projects.

My initial thoughts on ExtJS were that it was unnecessarily 'heavy', however this has improved in recent years, particularly with the last release. The base framework for developing your application should be as lean as possible (which I understand it's always feasible), however with ExtJS there are a number of other reasons I opted not to use it personally.

Here are some pros and cons (which whilst not exhaustive, should give you some insight into my research on it):


- Very comprehensive documentation
- Active forums where users can get lots of assistance fairly regularly (this can't be said to hold true for all MV* frameworks or toolkits)
- As a structural solution it's both comprehensive and easily extendable
- A relatively complete set of widgets and components for RIA development
- Vast array of community-curated user extensions available
- The community regularly write tutorials aiming to solve common problems the framework addresses


- Size: It still has a relatively large footprint compared to modern MV* solutions that aim to provide a very small core/base (Backbone.js is < 9kb). These other solutions of course don't cover UI components for the most part (Dojo's Dijit does) but I would still expect something smaller for the core. Perhaps it would make more sense comparing ExtJS to Dojo in this regard? Dojo 1.6 has a < 30kb core (minified) whilst ExtJS4 has an 84-500kb core (minified) [reference:]. I'd love to hear from those using ExtJS4 more frequently what value their larger base offers.

- Complex output: ExtJS has a relatively solid data model and store setup but the output it generates from a UI perspective is imo, unnecessarily complex. This may be due to it's reliance on JS for generating much of the UI, something that can mean it's difficult to find the correct classes to style or generated markup to alter. You are afterall relying on the framework to generate something sane and flexible. When using any UI/widgeting framework, it would be nice to reduce the effort required to debug/locate items using any sort of DOM/Web inspector.

- Learning curve: It has a steeper learning curve than many of the other modern structural frameworks (I mention this as you referred to MVC). One can argue that if you're investing in ExtJS for the long-term this time spent learning will pay off, however I think solutions like it should aim to better minimize the time it takes to train teams up in using it. Some developers with experience in both have commented that ExtJS and Dojo have roughly equivalent learning curves (again, in the interests of maintaining fairness and balance)

- Debugging: This been a problem in the past, but got better in version 4. It is however still more difficult than any statically-typed language like Java (GWT). One could argue this is an issue for other JavaScript frameworks too however.

- Licensing: considered restrictive and difficult to understand by some. Developers have pointed out that more people would be investing in ExtJS if it was clearer what the upfront and long-term costs of using it are. This isn't a concern with some other structural solutions but probably isn't as much a worry for larger businesses.


I think at the end of the day as with any framework it comes down to investing time in researching whether the pros of using ExtJS outweigh the cons for your specific project. For more thoughts on Dojo vs. ExtJS (which I think is probably more fair here), see:
Shared publiclyView activity