They try and solve the same problem with different levels of abstraction. I've gone full circle from Vanilla JS, to Backbone, to big monolithic frameworks like Ember and Angular and I've come back to Backbone. I think Backbone provides the right level of abstraction for the problems it solves. Angular and Ember I feel create their own problems.
Maybe it's just because I haven't gone full circle yet, but working with Ember I really feel I can focus on the domain issues and creating a great app.
With Backbone -- and the bunch of BB extensions (Marionette etc) you need to be productive with it -- I find myself just maintaining and extending massive amounts of boilerplate code.