Yesterday I talked briefly about my Agile session I'll be presenting at cf.Objective(). Today I'd like to give a quick mention to my Backbone.js session I'll also be giving at 9am Saturday the 18th. I'll admit, I'm a little nervous about this topic simply because it's farther outside my normal comfort zone. The push to improve myself as a developer and learn some front-end JavaScripting frameworks has been a recent and exciting one.

I've been developing for many years, but have long hidden back in the world of databases and back-end service layers. When I do code front-end code it hasn't always been advanced or elegant. I remember the first time I saw the concept of using JavaScript to make the HTML on a page dynamic after it was loaded. It was called "DHTML" and it looked really cool. If you wrote it in IE, it wouldn't work in Netscape and if you wrote it in Netscape... well I never bothered because I could never get it to work in Netscape anyway :)

Seriously though, that was well before "Web 2.0", and frankly I don't even know what "version" the web is at now but it's a quickly-changing landscape. More and more companies are adopting single-page app concepts that deliver very responsive and feature-rich web applications that allow you do interact as though you were using a client app.

We started using Backbone.js at my last job after we had written a few portions of the site that were heavy on JavaScript and Ajax. Our main issue was that the code became one giant file of intermingled functions, bindings, and jQuery callbacks. We weren't pleased with the readability or maintainability of the code and wanted something to help us organize the application. The biggest goals were to clearly separate display, data, and controller concerns. We looked at several frameworks including AngularJS and Knockout before setting on Backbone.js. It's not the only kid in the MVC JS arena, but it's a strong player and it allowed us or organize a re-use code while retaining the flexibility we needed.

I'm no Backbone.js expert yet, but I'm loving the journey it's taking me on and I want to share that with you. This session will be an introduction to the concept of JavaScript frameworks and client-side templating. We'll go over a sample app I wrote that demonstrates all the fundamental concepts you need to know, and hopefully a few people will be spurred on to dig in as well and start learning. See you there!