code_swarm : et le logiciel libre se construit sous vos yeux ébahis

Classé dans : Logiciel libre | 6

Temps de lecture 2 min

image_pdfimage_print

Les programmes de gestion de versions sont indissociables des (gros) projets de logiciels libres. Ils permettent aux développeurs de coordonner leur travail et de suivre au jour le jour qui a fait quoi dans le projet.

En suivant ces programmes, Michael Ogawa a mis au point un modèle graphique de visualisation chronologique de l’élaboration d’un logiciel libre. Il appelle cela code_swarm (essaim de code), qui utilise dans sa conception le moteur libre Processing.

Le résultat est fascinant, un véritable objet mutant aussi bien esthétique que pédagogique.

Pour le moment figurent dans le catalogue : Eclipse, PostgreSQL, Apache et Python. Comme le suggère l’auteur, j’ai choisi de reproduire[1] ce dernier comme exemple d’illustration parce qu’on voit bien comment au départ et pendant plusieurs années le créateur du fameux langage de programmation Python, Guido van Rossum (alias guido), travaille quasiment seul jusqu’à l’an 2000 où le projet sort de sa niche et explose littéralement.

Pour ce que soit un peu plus clair, nous avons traduit[2] ci-dessous les explications données par Michael Ogawa sur la page présentant le projet.

code_swarm

Michael Ogawa – juin 2008

« J’étudie les projets de développement logiciel depuis un petit moment maintenant. Pas la programmation, mais les gens, la façon dont ils interagissent à travers leurs collaborations et leurs communications. Mes investigations ont toujours été visuelles : J’ai bâti des applications qui créent des images de ce qui se passe au cours de l’élaboration des projets logiciels. Mais ils ont toujours eu une structure rigide. La visualisation d’information organique, inventée par Ben Fry, est une approche différente de la visualisation de l’information. Elle évite les confinements traditionnels d’information dans l’espace, et laisse les éléments jouer librement ensemble d’une manière aléatoire.

Cette visualisation, appelée code_swarm, montre l’historique des commits d’un projet de développement logiciel. Un commit intervient lorsqu’un développeur effectue des changements dans le code ou les documents et les transfère au dépôt central du projet. Les développeurs et les fichiers sont ici représentés par des éléments mobiles. Lorsqu’un développeur commite un fichier, celui-ci s’illumine et vole en direction du développeur concerné. Si des fichiers ou des développeurs ne sont pluss actifs, ils s’estompent peu à peu. Un histogramme, au bas de la visualisation, vient rappeler ce qui s’est passé précédemment. »

Notes

[1] Les vidéos sont présentées au format flash .flv sur Vimeo.com, on peut les télécharger au format .mov en s’inscrivant sur le site.

[2] Merci à Simon Descarpentries pour la traduction.

6 Responses

  1. Jean-Philippe

    C’est bôôô…

    Je veux la même chose pour Wikipédia dans toutes les langues et à partir du premier article !

    😛

  2. Jimmy d'Orsay

    Ils sont mignons tous ces spermatozoïdes qui tentent de féconder l’ovule !

    Plus sérieusement je trouve que c’est vraiment intéressant. Je pense pouvoir montrer cela à mes élèves en expliquant calmement de quoi il en retourne (ce qui n’est pas gagné).

  3. mamelouk

    et les points blancs et les trucs rouges c’est quoi ?

  4. Choukette

    Le flash c’est pas libre,
    C’est un comble : Illisible sous GNU/Linux sans le plugin proprio.

  5. lrbabe

    Les systèmes de contrôle de version ne sont pas juste indissociables des gros projets libres, ils sont le support de la collaboration dans le logiciel libre. Sans eux, il serait impossible d’intégrer manuellement les contributions qui ne changerait ne serait-ce que dix lignes de code interdépendantes à travers un fichier de 200 lignes.
    Les gros projets libres, eux, tendent à migrer vers des systèmes de contrôle de version décentralisés, mais ceci est une autre histoire.
    Sans contrôle de version, pas de logiciel libre.

  6. Screenshot linux

    Dans le même genre de représentation graphique, mais pour les logs il existe :

    http://www.fudgie.org et http://www.fudgie.org/gltrail.html

    La page annonce le support des logs Apache Combined, Rails, IIS, Postfix/spamd/clamd, Nginx, Squid, PostgreSQL, PureFTPD, MySQL, TShark, qmail/vmpop3d.

    Les deux font de l’analyse de log "à chaud", pour avoir tester l’analyse de log apache ça permet bien de voir quelles pages sont les plus appelés et les relations entre elles. Qui plus est, c’est de toute beauté !