Lately, I’ve been working with web applications. I am always searching for the best way to write javascript and avoid the (in)famous spaghetti code.
The problem doesn't apply only to me, and that is because, gradually ,the popularity of the javascript frameworks has been growing.
One of those frameworks is Backbone.js, which in one and half years old. Over time, it has attracted the attention of many developers, creating a great community, and now that community achieved the first backboneconf a few days ago in Boston.
The speakers at the event really promised a quality event. The conference was small and sold out quickly. The expectation was great.
Jeremy Ashkenas opened the conference with an introduction to Backbone.js. Jeremy started talking about the reason of its existence and why many of the developers attending the conference were there.
The controversy began when Jeremy mentioned that “There is no typical Backbone app”, instead of a working example Jeremy gave us a kind of guideline that we can use when we are creating backbone apps.
I can highlight the following from his talk:
- Backbone is not MVC, it is MV*
- DOM Independency
- Driven by use cases
- UI Agnostic
- Statelessness as a way of life
The first day at BackboneConf, except for the introduction of jeremy, there was no talks about backbone.js. Many of the speakers talked about backbone alternatives. Yehuda Katz talked about Ember.js and Vojta Jina, a Google engineer, talked about Angular.js, two very interesting alternatives to backbone, each one with its advantages and disadvantages.
On the first day, attendants could realize that backbone.js is not the only solution to the problem and that each of their creators invented their own particular wheel.
The second day was more focused on Backbone. Many of the speakers showed us their success stories using backbone.js and how they extended backbone in order to achieve their needs. It was until that moment that I realized of the high extensibility of Backbone and that backbone is only an initial set of tools we can extend according to our needs, just like a diamond rock.
Another highlight of the conference was the interest of many speakers to test javascript applications. Brandon Keepers, from Github, gave us an excellent demonstration of how to transform a typical jQuery ajax call in a set of perfectly testables backbone classes.
Focused on design patterns, Brandon started splitting off the different concerns of the ajax call into separated backbone classes.
Brandon talk was an awesome demonstration of how to apply design patterns like: single responsibility, dependency injection and observer in order to have an easy testable javascript code.
The event in general was awesome, exceeding the expectations of many of the developers who attended. The conference showed us that, with the help of existing concepts in books since long time ago, like design patterns and developments strategies like Test Driven Development, javascript can actually be used as a real programming language.