Having concluded that an examination of the relative performance of programming languages on GitHub and StackOverflow yields interesting results, programming language frameworks are an obvious next step. Given the importance of frameworks in leading programming language adoption, understanding better the traction behind individual frameworks would be useful. With GitHub and StackOverflow representing obvious centers of gravity within the development world, they are clearly in a position to provide some insight into framework-related developer activity.
Before proceeding, a few caveats.
- Unlike with programming languages, the correlation between GitHub and StackOverflow activity with respect to programming language frameworks is very weak – .28 to be precise. Which means that good traction on one property correlates only weakly with similar activity on the other. In practical terms, then, it’s important not to read too much into these charts.
- By design, this analysis focuses only on those frameworks with a presence on GitHub. This obviously excludes frameworks such as ASP.net with no GitHub presence, and their omission should not be read as a comment on their popularity or lackthereof.
- Within the pool of frameworks with a GitHub presence, the following is an incomplete list. It was compiled in part from the frameworks that are most visible to RedMonk and in part on developer requests.
- The performance of frameworks on GitHub is influenced by whether the hosted project is official or a mirror. So bear in mind that the GitHub watcher count is particularly volatile.
- Some of these frameworks are micro- in nature, others strictly web. This is an apples to oranges comparison.
- In other words, the following is an unscientific examination of a narrow subset of total developer frameworks. No more than that, and no less.
With that said, here’s how the programming language framework charts work. As with our programming language rankings, StackOverflow’s tag volumes are used as the representative metric from that property. For each framework, the single most popular identified tag was used. For GitHub’s data, because there are no rankings available as with programming languages, the data here is based on the number of users “watching” a given project. This is used as a proxy for developer interest and engagement with a given framework. The sizing of the individual datapoints, meanwhile, is based on the total of GitHub watchers and StackOverflow tags for each project.
Using that process, we generate the following plot.
(Click for the full size chart)
Notable on this chart are the outperformance of jQuery and Bootstrap on StackOverflow and GitHub, respectively. Bootstrap’s performance is likely due in part to its GitHub native status, but jQuery’s overwhelming popularity on StackOverflow reflects its standing within a variety of JavaScript development communities. Ruby on Rails, meanwhile, has a relatively balanced performance, demonstrating traction on both GitHub and StackOverflow. Node.js for its part sees less traction on StackOverflow than Django, but is four times more visible on GitHub. All in all, however, the presence of these extreme or outlying values obscures the performance of less popular frameworks.
If we remove the five outperforming frameworks in Bootstrap, Django, jQuery, Node and Rails, we get the following plot.
(Click for the full size chart)
Within this subset, Spring’s strength on StackOverflow becomes apaprent, as do Flash and Sinatra’s popularity on GitHub. Play and Grails, meanwhile, show better than average traction on GitHub and StackOverflow, respectively. Beyond that, there’s little to differentiate Bottle, Dojo or Lift.
In terms of the data collected here, then, this is how the assessed frameworks rank in terms of their GitHub and StackOverflow counts:
- jQuery
- Rails
- Django
- Bootstrap
- Node.js
- Spring
- Grails
- Sinatra
- Play
- Flask
- Dojo
- Bottle
- Lift
Again, because we are generally comparing apples to oranges, little should be read into the above list, as the frameworks all have varying goals and intended markets. It is, however, interesting to see how they compare in broad terms with one another. And in certain cases where projects are directly competitive, such as with Dojo and jQuery, the numbers may be more meaningful.