Hacker News new | past | comments | ask | show | jobs | submit login
Javascript Framework Popularity graphed by Github Archive (caliper.io)
41 points by kalv on May 30, 2013 | hide | past | favorite | 19 comments



It's a damn shame that knockout.js [1] receives so little attention. Both in terms of not being included in the article, and if it had been included it would look quite poor next to the others (currently "only" 3750 stars). But it's a great framework and for some reason it's often overlooked in spite of other lesser libraries (e.g. spine, if we use the github stars metric)

First and foremost, it has excellent documentation. Everything is explained clearly on the site, and it's got a great interactive tutorial [2]. Contrast this to everybody (myself included!) moaning about the angular, ember docs etc.

Besides that, it's got deep browser support (all the way back to IE6!), two-way data-binding, plus it's intuitive and simple. In fact, combined with the excellent docs, I'd wager any competent dev could have the gist of knockout and be quite productive within an hour. It is also extremely easy to extend if you wish to plugin external functionality. Which leads to the final point - it plays well with other libraries that you're probably familiar with. e.g. I usually pair with Zepto, jQuery and/or AmplifyJS.

In the interest of being balanced, I must say it does have some bad points. The main thing for me is lack of architectural guidance. Nowhere is it explained the best practices for structuring apps. Nor is there any guidance on unit testing. You can, of course, work out all these things yourself, but why must the same problem be solved over and over? Set some conventions and be done with it! That said, there's a framework of sorts being built on top of knockout called Durandal [3] that aims to solve some of these problems. I've not used it yet, but it looks very neat. Also you'd be remiss not to check out Ryan Niemeyer's website [4] for lots of guidance and useful plugins (he's one of the core contributors I believe)

[1] http://knockoutjs.com/ [2] http://learn.knockoutjs.com/ [3] http://durandaljs.com/ [4] http://www.knockmeout.net/


There's also Derby, CanJS, Spine, Dart, Dojo, etc. and now Facebook's React library.

TodoMVC seems to have them all covered (except the latest one from Facebook): https://github.com/tastejs/todomvc http://todomvc.com/



Knockout's documentation I find severely lacking. It has no API reference whatsoever (short of reading the code, which I do not recommend). It just has a set of really comprehensive tutorials. Which is great when you're starting out. Not so much when you're trying to work out if ObservableArray.prototype.remove takes a function like removeAll does. (Or was it the other way round? dammit)


It is a good point, sometimes the finer details are lacking a bit. For instance the various helper functions under ko.utils (and there's a fair few of them) aren't documented at all.

However, you're not quite right with your assertion above. The docs clearly describe the params that both of those methods can take (remove takes a reference/value, removeAll an array or function or nothing)

http://knockoutjs.com/documentation/observableArrays.html#re...


Yes, I agree, knockoutJS is a brilliant piece of work. John Papa has done what I would call a really decent series of blogs in composing a Single Page Application architecture, you should have a read here : http://www.johnpapa.net/spa I think I am going to write a series also documenting the work I have been doing of late too...


I know nothing about knockout.js, but if you look at the Google Trends search posted below, knockout is a solid #2 after angular.


Interesting. I know MS push knockout quite hard (Steve Sanderson now works for MS), so maybe KO is doing well in enterprise? And through some selection bias, it's less likely to appear in discussions/articles on HN because of the demographic here.

Whatever the case, I'm happy to see that some portion of the internet is enjoying KO!


Knockout gets excluded by many people because it comes from the .NET ecosystem, but that's completely unfair. It's pure JS and has nothing in it that ties it to .NET or Microsoft in any way.

I just picked it for a new project. It's very, very clean and nice.


I definitely echo your sentiment. However I think you're slightly off in that it doesn't come from the .NET ecosystem. IIRC Steve Sanderson had released KO before he began working for MS. The affiliation you allude to comes from them pushing it quite hard since he was hired - as you would if you had Steve as your employee!

EDIT: good luck with your new project if it's your first with KO. If it is, let me know and I can give you some quick tips to get you on the right track


I know that KO was started before Steve Sanderson joined MS... I think the biggest reason it gets associated with MS is that it follows the observable pattern, and has a binding nature similar to WPF/Silverlight. That said, it's very usable.


Using Durandal/Knockout on our current project. Entire team is very happy.


That's good to hear, I hadn't seen any opinions "in the wild" up until you just said that! Are there any resources you can recommend for getting to grips with it?


I'm a big fan of Backbone. I'm used to do most of the scripting by myself and I don't like to mess my html data-attributes with javascript libraries. Also the source code is pure and self-explainatory, supports underscore and is used to be paired with CoffeeScript. Because of that, I'm pretty fast and flexible.


I was like you until i try Angular ...

Having an entire data driven view save loads of time,trust me. You can have complexe nested objects, and you dont have to worry about how the view will be updated. Change a value in the object , and the view updates. And Angular works very well with jquery plugins once you get the directive thing.

I still use Backbone for "brochure" sites and campains though, when i port old Flash sites to HTML5.


Google Search Trends between Javascript MV* Frameworks: http://goo.gl/ONZwe


I saw that earlier today. I wonder how much of that just indicates how many developers are searching for help on the framework :)


Yea I definitely believe that's the # of searches. I, for one, bookmarked backbone's API and never had to search for it


I wish there was also a (stacked) percent graph, to show relative growths.




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

Search: