main2 (1)

 

Un des plus grands dilemmes que les développeurs font face quotidiennement sont les bibliothèques des logiciels utilisés. Opter pour le nouveau framework ou celui qui a été essayé et testé depuis 10 ans? L’une des principales choses qui rendent les framework à succès, c’est leurs communautés d’utilisateurs et leurs contributeurs. Alors qu’il peut être facile de savoir combien de personnes contribuent à un projet (surtout si c’est un open source), il est assez difficile de savoir combien de personnes l’utilisent réellement. Nous avons décidé d’adopter une approche axée sur les données pour répondre à ces questions.

GitHub héberge plus d’un million de projets aujourd’hui. Les projets s’étendent des petits utilitaires et des applications de test à des projets d’infrastructure massifs avec des centaines de contributeurs. En tant que tel, il fournit une diversité et une mise à jour des données à explorer, ce qui est révélateur des tendances concernant les logiciels à code source fermé et les logiciels d’entreprise.

Nous avons choisi les trois meilleurs langages sur GitHub – Java, Ruby et JavaScript. Pour chacun d’eux, nous avons analysé 10 000 projets (c.-à-d référentiels GitHub) se penchant vers ceux qui ont été en favorisés le plus par les développeurs.

Nous avons analysé les 100 meilleurs composants couramment utilisés, en les regroupant dans des catégories (par exemple, essais, DB, UI, etc.). Il est assez intéressant de voir comment ceux-ci diffèrent entre les différentes langues.
Voici quelques résultats notables et le top 10 des bibliothèques pour chaque langage (vous pouvez trouver la liste complète en bas de ce post):

Java

Cliquez ici pour avoir un rapport complet sur Java

Java1

 

C’est la saison Goyave. le code Google est devenue monnaie courante. Les bibliothèques Spring et Apache sont si répandus qu’ils sont pratiquement partie du langage, avec plus de 25% des 100 plus grandes bibliothèques partagées à peu près également entre les deux. Quelque chose d’un peu surprenant, la prévalence de Google a fait des bibliothèques, telles que GWT et Goyave, en Java, avec 7% du top 100. On dirait qu’il ya une zone dans notre vie que Google y possède une grande partie.

BigData – Hadoop est le premier tableau. Le traitement des données est une grande spécialité de Java avec 16 des 100 bibliothèques axées sur la gestion de base de données, 12 pour Ruby et 5 pour JavaScript (certes encore beaucoup plus pour le langage côté client).

Il est intéressant de voir que Hadoop est à la hauteur de sa promesse d’être le leader de la technologie avec de grandes données avec 168 entrées. Pour mettre en perspective, MySql, L’SQL DB le plus connu et le plus commun, a 225 entrées. Postgre SQL, un autre DB relationnelle bien connu, a 121.

ElasticSearch, une nouvelle technologie pour la recherche à travers de vastes ensembles de données, le fait aussi bien sur GitHub avec plus de 100 projets qui l’utilisent.

Le développement piloté par les tests (TDD) est énorme sur Java et Ruby (pas encore sur JS) – sur les trois langages que nous teston, il joue un très grand rôle. Sur Java et Ruby, 40-50% des projets examinés utilisent un framework de tests automatisés. Les principaux sont JUnit en Java et RSpec sur Ruby. En pourcentage, les projets JavaScript utilisant un framework de test est beaucoup plus faible, s’établissant à 25%.

Mocking, une méthode de simulation des objets du monde réel dans les tests et le développement, a gagné beaucoup de traction avec 10% des projets en Java et 7% en Ruby. En JavaScript, mocking est encore presque inexistant.

Ruby

Ruby

 

SQL domine encore. Bien que les bases de données NoSQL sont à la mode ces jours-ci, les bases de données relationnelles (SQL) dominent toujours le monde Ruby – SqLite, PostgreSQL, MySQL sont utilisés dans 25% des projets, alors que Redis et mongo n’apparaissent que dans 3% des projets.

MongoDB est cependant encore connu en Ruby avec 185 entrées, ce qui représente deux fois plus de projets que dans Java

Dans le développement web, nous constatons que tandis que les nouveaux framework ont gagné du terrain au cours des dernières années (comme Sinatra avec 570 entrées), Ruby est toujours centré autour de Rails, avec plus de 7.000 projets. Pour les serveurs web, Thin (avec 487 entrées) est utilisé pour deux fois plus de projets par rapport à Unicorn.

CoffeeScript, une nouvelle couche de langage au-dessus de JavaScript qui semble être bien reçu par les développeurs web Ruby avec plus de 1000 projets.

Twitter a également eu un grand impact sur Ruby avec 3 bibliothèques dans le top 100 et 382 projets qui les utilisent. Alors que c’est assez important, ce n’est pas encore aussi énorme que l’influence de Google sur Java.

JavaScript

Javascript

 

JS est fragmenté. La portée des meilleurs composants en Java est de 30% des projets. Pour Ruby, c’est environ 20%. Pour JS il n’atteigne même pas les 10%. Puisque JavaScript évolue rapidement pour soutenir plusieurs types d’applications, beaucoup de nouvelles fonctionnalités n’ont pas encore été absorbées par le langage ou les bibliothèques standards. En conséquence, nous constatons 50% plus de frameworks utilisés en JavaScript que dans Ruby et Java dans le top 100, faisant écho à ce fait, il est encore trop tôt pour le langage.

Grunt est énorme. Le framework de l’automatisation Grunt joue un très grand rôle dans le développement JS (surtout pour node.js) avec 23% des 100 meilleurs bibliothèques connectées en lui. Grunt semble combler l’écart dans la construction, les essais et le déploiement du cycle JS. Ceci est géré à l’extérieur du projet dans des langages tels que Java par d’autres outils importants tels que Maven ou Jenkins.

Le networking est toujours un gros problème. Une grande partie des bibliothèques JavaScript (7% du top 100) mettent l’accent sur ​​la mise en réseau et la communication client/serveur. C’est 3X plus que dans Java et Ruby. Ceci est probablement dû aux développeurs web qui ont besoin de traiter avec un écosystème fragmenté sur le côté du navigateur, et un état de début relatif de la pile du serveur.

Pour le développement Web côté serveur – le framework express pour node.js est en tête du tableau avec 631 entrées.

La concrétisation de la structure. JavaScript dispose également du plus grand nombre d’extensions de langage avec 844 entrées. Il est intéressant de voir que si JavaScript est un langage très flexible, les développeurs se tournent vers des moyens pour le modeler en quelque chose de plus structurée. Underscore.js, qui offre des capacités fonctionnelles de programmation semblables à ceux trouvés dans les langages les plus structurés tels que Scala qui possède 416 entrées, ce qui en fait la 5e bibliothèque JS la plus répandue.

Cliquez ici pour voir la liste du top 100 des bibliothèques.

Duke-T-shirt

Java/Scala developers – Install Takipi now and get a free T-shirt

email
Tal is the CEO of OverOps. Tal has been designing scalable, real-time Java and C++ applications for the past 15 years. He still enjoys analyzing a good bug though, and instrumenting code. In his free time Tal plays Jazz drums.