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):Pros:
- 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 addressesCons:
]. 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)
- 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.Conclusions:
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: http://bockuscentral.com/gordonbockus/?p=9