Once upon a time, I was a framework novice on Javascript. It was a time of great change for me and lot of freedom and power was coming my way in terms of front end development. As long as I had good reason and reasonable confidence in my learning ability, I could choose any tools I wanted. I had to transform the UI experience in an efficient and scalable manner, thats all.
In quest of the magic pill, the one that would solve all my problems, I deep dived into the abyss of internet. I emerged victorious and with three main swords. One called Backbonejs, another Angularjs and another Emberjs. But my quest did not end there. I could use only one of these to slay the elusive dragon of MVC. I relied on the internet and this time swam on the rivers of Stackoverflow, Quora and Blogosphere. I dwam for so long that I almost forgot my quest. With the grit that only a warrior can muster, I surfaced with shallow facts.
Backbonejs seemed to be everyone’s darling. I just had to unsheath and extend the classes and they promised me, it would be the best weapon in my belt. I decided on experiementing with it. A trial run is always required for any mastery right? I found the sword grew heavy with use. The grip slipped into jquery realm easily and I had to sharpen the blade many a times with plugins and I grew weary. A negative research brought forth various unanswered SO questions, various plugins required, sync problems and my heart grew heavy. I had put much effort when I could have began with something else.
I returned to the results bookmarked from my original quest. Ah, there they were, the mighty Ember and the mightier Angular. This would be a dilemma that I would quickly resolve because the date of my battles loomed nearer. Angular was forged at the hands of Google but Ember was crafted by the clever makers of Jquery. Angular had more tutorials but Ember was more on the lines of what I learned in Backbone. Angular wanted to bloat up my html, Ember wanted me to template everything. I made a quick cut decision, chose templates over direct binding and set forth fighting my wars with Ember.
Its been a year and my hand has found great familiarity with Ember. Urls are the root of everything. My routes dictate my application and my views can do anything I want them to. There was the dark corner of Ember-data which I happily chose to ignore substituting the familiar jquery ajax.
But I see that the world likes Angular now, companies love this tool, tutorials are abundant and more and more new users. In my comfort zone now and wiser with the knowledge that all the libraries had thier unique purpose in our ecosystem, I decided to try out Angular once more.

Its a fun thing, Angularjs. These were the few features I discovered in my little experiments. - An application is defined through html attributes.
- Angular has its own templating methodology by plugging more html attributes. I found it pretty easy to do.
- Routes can be injected into the controller and are explicitly defined to have controllers and templates. Ember detects controller based on route name convention and this worked well for me.
- Templates and Views were closely related to each other in Ember. But in Angular routes and templates seem to be related too. Nesting of templates seemed for me harder than it should be.
- Transfer of scope was kinda messy in Angular, while it was clearer in Ember.
- Testing seemed a first priority in Angular while Ember it is a recent addition and somewhat convoluted.

I have mellowed out on some of the framework wars because I have realised none of the frameworks are always easy or clear. I had added many hacks to Backbone to get things working and I have done some things in Ember that I am not proud of too. So, it doesn’t surprise me that Angular seemed confusing too and I will just have to get used to it to start using it consistently.

blog comments powered by Disqus


24 November 2013