À chaque début d’année son lot de bonnes résolutions. Et si l’une d’entre elles serait de se rendre compte que Github ce n’est pas si rose que ce monde de poneys et de poulpes gentils que l’on vous rabâche à chaque fois que l’on vous parle de cette plateforme ?
Un des buts de cet article, bien qu’il ne soit pas objectif, est de donner des éléments de réflexion au petit commiteur curieux qui n’a pas encore totalement vendu son âme au système. Il va également me permettre de cracher un bon coup sur cette plateforme que tout le monde idéalise en oubliant que derrière une entreprise fait tout ce qu’elle peut pour ramasser les sous.
Petits rappels sur Git
Revenons pendant un instant sur l’élément central de ce service qui en a en parti fait son succès : le gestionnaire de versions Git.
Décentralisation
L’essence même de Git, c’est la décentralisation.
Cela va à l’encontre des autres systèmes de gestion de version moins utilisés tel que le très souvent blâmé Subversion qui, lui, nécessite un serveur central pour pouvoir fonctionner correctement.
Logiciel libre
Git est également un outil libre ! Il est disponible sous la très connue GNU General Public License version 2.0.
L’exploit de Github
Vous ne voyez pas où je veux en venir ?
Github, c’est l’exploit de prendre un outil libre et décentralisé pour en faire une plateforme centrale et propriétaire. C’est d’autant plus ironique quand on nous sort trop souvent que c’est également la plateforme de référence pour le monde de l’opensource.
Lavage de cerveau
À quoi bon savoir comment partager un repository Git avec d’autres personnes si Github peut le faire ? Derrière cette phrase se cache bien une critique de l’assistance (un peu trop) poussée qui force les utilisateurs à penser à Github dès qu’ils veulent partager du code.
L’un des buts de Github est de vous accoutumer à ses outils, progressivement, de manière à rendre ses outils de plus en plus incontournables au cours du temps pour les utilisateurs.
On parlait au début d’hébergement de repo Git, mais maintenant tout ce qui concerne un projet est centralisé : gestion des bugs, wiki pour le manuel d’utilisation, etc. ce qui tend à rendre désuet les sites indépendants de présentation de projet, un peu de la même manière que Sourceforge.
Ça peut également se retrouver dans le comportement de certains développeurs qui vous enverront un « c’est sur le Github » sec à la moindre question au lieu de réfléchir à la visibilité de sa documentation qui entraîne ce genre de questions.
Conséquences pour les particuliers
Si vous voulez créer un projet mais que vous ne voulez pas vraiment le partager (code propriétaire, projet secret pour dominer le monde, …), et que vous pensez « Github », alors on peut au choix :
- Utiliser un projet public en espérant que personne ne regarde trop ce qu’il y a dessus.
- Prendre un plan payant.
Il est assez facile de trouver des exemples du premier cas ; en se promenant un peu on trouve des étudiants qui hébergent des codes de leurs TPs qu’ils ont en cours par exemple.
Évidemment, avec un peu de réflexion on peut aussi envisager les deux autres solutions suivantes :
- Ne pas pousser le dépôt sur Github mais le garder en local, par contre on ne peut plus collaborer dessus.
- Utiliser un serveur perso pour gérer soit-même ses collaborateurs avec un minimum de gestion des droits.
Conséquences pour les entreprises
Afin d’attirer des développeurs dans une entreprise on peut envisager de les convaincre de rejoindre la boite en leur proposant un cadre familier, avec les outils avec lesquels ils sont habitués à travailler.
Rien de tel que de souscrire à un abonnement pour entreprise hors de prix afin de vendre ses offres d’emploi avec cet appât du « nous aussi on est cool, on utilise Github, rejoins nous, on est bien ».
Vers des solutions alternatives ?
Utiliser un autre service propriétaire
Ce ras le bol de Github ne date pas d’hier et je n’ai pas attendu cet article pour passer à autre chose.
Pendant quelques temps je me suis tourné vers un des concurrents de Github, à savoir Bitbucket, surtout parce-qu’il permettait d’héberger des repositories privés. Mais leur interface web est vraiment dégueulasse, donc j’ai laissé tombé leurs services (je n’ai pas détruit mon compte mais je ne maintient plus à jour mes projets sur cette plateforme).
Auto-hébergement
La solution que j’ai finalement adopté après un peu de recherche et de tests en local est une copie à distance de mes dépôts Git sur un serveur que je loue quelques euros par mois.
Alors certes ce n’est plus gratuit, mais j’ai un contrôle total sur mes repositories et je peux en héberger autant que je veux, qu’ils soient publics ou privés (et puis de toute façon quand un service est gratuit sur Internet ça signifie souvent que vous en êtes le produit, sauf quand c’est associatif).
Ça sera sans doute moins cher que de prendre un plan payant chez Github qui ne donne le droit qu’à un nombre limité de dépôts privés.