Building Decoupled JS Applications With Postal.js
jcreamerlive.com
jcreamerlive.com
Backbone.on('got_weather', function...)
Backbone.trigger('got_weather', {})Completely abstracts away events and updating the DOM. It even tracks all the dependancies for you.
It's not a full-blown web framework, but that's part of the reason why we chose it instead of something like Angular.
I am curious to hear more from your perspective -- was your reason to avoid Angular for this reason based on disagreeing with Angular's philosophies, or do your use cases not require this sort of "full-blown" web framework? Or something else entirely?
For example, we use Sammy for client-side routing. However, if we decided to ditch it and use something else in the future, it wouldn't be a huge effort to do that, theoretically. With something like Angular, though, it's their way or the highway, usually - you couldn't use a different routing system if you even wanted to.
This lets us pick and choose with the style we want instead of having to 'fight with' a tool trying to work around parts we don't like.
I don't know, I've also felt like recently we've been re-inventing the wheel to get all this stuff to work together anyway, so I'm not 100% sure of the value of our choices, but it's a conscious choice we made early on in any case.
They do a great job of getting you to 80% of your goal REALLY fast. The next 10% takes some work but is doable. But that last 10% is so hard you inevitably want/need to throw away the framework and write it from scratch.
Think of the Unix philosophy. Many small tools that do one thing but do it really well. Use those small tools in conjunction with each other and you have a very flexible, loosely coupled, and powerful system.