So I started on EmberJS some time last year; after spending an inordinate amount of time trying to design a prototype with people located all across the world. Finally, after several dreary demanding iterations and lots of work, we finally agreed on an implementation.
One of the dev members suggested using EmberJS or backbone. Based on his review, backbone was the easier choice: it had more support, good documentation, lots of tutorials, books and thousands of stackoverflow questions (a good measure of tool/framework/concept popularity).
My own review confirmed these but I stubbornly stuck with EmberJS – I don’t know why, maybe I like challenges or maybe I just wanted to be different. Furthermore, my review revealed a few advantages of using EmberJS over Backbone so I dived into it.
I soon came to regret my decision; after a couple of tutorials, I seemed to be getting no where closer to understanding the framework. The problem was the volatile nature of the EmberJS framework, most tutorials would only work if you used the ‘matching’ framework release. The Ember team was most probably working themselves to the death to get it stable, however, for me, it was challenging, frustrating and annoying to use the framework.
Alhamdulilah I finally got it to work – my first attempt felt ugly and inelegant (add whatever else you like ) but it did work and that was fine enough for me. I soon fell in love with all the extra goodies and automatic help it provided; my colleague was soon inundated by my fawning; most probably he got tired of hearing me say ‘EmberJS is coooooooool’.
Organizing the application proved to be another challenge too; I had a huge ugly proliferation of files – controller, templates, views etc. RequireJS, an AMD loader provided a solution but not before nearly driving me crazy; I inadvertently swapped some parameters in the module specification and had to spent the better part of an hour trying to understand why the login object was a registration object. (Imagine trying to find out why a dog is a cat).
So after weeks of development and finally getting the app nicely running, I got another shocker. There was a new release of EmberJS and guess what? It was not backward compatible! To the credit of the guys though; the new release was awesome, had excellent documentation and was much easier but all I saw was the fact that I’d need to rework everything. All my sweats, efforts and tears were going to go down the drain just like that! No way!! I stuck with the old way and old api – it was much easier for me and upgrades aren’t compulsory.
I have learnt at least two things: one, if you use code that is in rapid flux then you are O.Y.O (ON your OWN) and two, stop testing the waters with your feet, just jump in! If you want to try something new, go get it done!
Back to the story; we did a system redesign again (yes, for the umpteenth time). I believe we are in good shape to do a great job now insha Allaah and yes we are upgrading to the latest EmberJS release – we have some veterans now.
Enough said, I have to get back to work :)
I like reading your blogs because you seems to be the only few devs i know open to other js frameworks, i understand that feeling, even now i think maybe i shud just abadon Dojo and go for one of this cool mvc libs. Switch parameters in the AMD callback function can be quite annonying, the sanest way to debugging such is using Google Canary, it reads the data in the closure perfectly. Firebug gives cryptic messages. love to hear more from you.
LikeLike
Oops forgive the “gunshots”
LikeLike
:) No one is perfect bros.
LikeLike
Awesome; I have never heard of that and will sure take a look! Thanks for the heads up and I am glad to hear you love my posts! :)
LikeLike
Ember is currently in Release Candidate. They have never made a full, supported release, so it’s expected for things to be in flux.
LikeLike
Yes, you are right but at least the API is frozen now and there should be no ‘unexpected’ surprises anymore.
LikeLike
nice read…on my to-do list is also to explore the world of JS especially for building single page web applications.
LikeLike
Great then, I hope to write on EmberJS next insha Allaah so do stick around :)
LikeLike
Have never tried Ember but will always go for backbone. The flexible routing system, easy integration with Knockout.Js (knockback.js), awesome control over client scripting is a plus for me.
LikeLike
You should; I actually haven’t tried backbone before though I did review it and should post my review soon.
Ember has a great router too and no need for extra mvc plugins :)
LikeLike
Nice sharing… Please consider following URL to avoid framework dependancy:
http://addyosmani.com/futureproofjs/
May ALLAH bless ease for U. Ameen
LikeLike
Ameen, jazaakumullaahu khayran; will surely check it out :)
LikeLike