The web is still suffering through a page refresh disaster. HTTP started with simple pages where full page reloads when navigating wasn’t so bad. Modern sites have boatloads of images, css, js and html files on each page that need to be requested each time a page loads and checked to see if the file has changed to re-download it.
It’s wasteful and slows down everyone’s experience with browsing.
The rise of client side MVC frameworks is a breath of fresh air in web development.
Ajax was just a stepping stone to this new web development paradigm.
There are many competing frameworks right now: Ember.js, Backbone.js, Angular.js, and Meteor.js to name a few. They provide several big wins for web developers: simplification on the server side (by removing the need for template engines, asset management, and a multitude of views) This also allows for greater performance on the server side since template rendering is generally slow and rendering a full page is no longer required. Web backends can be lean and optimized much more easily. It lowers the bar to get other more performant languages like Go to compete with Django and Ruby on Rails.
With an API first approach the front-end web development can be completely isolated. All front end files can reside on high performance, highly available and cheap hosting like Amazon S3 and CDNed around the world.
Done smartly the backend can be used against multiple front-end technologies: iOS, Android, Windows Phone, and desktop apps can all use the same API. It’s the best of both worlds. You get the superior feel of a native app while maintaining much of the code savings of consolidating business logic on the server.
From a testing perspective the backend becomes easier to unit test. CRUD interfaces and validations are simple to assert.