What would be a sane framework? Every one of them seems to have many pain points, and every other developper tells you should use X instead of Y because Z.
I specifically did not mention any names to not trigger flamewar. And mentioned Ember only in relation to the video.
For me personally it is Backbone (very minimal skeleton-like framework), view/binding library I like today (and can switch tomorrow) and routing I probably write myself for specific use case.
If this is too "low-level", next what I will check in "higher level" framework - as least "magic" as possible - i.e. explicit getters and setters with current state of Ecmascript, clear rules on how and when rendering happens, debuggable views (which often means views being compiled into JS.), being able to split large application in pieces which get loaded on demand without hacking/monkey-patching framework, being able to use jQuery if I want to, and not include it if I don't need it.
Sorry, no specific answer to your question, as I think it is problem specific, and even Angular can be used in some limited cases as it turned out.
One thing I've found while doing Android dev is that views should exist as an immutable collection of state (POJO in Java), and there should be some mechanism to inflate a view from that state. I'm not sure how Angular or Backbone deal with this, but that switch simplified the logic a great deal and made testing straightforward.
this is idea behind handlebars templating - ideally, no logic whatsoever and you just supply object with data to render. But in reality it gets more complicated than that and sometimes you need to debug templates too. Unfortunately, debugging angular templates is pretty much hell (mostly because of all the "magic").
The way Square's library Mortar handles it in Android is that you essentially have a Model-View Model-View-Presenter sort of situation, where your View Model is JUST your data, your View is JUST the view logic, and the Presenter takes care of knowing how to inflate/deflate the view. It's pretty clean if your design is clean but can get hairy easily if it isn't; that's a feature not a bug for me.
I would suggest an exercise which my senior suggested. Take a look at what very successful websites use. I looked at the code of Facebook and the simplicity of their code fascinates me.
The only thing they seem to use is react, a requirejs like module system combined with an EventEmitter. I still don't understand the need of three layers of abstraction on the front-end level. I would love to be proven wrong, but that seems outright over-engineering.
Don’t make the mistake of assuming there’s a “Right Number” of levels of abstraction. Their suitability is based on how clearly they help you interact with a system whose implementation you don’t care about.
That’s a totally human quality metric, which you can’t enumerate.
I wouldn't call PureScript a framework. It's a compile-to-JS language. It may be useful for people that already know Haskell pretty well, but I can't see why a Javascript developper would choose to use this language. It's a completely new syntax and way of thinking about programming, which you can't pick up in less than a couple of weeks at least, unless you are already familiar with a functionnal programming language.
For me personally it is Backbone (very minimal skeleton-like framework), view/binding library I like today (and can switch tomorrow) and routing I probably write myself for specific use case.
If this is too "low-level", next what I will check in "higher level" framework - as least "magic" as possible - i.e. explicit getters and setters with current state of Ecmascript, clear rules on how and when rendering happens, debuggable views (which often means views being compiled into JS.), being able to split large application in pieces which get loaded on demand without hacking/monkey-patching framework, being able to use jQuery if I want to, and not include it if I don't need it.
Sorry, no specific answer to your question, as I think it is problem specific, and even Angular can be used in some limited cases as it turned out.