Over the past few years we've seen tremendous growth in UX libraries and frameworks -- most of which are open source. Much has been written comparing the use of, approach to, and completeness of these frameworks. But often overlooked are the metrics tracking the size, strength, and momentum of the communities and ecosystems surrounding these open source projects. These stats should play a key role in your selection.
Which projects rose to the topThis analysis digs into the communities behind the top 10 open source projects spanning UI libraries, frameworks, and full-stack frameworks that include server-side runtimes. The projects in my analysis are today's hottest UI projects, including AngularJS, Ember.js, SproutCore, Backbone.JS, Knockout.js, Spine, CanJS, Meteor-JS, Derby, and Yahoo Mojito.
My goal was to paint a picture of the communities surrounding these projects, specifically looking at size and growth, in an effort to correlate the data against the popularity and success of individual projects. Also included is a look into the ecosystem surrounding each project, with the assumption that the ecosystem further reflects the popularity and success of a project.
Monthly contributorsExploring the number and growth of monthly contributors for a project provides insight into the project's momentum and can highlight critical tipping points for projects that are capturing broad industry interest. The chart below tracks monthly contributor participation. This statistic shows the number of developers who have contributed code in a given month.
Project contributors per month: The number of contributors to Ember took off like a rocket when the project was forked from SproutCore in December 2011. Google's AngularJS has also seen rapid growth.
As you can see, SproutCore was the early front-runner in monthly contributor participation. However, when SproutCore forked to create Ember in December 2011, many developers on the team moved along with it, jump-starting Ember. Now Ember, along with AngularJS, has seen significant monthly contributor growth in 2013, both emerging as leaders from an overall community growth perspective. Also note that in the spring of this year, active contributors to Backbone and Meteor dropped off significantly concurrent with the accelerated growth of AngularJS and Ember.
All-time contributorsLooking at total lifetime contributors for a project can help us understand a few different points. For one thing, it often reflects the governance style of a project. Many projects are tightly managed by a small group of people, while others open up contributions to a wide and diverse audience.
The number of all-time contributors can also help us understand the relative momentum of a project at any given time. Large, well-established projects can often have significant numbers of contributors, helping fix bugs, contributing to documentation, and other related tasks. The total number of contributors can also often be associated with the overall size of the code base. This metric is typically most valuable when combined with other community metrics, such as lines of code, total commits, and monthly commits.
Ecosystem projectsBeyond immediate contributors, the strength of a project's community is evident from ecosystem projects that extend and are built upon them. This demonstrates that the core project community alone doesn't always tell the whole story of a project's momentum. Looking more broadly at the ecosystem can further describe the overall success of an individual project.
Notably, Backbone has a substantial ecosystem, showing its overall momentum and usage in the industry. In an effort to further validate the Backbone ecosystem, I filtered my search to include only Backbone-related projects that have three or more stars on GitHub, which resulted in 1,627 projects. Compare this with 794 AngularJS projects with more than three stars, and Backbone's ecosystem is still two times the size of AngularJS's.
Full-stack solutionsBecause the full-stack solutions have a different scope than many of the other projects, I wanted to take a separate look into their growth. Full-stack solutions include both a client framework and a server-side framework; hypothetically, the amount of code involved should be greater, as should be the number of contributors participating over time. The chart indicates each of these projects is in a relatively early stage with moderate participation.
Lines of code and commitsYou may be left wondering about the size of the code bases for each of these projects -- and the relationship between that number and the number of contributors. Comparing these, we see that community size and total commits have little correlation to the size of the code base. For example, AngularJS shows a ratio of 413 LOC per contributor while Ember shows a ratio of 146 LOC per contributor.
You can, however, correlate the size of the community (all-time contributors) with the all-time number of commits and see that the number of commits per contributor varies greatly by project. This may show that some projects are easier to contribute to, affecting their long-term sustainability.
Reading the tea leavesCommunity size and growth are important indicators of a project's momentum. While these indicators can't tell us the whole story, they provide important insight into projects that are being heavily invested in and help us make decisions based on the viability and sustainability of the community behind a project. They can also aid us in finding tipping points in a project's life span, providing us with opportunities to both engage in projects and influence change.
The subject of rich UI frameworks is near and dear to me, as I spent five years at Adobe driving product marketing for the Flex framework, now an Apache project. Based on all the data analyzed here, my take is that Ember and AngularJS are emerging as the frameworks to watch. That said, the ecosystem surrounding Backbone demonstrates both the popularity and commitment to this UI approach, and is therefore sure to have a continuing, bright future ahead.
Read more about application development in InfoWorld's Application Development Channel.