La génération GitHub

Classé dans : Libres Cultures | 12

GitHub a beau être une plateforme non libre de projets libres, force est de constater que cette « forge sociale » est devenue en quelques années l’un des centres névralgiques de la communauté.

Avec sa facilité d’usage, son appel permanent au fork et l’individuation des contributions, GitHub a permis a plus de monde de participer tout en ouvrant le Libre au delà du logiciel puisqu’il n’y a pas que du code proprement dit dedans (cf la liste de l’article traduit ci-dessous).

À tel point que certains n’hésitent pas à y voir un modèle pertinent pour toutes sorte de choses à commencer par la… démocratie  !

Et si une génération toute entière était effectivement en train de naître sous nos yeux  ?

GitHub

La génération Github  : Pourquoi vous et moi pouvons désormais faire de l’Open Source

The GitHub Generation : Why We’re All in Open Source Now

Mikeal Rogers – 7 mars 2013 – Wired Opinion
(Traduction  : Moosh, Sphinx, Peekmo, Chopin, goofy, misc, Uflex + anonymes)

GitHub a été conçu pour être une plate-forme de collaboration logicielle ouverte, mais c’est devenu une plate-forme pour déposer beaucoup plus de choses que du simple code. Elle est maintenant utilisée par des artistes, des créateurs, des propriétaires de maisons et des tas d’autres gens, par des entreprises entières… et même par des municipalités.

« N’importe qui peut maintenant changer les données quand de nouvelles pistes cyclables sont aménagées, quand de nouvelles routes sont construites ou quand de nouveaux immeubles sont construits » a annoncé récemment la ville de Chicago. Les gens planifient leurs projets de rénovation de maison sur GitHub. Un cabinet d’avocats a annoncé il y a quelques jours qu’il postait des documents juridiques pour des start-ups sur GitHub. Quelqu’un a même publié toutes les lois d’Allemagne sur GitHub l’année dernière (avec, s’il vous plaît, déjà 17 pull requests pour des modifications).

Bien sûr, GitHub reste majoritairement toujours utilisé par les programmeurs et développeurs qui font voler des AR.Drones avec Node.js ou construisent des sites web avec jQuery. Mais de plus en plus de gens passent de consommateurs à producteurs, et ils redéfinissent ainsi la culture de l’open source. Je crois que GitHub transforme l’open source comme l’internet a transformé l’industrie de la publication  : un fossé culturel est en train de se creuser entre l’ancienne génération de gros projets libres et la nouvelle génération d’amateurs de projets libres d’aujourd’hui.

La révolution ne sera pas centralisée

Quand la plupart des gens entendent « open » source, ils pensent démocratie, distribution, égalité  : tout le monde construit des choses pour que tout un chacun les utilise.

Mais cela n’a pas toujours été le cas. La plupart des logiciels open source ont été créés et maintenus par une classe privilégiée et protégée, les développeurs professionnels, qui interagissaient avec d’autre développeurs très semblables (ils sont pourtant suffisamment différents pour avoir de belles disputes).

Avant GitHub, je passais beaucoup de temps à penser et à discuter de la meilleure façon de gérer des projets open source parce que la coordination représentait un coût important d’un projet open source. Si important que lorsqu’un projet réussissait et développait une communauté assez grande, il était logique que le projet grandisse plutôt qu’il ne se fracture en projets plus petits. Mais plus le projet du logiciel devenait grand et complexe, plus il était difficile d’y contribuer. Ainsi, un choix de membres, les commiters – étaient assignés à la gestion et à la production du projet. Cela menait souvent à des ruptures séparant ceux qui produisaient le projet et ceux qui les utilisaient.

GitHub a comblé ce fossé en faisant de l’open source quelque chose de bien plus décentralisé. C’est devenu davantage centré sur les individus que sur le projet.

La façon d’utiliser GitHub est trés personnelle. Une personne (je suis github.com/mikeal) a un compte, et tout ce qu’elle publie existe à un niveau en dessous d’elle. Si quelqu’un veut corriger quelque chose, il suffit de « forker » le projet, ce qui place une copie sous son propre compte.

Cette façon de travailler est trés stimulante  : elle encourage les individus à corriger les problèmes et à prendre possession des correctifs au même niveau que le projet de départ. Cela donne également à chacun une identité dans cette nouvelle culture du libre. GitHub est actuellement le premier fournisseur d’identité pour la production collaborative sur internet pour faire plus que du développement de code.

J’ai contribué à des projets libres depuis plus de 10 ans, mais ce qui est différent maintenant est que je ne suis pas un membre d’un de ces projets, je suis un simple utilisateur, et contribuer un peu est devenu une petite partie du rôle d’un utilisateur. Des petites interactions entre moi et les mainteneurs de projets arrivent plusieurs fois par semaine sur tout type de projet que j’utilise. Et ça arrive encore plus souvent dans l’autre sens  : des gens dont je n”ai jamais entendu parler m’envoient des petits bouts de code sur les petits projets que j’ai publiés.

La décentralisation comme démocratie

Les premières versions de GitHub ont très bien fait une chose  : rendre la publication de votre code beaucoup plus facile (que la non-publication). Ceci était suffisant pour que beaucoup de projets connus, notamment Ruby on Rails, migrent sur GitHub presque immédiatement.

Mais ce qui s’est passé après est encore plus intéressant  : les gens ont commencé à tout publier sur GitHub. Pousser du code est presque devenu une habitude, comme tweeter. En abaissant la barrière pour entrer et rendant plus facile la contribution à l’open source, GitHub a élargi la production collaborative aux utilisateurs occasionnels.

Aujourd’hui un vaste choix de logiciels simples et compréhensibles est accessible à une catégorie de gens créatifs qui n’avaient jusqu’alors pas les compétences techniques requises pour participer à des projets open source par le passé.

Ce mélange des relations entre les producteurs, les contributeurs et les consommateurs valorise naturellement les projets plus petits et plus faciles à comprendre — et a conduit à de nombreuses contributions. Au cours du mois de septembre 2012 par exemple, la moitié des utilisateurs actifs de GitHub qui ont poussé au moins un changeset, l’ont fait moins de cinq fois, avec 22 % (environ 44 000 personnes) qui ont poussé seulement un seul changeset ce mois-ci.

L’accès de l’open source aux amateurs présente certains avantages évidents.

Faciliter les usages

Un des problèmes récurrents, avec le logiciel open source, a été la qualité des finitions. La documentation, le design des sites web et l’ergonomie en général ont toujours été un problème — spécialement par rapport à de nombreux concurrents propriétaires.

Mais maintenant, avec les facilités de collaboration, des utilisateurs moins portés sur la technologie et la connaissance du code peuvent plus facilement participer à améliorer les logiciels sur lesquels ils travaillent (ce qui peut être des petites choses comme l’humanisation des messages d’erreur de codage ou de légers changements graphiques en une ligne de CSS qui optimisent le rendu des sites web des navigateurs, anciennes versions incluses, et sur les téléphones mobiles).

Dans le nouvel open source, les gens veulent utiliser la technologie sans avoir besoin de devenir des experts. La facilité d’utilisation est plus valorisée que jamais.

Éviter de réinventer la roue

Les développeurs aiment les défis et plus ils ont de chances de les relever, plus leurs solutions peuvent être astucieuses. C’était parfait lorsque les utilisateurs de ces solutions étaient eux aussi des gens très compétents techniquement comme ceux qui prenaient plaisir à résoudre astucieusement ces anciens problèmes.

Mais les amateurs préfèrent les solutions qu’ils peuvent tenir pour acquises  : une fois qu’un problème est résolu, ils reviennent rarement en arrière pour le réexaminer. Et dans la mesure où les amateurs ne créeront qu’à partir des solutions les plus compréhensibles, cela contraint les développeurs à élaborer des solutions simples qui rendent les problèmes complexes plus faciles à appréhender.

Soutenir un écosystème plus vaste

Node.js, projet dans lequel je suis activement impliqué, définit des modèles suffisamment simples pour que les gens puissent écrire de petites bibliothèques indépendantes et les publier à leur gré. Tous ceux qui s’impliquent dans l’écosystème peuvent en tirer profit sans coordination. C’est le pôle inverse de l’énorme pile verticale qui accompagne des tas d’outils et fonctionnalités (tels que dans les systèmes intégrant des plugins, comme Ember, Dojo et YUI) qui sont nécessaires pour réussir à développer dans des environnement propriétaires (pensez à Cocoa et au développement pour iOS). Dans les environnements ouverts, tels que Node.js sur GitHub, nous constatons que des API bien plus légères peuvent facilement tirer parti du reste de l’écosystème sans coordination. Moins il y a de coordination entre les développeurs et les bibliothèques et plus nous pouvons créer de la valeur.

GitHub a donné les capacités à une nouvelle génération de collaborer, de créer, de produire. Beaucoup de développeurs regretteront l’abandon des normes culturelles précédentes, telles que le statut des commiters (ceux qui sont autorisés à envoyer le code sur le dépôt) ou la bonne vieille guerre pour le choix de la bonne licence — mais l’avenir est déjà entre les mains d’une nouvelle génération qui a évolué.

Ce n’est pas un simple outil  : c’est à la naissance d’une nouvelle culture à laquelle nous assistons.

12 Réponses

  1. Après la Génération X et la Génération Y, voici la Génération GitHub (TM). C’est comme la Génération TF1, ou la Génération DisneyLand, mais c’est mieux, parce que c’est fait pour du logiciel libre ! Merveilleux non ?

    Ou comment la consommation active de services proposés par le Capital devient subitement un élément de libération. Un peu comme les manifestations de femmes « libérées » organisées par l’industrie du tabac, il y a quelques décennies.

    Une nouvelle culture naissante ? Non non, juste la récupération d’éléments culturels à but de contrôle et de profit, avec le matraquage publicitaire qu’il faut pour faire passer tout ça pour du progrès. Une culture sponsorisée, mise au service du capitalisme pur et simple.

  2. Est-ce qu’on ne confond pas ici github et git ?
    « Avant » nous n’avions que des outils de gestion de version centralisé, depuis la naissance de git (et non github) nous pouvons désormais travailler de façon décentraliser et forker à souhait. Mais tout ceci n’est pas grâce à une entreprise qui base sa communication autour du libre pour faire du fermer, c’est grâce à Torvalds qui a créé cet outil manquant.
    Certes github fournit une interface web utilisable, mais il y a pleins de plateformes alternatives (et libres) qui existent et donc des milliers de gens se servent tous les jours.
    Bref, ne confondons pas github et git.

  3. Github est un SaaS non-libre. Je ne comprends pas pourquoi tant de projets libres tombent dans son giron. Même si git donne l’assurance que les répositoires ne soient pas perdus, toute l’historique des autres communications est stockée de manière propriétaire sur le serveur de github.
    Des solutions libres existent, telles que gitlabs ( http://gitlabhq.com ) et elles ont les mêmes caractéristiques que github ou mieux. Imaginez la situation si Google ou Apple rachètent github. Et comme github est maintenant soutenu par du venture capital pour 100 millions de $, leur plan d' »exit » (tout venture-capitalist regarde la porte de sortie en permanence), leur but de sortie est à 1 Mrd de $, ce que Google, Facebook ou Apple peuvent faire facilement.

    D’ailleurs, le communiqué de presse pour cet investissement s’intitule: « Le logiciel qui mange le développement de logiciels » ( http://peter.a16z.com/2012/07/09/so… ). N’est-ce pas inquiétant ?

    github devient trop gros et les logiciels libres dépendent trop de lui. C’est plutôt inquiétant pour le libre.

    Il faut éviter les solutions SaaS, et comme la peste celles qui utilisent leur propre logiciel propriétaire, ou du logiciel libre modifié et pas re-publié. C’est pas moi qui le dit, mais Richard Stallman dans ses conférences.

    J’espère me tromper, mais avec 100M$, c’est hélas peu probable. C’est des montants qui font réfléchir la plupart des gens différemment.

    A méditier…

  4. Comme ça à été dit dans les commentaires précédents, je ne comprends pas l’engouement du monde libre pour github qui est une plateforme fermée !

    Il existe des alternatives à github en matière d’interface web conviviale pour git tel que gitorious, qui a la décence de publier son code sur gitorious : https://gitorious.org/gitorious

    On ne peut pas défendre l’idéologie du libre et se baser sur une plate-forme fermée tel que github. Git en tant que tel est une belle avancée tandis que github ne vaut pas mieux que facebook niveau ouverture.

  5. Uflex

    Je vois que tout les commentaires précédents se rassemblent sous la bannière du « saPueSayPasLibre » et bien que non utilisateur moi-même, il faut bien reconnaitre que GitHub a su rendre Git populaire même parmis les non développeurs. On dira ce qu’on voudra mais l’utilisation de Git n’est pas des plus aisées, surtout en console, déjà que ça fait peur à certains devs alors pour un graphiste ou un linguiste qui n’a jamais mis les pieds dans une console c’est encore pire. Alors oui il y a d’autres clients GUI que celui de GitHub sur Windows, mais ils ne sont pas aussi avancés ou alors pas aussi connus. Il me semble que ce que l’article dit c’est que GitHub a ammené à contribuer des gens qui normalement ne l’auraient jamais fait.

    Ceci dit, je suis d’accord qu’avoir de (très) nombreux projets libres qui ne reposent que sur GitHub pour le SCM mais aussi le bug tracking, code reviewing, etc est quelque chose qui n’est pas souhaitable si comme l’a dit Beat précédemment GitHub venait à être racheté pour <insérer une très grosse somme d’argent ici>.

  6. bochecha

    > Comme ça à été dit dans les commentaires précédents, je ne comprends pas l’engouement du monde libre pour github qui est une plateforme fermée !
    >
    > Il existe des alternatives à github en matière d’interface web conviviale pour git tel que gitorious, qui a la décence de publier son code sur gitorious : https://gitorious.org/gitorious

    Ayant un projet sous Github, je vais me permettre de répondre. :-)

    Github n’est pas libre, c’est un fait, et ça me chagrine. Vraiment, je l’utilise à contre-cœur.

    Cependant, malgré tout le respect que j’ai pour Gitorious, ce n’est pas une alternative sérieuse à l’heure actuelle :

    1. pas de bug tracker
    2. quand tu ouvres la page gitorious d’un projet, tu tombes sur ses logs, alors que ce qui importe (pour les visiteurs d’un site de développement) c’est le code.
    3. c’est tout noir, assez déprimant (ok, celui-là est fortement subjectif)
    4. sur la page d’accueil, énormément de place est prise par des screenshots et la liste des features de gitorious lui-même. Il faut scroller pour enfin arriver à un champ de recherche, alors que c’est mine de rien beaucoup plus important comme fonctionnalité
    5. l’effet de réseau est mine de rien super puissant comme aimant vers Gitorious :-/

    J’utilise Gitorious pour tous mes projets « discrets ». Globalement, les trucs qui intéresseront personne, que je fais pour moi-même principalement, je les mets la-bas.

    Mais pour mon gros projet actuel, je peux pas me permettre de ne pas avoir de bug tracker.

    Vraiment, j’adorerais utiliser une forge 100% libre pour mes projets. Si Gitorious avait un bug tracker, je pense que je ferais fi de tous ses autres défauts et migrerais mes projets là-bas.

    Pour insister sur l’effet reseau : mon projet actuel est un engine pour IBus. Et tout le développement d’IBus lui-même ainsi que des autres engines se fait sur Github. L’attraction est donc forte de se mettre au même endroit pour faciliter la vie de la communauté gravitant autour d’IBus.

    Mais même ça, si Gitorious avait un bug tracker, je pense que je ferais l’effort de m’en passer.

    Après, j’ai pu rater quelque chose. Peut-être qu’il y a quelque part une forge 100% libre avec des features équivalentes à Github (ou mieux ! Apres tout, Github a des tas de défauts, le fait de ne pas pouvoir uploader de tarballs en est un gros) et que je n’aurai pas à hoster moi-même sur un serveur que je n’ai pas. Auquel cas, je serais ravi d’en entendre parler. :-)

  7. Je tiens a remercier les traducteurs de frama* en général pour leur magnifique travail. Cela permet a des personnes, qui comme moi, n’ont pas forcément un haut niveau d’anglais et qui une fois sorti du technique sont perdu. Grâce a eux je peu avoir accès aux pensés de personnes non francophone et ainsi lire différentes visions qui forge mon opinion. Très sincèrement merci et bravo!

    Concernant l’article, je me suis inscrit il y a quelques jour a github pour pouvoir faire un rapport de bug. C’est pour moi une vrai révolution de faire se pas et de pouvoir participer a des projets, moi qui ne suis pas programmeur mais utilisateurs. C’est ça la vrai révolution, je peux très facilement contribuer aux projets libre. Que github ne soit pas libre est un problème mais comme tout, l’outil est bon et facile d’utilisation, charge a un outil libre de faire mieux pour inverser la tendance.

  8. Clay Shirky a fait le même parallèle entre Github et la manière dont la politique pouvait s’inspirer du forkage, de la distribution et de la décentralisation. Sa vidéo Ted est ici http://www.ted.com/talks/clay_shirk

  9. Oui github n’est pas libre mais il possède l’énorme avantage de proposer le service d’hébergement de code pour ‘rien’.
    Nous ne l’utilisons que pour cela, rien dans les wiki ou dans le bug tracker (même s’il essaye de nous forcer avec les pull request) car par contre nous hébergeons nous même notre bug tracker (libre) et donc le jour où il faudra partir nos pourrons le faire très rapidement.
    Etant sur un petit projet je préfère passer du temps à coder qu’à administrer mon dépot git. Juste la gestion du bug tracker, les montées de versions, les sauvegardes, les migrations de serveur etc. ça me prend du temps alors si je peux réduire cela sans risques je prends.

  10. jojolebg

    La force de Github n’est pas seulement d’être une plateforme de gestion de source, comme précisé dans les commentaires des alternatives existent. Mais c’est aussi et surtout un réseau social centré autour des projets.

  11. smonff

    Marre de la dichotomie libre / propriétaire. À vous rédacteurs anti-github, utilisez vous du hardware 100% libre dans votre engouement infini? Ha-ha… Je soupçonne même certains d’avoir un Mac. Lol.

  12. Nico

    Tout n’est pas un dû …

    GitHub fournit un hébergement gratuit de projets, beaucoup de dev ne publieraient pas leur projets sans ça.

    Si GitHub ferme, le danger ? Devoir migrer ses dépôts.

    GitHub est une plateforme propriétaire ? Et alors, ça n’a rien à voir avec les codes open source hébergé et accessible au public … Je préfère héberger mes projets sur GitHub qui ne fournit pas les sources de sa plateforme que sur sourceforge qui n’est pas ergonomique et qui est un vrai sapin de noel publicitaire (j’ai rien contre l’amortissement par la pub mais sur sourceforge c’est abusé).

    Rien n’empêche chaque développeur de se gérer son dépot (bug tracker, etc) sur son propre serveur Lui aussi devrait être gratuit ? Certains hébergeurs offrent un espace gratuit pour les projets open source. Certains s’ofusqueront du caractère publicitaire de ce type d’offre … On à rien sans rien, il reste tout de même le choix de sortir sa carte bleu (même at home ça a un prix).

    Quant à l’argument des issues (bug tracker, feature, …), docs (wiki) hébergé de façon propriétaire … Je rappelle que c’est comme tout, il est de la responsabilité de chacun de faire ses sauvegardes sur un autre support.

    Il est tout à fait possible de faire un backup quotidien des données du projets (bugs trackers, etc) via l’API de Github.

    P. à écrit précédent «  » »On ne peut pas défendre l’idéologie du libre et se baser sur une plate-forme fermée tel que github. Git en tant que tel est une belle avancée tandis que github ne vaut pas mieux que facebook niveau ouverture. » » »

    On ne pas défendre l’idéologie du libre et avoir des idées aussi fermées 😉 Quant à Facebook leur modèle économique basé sur la vie privée et la revente d’information.

    Moi aussi j’en ai marre des fanboys dans les commentaires, en général se sont ceux qui contribuent pas dans des projets libres. Je gère quelques projets open source plus ou moins connu et contribut à d’autres, les fanboys aux idées bien arrêtés sont le fléau du libre :

    – pas ou peu de contributions
    – font perdre du temps aux développeurs
    – sans compter la réduction de la crédibilité à cause d’argument naïf calqués sur le communisme et de vielle dictature (lorsque le choix pour un développeur ou une société se porte sur la libéralisation des sources ou non, ce type d’ambiance fait peur d’ouvrir la boîte de Pandore) .

    Le libre ne doit pas être tourné vers une dictature d’idées arrêtés martelés à toutes occasions, le libre tel que vue par certains n’est autre qu’un concept privateur de liberté sur le travail de ceux qui y contribut.

    Il y a d’autres raisons à ne pas fournir les sources de sa plateforme, perso je ne fournis pas les sources des sites qui hébergent une parti de mes projets libres principalement car c’est un risque pour la sécurité, certains (concurents ou pirates) pourrait y trouver un faille pour tout plomber.

    Puis lorsqu’on passe des jours voir semaines à développer des choses, c’est une liberté de rester maître du travail que qu’on offre et celui qu’on vend. Le frigo ne se remplit pas tout seul et les entités qui nous facturent (loyer, EDF, docteur, vêtement, …) ne sont pas bénévoles parce qu’on l’est sur certains projets 😉

    Moi aussi j’en ai marre des fanboys dans les commentaires, beaucoup ne contribuent pas dans des projets libres mais tous mettent beaucoup d’énergie à les plomber.