[JavaScript framework wars] Use the force, read the source

As I mentioned in previous post, I would believe that Stack Overflow and Github could be the best resources for my concern that how is popular enough for the data to be representative. Stack Overflow could show me the number of questions with or without answers, because it indicate how the framework to be supported as well. The number of questions also indicate which framework is most used. Github – the coding social network that can show you the number of projects, and the number of stars on a project is indicative of popularity.

Github is the most popularity repository where you can find a huge number of OSS projects. Performing some basic stats about these projects could give us an overview that how Github users working for specific JavaScript framework, or track their issues  … We also know that most JavaScript frameworks are hosted on Github too, so we can look into the number of commits, repos,  it could give us some further insight into the stability of the projects.

Stack Overflow – where you can post various questions about programming. This site is more interactive, more social than any forum. The question, solution can be qualified by voting, de-voting. Looking into Stack Overflow statistic data that always tell you which JavaScript framework is most concern.

Finding statistic data on Github, Stack Overflow is simple than ever, because they are providing API, or querying capabilities right there on their site. But I prefer to use API rather than query data just by I am not an SQL expert, and I am going to made an application that does statistic on Github and Stack Overflow. But if you want to use queries as your favorite one, let’s try with some questions with querying capability on Stack DataExchange/Overflow

How many post that mentioning about AngularJS ?

SELECT COUNT(*) from Posts P
WHERE P.Id IN ( 
 SELECT DISTINCT(PostId) from PostTags 
  WHERE PostTags.TagId In ( 
    SELECT Id From Tags Where TagName LIKE '%angular%') 
)

At the moment, the query return 104292 posts. So I tried with various tags as ‘backbone’, ’ember’, ‘knockout’ , …

AngularJS: 104292 posts

Backbone: 18213 posts

Ember: 25169 posts

Knockout: 14113 posts

These numbers can tell you which framework is most concerning or most used.

Using the API that returns JSON and needs some extra steps to end up your statistic because the formatting of return values. You can make your own request as below which returns the number of questions about “angularjs” from 1, January 2012 until now.

https://api.stackexchange.com/2.2/questions#fromdate=2012-01-01&todate=2015-06-28&order=desc&sort=activity&tagged=angular&filter=default&site=stackoverflow

Considering a framework that it should have a large support from community. We might think the number of posts or questions that have answering would reflect the well support. So we make the question like “how many questions about angularjs, ember, knockout, backbonejs that have accepted answers”

AngularJS: 53150

BackboneJS: 10918

Ember: 14947

KnockoutJS: 94

The number for knockoutjs is unbelievable, but interesting. The result above tells us that AngularJS is owning a large community support, chasing by Ember and Backbone.

Now, let’s take a look on Github which targeting to 4 repositories AngularJS, BackboneJS, KnockoutJS and EmberJS. So lucky that these repositories has some statistic with charting, mean why we will not take serious with calling APIs.

Framework       Stars     Watch     Fork      Open    Closed

AngularJS             3872        619            993          298        1046

BackboneJS          22244     1621          4968        13           2061

EmberJS               14133       1132          3025        427        3311

KnockoutJS          6530        590           1130         164        1098

The statistic on Github gives a very limited numbers for AngularJS, it’s normally because Google just put AngularJS to Github since 2014, why BackboneJS had the first commits in 2010. You can get the general information about specific frameworks by calling these APIs.

BackboneJS – https://api.github.com/repos/jashkenas/backbone

EmberJS – https://api.github.com/repos/emberjs/ember.js

AngularJS – https://api.github.com/repos/angular/angular

KnockoutJS – https://api.github.com/repos/knockout/knockout

You can example your own data, just spending a hour with Github APIs. I am sure that you will find many interesting things here.

Statistic application, why not ?

By the time finishing this post, I just started implementing statistic application that tracks the github and stack exchange api about these specific JavaScript frameworks. So this post might be updated by some factors (charts, data tables …) lately.

The next post, I will talk about framework featuring that help us to consider which framework is suitable. May be the next post would be marked as “TL, DR”🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s