After building several single-page applications with Backbone over the past year, I'm struck by a pattern: we're rediscovering problems server-side frameworks solved a decade ago. Memory leaks, state management, routing—these aren't new challenges. But solving them in JavaScript, in the browser, with no page refreshes, creates constraints that make old solutions inadequate.
Tag: Single Page Applications
Six months ago, Google released AngularJS 1.0, and the framework is starting to gain serious traction. After spending the last few weeks building with it, I'm convinced it represents a fundamentally different approach to client-side development—one that feels more like building desktop applications than manipulating the DOM.
The Mental Model Shift
Introduction
JavaScript applications have evolved dramatically over the past few years. What started as simple form validation scripts have transformed into complex single-page applications that rival desktop software in functionality. However, as JavaScript applications grow larger, they become increasingly difficult to maintain. Code becomes tangled, jQuery selectors proliferate, and making changes to one part of the application unexpectedly breaks another.
This is where Backbone.js comes in. Created by Jeremy Ashkenas (the same developer behind CoffeeScript and Underscore.js), Backbone provides structure to JavaScript applications by organizing code into Models, Views, Collections, and Routers. It's not a full-featured framework like some of the heavier options out there—instead, it provides the minimal structure needed to keep your code organized while staying out of your way.