Anyone here got a real try on sencha (the full package, including sencha architect) recently ?
Anyone here got a real try on sencha (the full package, including sencha architect) recently ?
It got enterprise traction because they were early to the game and promised MVC. They were pretty good for a while, but the other frameworks have passed them by.
The thing about sencha that makes them different is that they abstract away the html and css parts to a large degree, by constructing the dom programmatically behind an abstracted component api (e.g., a panel component has a title bar, several toolbars, and multiple child components laid out using border, anchor, column or any of the other layout systems). The upside is that the ui controls are richer than standard html controls and require fewer lines to do advanced things (like having a field with server-backed autocomplete). The downside is that html+css skills don't translate well, if at all. Instead of thinking in terms of dom updates, html templates and style rules, you think in terms of the component lifecycle, the container layout system and themes. The skillset required is extensive and specific, and the code is so deeply tied to extjs that no part of it can be reused outside of it.
Some people like it, some people don't. You can't fight the framework. You have to adopt sencha's architecture and component system completely, or you will have a painful time. We have had to invest extensively in training because the framework is so different from other js frameworks that new developers have a hard time learning it.
As for the whole she-bang, sencha cmd, sencha architect and so on. I tried those tools several times, but they always lacked maturity. The last time i looked at it is 2 years ago though, so they may have improved. Meanwhile we just use the frameworks.
Update: I realized I didn't actually say whether I would recommend it or not. I would not choose ExtJS again, but I would choose sencha touch again, despite the API's being so similar. I feel like the use-case of writing a mobile cross-platform app fits in well with the sencha architecture and api, better than other js frameworks. By contrast ExtJS isn't bad, but it's no better than the free alternatives like ember or angular for building traditional web apps, so I don't see the point in spending the money on a license if you're starting from scratch.
Now, I'm pretty negative on client-side MVC anyway (see intercooler.js) so I'm probably not a fair judge, but if I were starting a project today that had to have a large client-side footprint, I'd avoid ExtJS.
I will say that ExtJS looks great OOTB and comes with a ton of widget functionality when compared with other options, so if you want to get something done really quickly with, say, a tree UI, that might be a reason to look at them harder.
Compare Ext JS with something like Backbone and in addition to the way in which Backbone/Underscore helps you implement an MVC structure you've now got a whole host of UI widgets, a class/dependency system, an optional build tool in Sencha Command.
The things that you'd say were feature-matches from Backbone would be stuff like Controllers (and in v5 ViewControllers), but there's a lot of stuff (like refs) to help that work with the UI components. I'd say that where ever there's an equivalent feature in Ext JS it's going to be a lot more complicated!
This is a burden and a curse. Like the config system that was brought in for v4. Initially seemed like overkill, can occasionally be a godsend but when you're working on complex class structures can be a massive PITA.
On top of that you have the licensing costs and indeed the licensing itself which was something that put people off of Ext JS a few years ago when they changed it. Plus I suspect "enterprise" shops will be interested in Sencha Architect too, which bumps up the cost.
Sencha Command does wind me up a little bit because it feels like an opaque mess built on top of ant. I just wish they could use something like gulp and have each part be a little clearer. In fact if they opened it up to the community on github that might be enough, they're not charging for it so I don't see the harm.
ExtJS component life cycle changed a lot form 4.0 to 4.2 and they refactored the code to be more like Sencha Touch. I guess this is the preamble to ExtJS 5, and it confuses a lot of people.
Sencha delivers on cross browser compatibility, since their layouts are all done by JavaScript. Trying to add CSS layout on top of that will break a lot of things. This is the so called "fighting the framework" people in Sencha community calls it. ExtJS 5 lets you develop desktop/touch hybrid apps for touch laptops. With smooth scrolling driven by touch event and transition, they work on Android as well (where it doesn't have WebKit overflow scroll touch)