Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Thanks for this insight. Having no experience in these new JS frameworks, I'm going to eventually have to choose one, and based on recent HN comments I had almost dismissed Knockout since Backbone is "clearly" better. The points you raised are very informative and now I'm back to looking at Knockout.


See also my other comment below: http://news.ycombinator.com/item?id=3355963

I have to say that both frameworks have great supportive communities. As for features here's a very simplified comparison:

Backbone pros:

- eases code structuring with Models and Collections

- gives routing (history management)

- template engine agnostic

Backbone cons:

- Out-of-box UI support is weak.

- Binding plugin is weak

- No automatic dependency detection between the fields (I'm sure there are some external libraries to support that)

Knockout pros:

- first-class dependency detection and event model

- powerful UI bindings (be sure to check out custom bindings - they are very convenient and can make your life a lot easier)

- top-notch templating

- it's believed that MVVM pattern is more suitable for inexperienced developers and eases collaboration in team. My experience confirms that.

Knockout cons:

- No models, doesn't help you with project structure - you're on your own

- Model plugin is there but I can't compare it to Backbone, sorry. It does have synchronization with RESTfull backend.

- Tied to a specific template library. It's possible to integrate other templates with custom providers but I don't know how easy/hard it is.

- No routing support

I picked KO because I believe that framework should do the hardest part and it's ok if the easier parts don't get addressed well. When starting a project I asked myself what would be harder: deal with UI elements or with AJAX. UI seemed harder and Knockout addresses that a lot better than Backbone, so we went with Ko. My team loves it.

------------

Also these day you can pick both and get them running together: http://kmalakoff.github.com/knockback




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: