Hacker News new | ask | show | jobs
by ark15 4368 days ago
Background - I have been using ExtJS in production systems since before they started charging for it (remember yui-ext?) I have worked with all of their major releases and am now dabbling in ExtJS 5.

It is obvious that OP has great deal of experience in ExtJS and JavaScript and his nightmare points are valid for his use case. Here is what I think about his nightmare points -

1. ExtJS shows an empty page if an error occurs somewhere - YES. This is a real nightmare. And no matter how much they try to make it 100% cross browser compatible, there ARE instances when the application will load in Firefox but not IE and vice-versa.

2. Abuse of divs - I do not see how this is a problem if you are using ExtJS as an application framework and not just a component library within your bigger application. If you are using ExtJS as an application framework, you are letting ExtJS render to the body and never have to directly deal with DIVs except in some cases through some inspector to understand what you custom css should override. (This is also getting easier with theme customization support in Architect)

As far as load speed is concerned I don't see it as a major issue but my use is mostly enterprise applications where it is OK for an application to load and respond slightly slowly as long as the functionality is robust, "always works" and there is look and feel consistency among different applications - all of which ExtJS helps me with.

3. Inline styles - This is not really an issue again for the same reason that if you are using ExtJS an application framework, you let it do whatever it wants to with the DOM. There is no reason to directly manipulate DOM and if you need to, you can always override or extend a component with a new/modified template that suits your needs. I do agree about the fluidity issue though but I feel it needs to be addressed at the framework level by providing more controls through the component/layout API. (flex attributes only help so much)

4. Steep learning curve - Absolutely agree with this one. I have had the chance to work with developers new to ExtJS on multiple occasions. One thing I have found is that the learning curve is much less steep if (a) the developer has some level of javascript competence i.e. understands prototype, closures, etc. (b) Is willing to look at ExtJS as a FRAMEWORK with APIs and is humble enough to bookmark and use the API doc as often as necessary. It surprises me that so many otherwise good developers refuse to frequently access API documentation before asking questions.

5. Licensing - Absolute nightmare. There was a big backlash against Sencha when they first introduced commercial licensing and thwarted the ability of other developers to develop commercial frameworks on top of extjs.

I am all for commercial licensing and heck (I was happy when they started charging for it), they should charge more if that's what will help keep their lights on and continue spending good effort on improving the product. But the problem with their commercial licensing is the built in "vagueness". Last I checked, a license is tied to a _particular developer_ and cannot be transferred to another developer so theoretically, each time a developer quits and you want to bring in another developer, you have to buy a new license.

Other two important pain points I face are -

1. Support - The best support you can get is from other users on stackoverflow. Even there, approximately 5K out of 15K questions are unanswered (I don't know how that stacks up against SO average). To put things in perspective, I stopped answering questions actively about year ago but I just checked and I am still listed in the topusers page for extjs on SO.

2. Toolchain - Architect and Cmd are good steps in the right direction but are not even scratching the surface of what a solid toolchain support should be like. I have a big wishlist for Architect and I believe Sencha Cmd is too much of a mess than it should be.

Overall, I am glad the framework exists, wish there were options out there but for single page enterprise web applications, I don't see any other rich js component framework worth abandoning ExtJS for.