Vous tentez de décider lequel des frameworks JavaScript UI sera le plus adapté aux besoins de votre projet ou de votre organisation mais le casse tête n'en finit pas... Avec au moins 10 candidats sérieux, le choix ne s'annonce pas des plus simples. Il faut dire qu'au cours des dernières années, nous avons assisté à une croissance phénoménale dans le monde des frameworks et des bibliothèques JavaScript, pour la plupart Open Source. Si de l'encre a coulé pour comparer les produits à l'utilisation, à leur approche ou encore sur leur exhaustivité, les mesures de suivi de la taille, de la force et du dynamisme des communautés et des écosystèmes entourant ces projets ont été trop souvent négligés. Ces statistiques devraient pourtant jouer un rôle clé dans votre approche.

Devant le nombre impressionnant de projets Open Source lancés en 2012, concentrons-nous plus spécifiquement sur les projets de bibliothèques frameworks JavaScript centrés sur l'aide aux développeurs pour la conception d'interfaces utilisateurs riches et évolutives. En se basant sur les métadonnées de la communauté Open Source du site Ohloh.net et en intégrant des informations récupérées sur GitHub comme par exemple le nombre d'étoiles reçues et le nombre de followers par projet, 10 d'entre eux sortent du lot: AngularJS, Ember.js, SproutCore, Backbone.JS, Knockout.js, Spine, CanJS, Meteor-JS, Derby ou encore Yahoo Mojito. Ils couvrent aussi bien les bibliothèques d'interface utilisateurs que les frameworks incluant des moteurs d'exécution côté serveur. En étudiant la communauté présente autour de ces projets et en portant un regard attentif sur les écosystèmes entourant chacun d'eux, on peut ainsi obtenir un nombre d'informations cruciales pour la prise de décision.

Etude du nombre de contributeurs mensuels

S'intéresser au nombre et à la croissance de contributeurs par mois pour un projet donné offre un bon aperçu de l'intérêt suscité par celui-ci. Le tableau ci-dessous représente la participation mensuelle des contributeurs ayant travaillé sur le code pour un mois donné.

Si SproutCore était en tête en termes de contributions mensuelles jusqu'à fin 2011, rappelons que de nombreux développeurs de l'équipe ont suivi immédiatement son fork Ember lors de son lancement en décembre 2011, donnant un avantage certain au nouveau venu. Depuis, Ember et AngularJS connaissent une croissance mensuelle significative du nombre de contributeurs sur l'année 2013, se posant en leaders dans une perspective globale de développement communautaire. On notera toutefois la hausse significative de contributeurs actifs sur Backbone et Meteor au printemps dernier.

Nombre de contributeurs par mois
Le nombre de contributions pour Ember a décollé en flèche lors de son lancement en décembre 2011. AngularJS de Google connait également une croissance rapide.


Etude des contributeurs sur la durée

Observer le nombre total de contributeurs au cours du cycle de vie d'un projet reflète dans la plupart des cas le style de gouvernance de ce dernier. De nombreux projets sont effectivement bien gérés par de petits groupes de personnes, tandis que d'autres préfèrent s'ouvrir plus largement à un public divers et varié. Le nombre de contributeurs nous aide donc à comprendre la dynamique relative d'un projet à un moment donné. Notons que les grands projets bien établis peuvent souvent avoir un nombre important de contributeurs qui aident à corriger des bugs, contribuent à la documentation et assument la réalisation de tâches connexes. Ce nombre peut aussi être associé à la taille globale de la base de code, au nombre total de contributions ou encore au nombre de contributions par mois.

Contributeurs sur la durée

Les communautés d'AngularJS et Ember sont les plus importantes, résultat direct de leur récente croissance mensuelle en termes de contributeurs.

Etude des écosystèmes

Au-delà des collaborateurs immédiats, la force d'une communauté paraît évidente lorsqu'on peut observer un écosystème important se développant autour d'un projet. En examinant plus globalement cet aspect, on peut décrire plus en détail le succès global d'un projet individuel. Backbone possède ainsi un écosystème important démontrant bien son dynamisme global et son utilisation important par l'industrie. Dans un effort de validation de l'écosystème de Blackbone, nous avons d'ailleurs filtré notre recherche pour n'y inclure que des projets liés à Blackbone possédant au moins trois étoiles sur GitHub. Résultat: 1627 projets. Comparé aux 794 projets de AngularJS qui possèdent eux aussi plus de trois étoiles, l'écosystème de Backbone est finalement deux fois plus important.

Ecosystèmes

Nombre de projets connexes: la robustesse d'un projet Open Source peut en partie être mesurée par le nombre de projets qui l'entourent. Ici, Backbone.JS et AngularJS sont les grands gagnants.

Solutions packagées

Parce que les solutions "full-stack" ont une portée différente de celle de nombreux autres projets, nous avons porté une attention particulière à leur croissance. Ces solutions comprennent à la fois un framework client et un framework côté serveur. Par hypothèse, la quantité de code générée se doit donc d'être supérieure, comme devrait l'être lui aussi le nombre de collaborateurs au fil du temps. Les statistiques indiquent néanmoins que chacun de ces projets n'est pour le moment qu'à un stade relativement précoce, avec une participation encore modérée.

Statistiques Full-stack

Meteor et Mojito semblent attirer une communauté plus importante, au moins en termes de contributeurs.

La montée vertigineuse de JavaScript

Le nombre de développeurs qui investissent du temps et créent des approches structurées à l'aide de JavaScript croît à un rythme rapide. Le graphique ci-dessous montre bien la progression du nombre cumulé croissant de développeurs contribuant depuis le début de l'année 2011. Cela reflète l'importance de plus en plus marquée des infrastructures d'interfaces utilisateurs dans le développement d'applications et le besoin continu de développer différentes approches pour appuyer les besoins variés des entreprises.

Total des contributeurs JavaScript pour 10 projets JavaScript ne cesse de croître avec un nombre moyen de développeurs ayant plus que doublé entre 2011 et 2013.

Lignes de code et contributions

Vous pourriez peut-être vous interroger légitimement sur la relation entre la taille des bases de code de chacun des projets et le nombre des contributeurs. En liant ces deux données, on note que la taille de la communauté et le total des contributions ont en fait peu de rapport avec la taille de la base de code. Par exemple, AngularJS montre un rapport de 413 lignes de code par contributeur contre 146 pour Ember. Une corrélation peut cependant être établie entre la taille de la communauté et le nombre total de participations. On réalise alors que le nombre de contributions par participant varie considérablement d'un projet à l'autre. Une donnée pouvant indiquer une facilité de contribution plus souple dans certains cas et donc probablement une pérennité assurée à long terme.

Lignes de code par contributeur Lignes de code par contributeurs: un nombre plus important de lignes de code par contributeur peut indiquer qu'il est plus facile de participer au projet: un bon indicateur de la santé de celui-ci.

La taille et la croissance communautaire sont donc deux indicateurs importants de la dynamique d'un projet. Bien que ces données ne puissent pas nous raconter toute l'histoire, elles fournissent des indications essentielles et aident considérablement à la prise de décision en se fondant sur la viabilité et le durabilité de la communauté entourant un projet. Sur la base de toutes les données analysées ici, notre point de vue est qu'Ember et AngularJS apparaissent comme des frameworks à suivre de très près. N'oublions pas, cependant, l'écosystème de Backbone qui démontre à la fois la popularité et l'engagement de cette approche UI. Son avenir s'annonce sans aucun doute brillant.