Le respect dans l'open-source
Sur ce blog et ailleurs, je parle beaucoup de github, ces derniers temps.
Et pour cause, depuis que j’ai réussi à passer au-dessus de ma “pudeur de l’open-source“, je passe énormément de temps à partager/publier des outils, contribuer à d’autres en corrigeant des bugs ou ajoutant des fonctionnalités sur des projets que j’aime ou utilise régulièrement.
Mais il y a toutefois un truc qui me fait régulièrement tiquer, c’est le manque de respect de certains propriétaires de projets envers les contributeurs.
Et ce manque de respect a pour tendance de saper les fondations même de l’open-source.
Récemment, sur un projet assez conséquent (et fort utilisé), que j’utilises moi-même énormément et auquel j’ai participé quelques fois en corrigeant des bugs et ajoutant quelques fonctionnalités, un utilisateur a soumis une pull request amenant quelques nouvelles fonctionnalités.
En réponse, un des mainteneurs du projet lui a simplement et assez sèchement répondu que son code n’était pas propre et pas testé. Sans plus de précisions, sans plus de pincettes.
Attention, je ne dis pas que la qualité de code n’est pas importante, au contraire, je suis moi-même très maniaque sur ce point, et mes élèves peuvent en témoigner :)
Mais ce qui m’ennuie, ce n’est pas le fond, c’est la forme, ce manque de respect flagrant pour le travail d’autrui, et ce risque pris et non-assumé de casser la motivation des gens.
Tout aussi récemment, sur l’un de mes projets (un plugin pour grunt), j’ai reçu une pull request d’un développeur qui ajoutait une fonctionnalité intéressante au projet, fonctionnalité à laquelle je n’avais pas du tout pensé.
Seulement, son code était relativement discutable : il ne suivait pas mes guidelines, n’était pas particulièrement optimisé, et surtout ne respectait pas quelques principes de base du projet global (grunt) dans lequel s’inscrivait le mien.
Une bonne idée dans le fond, donc, mais pas dans la forme.
Seulement, moi, je ne sais rien du gars. Est-il débutant ? A-t-il l’habitude du langage en question ? Combien de temps ça lui a pris de faire ces modifications ?
Si ça avait été un de mes élèves, et dans le cadre d’un cours, je pense que j’y serai allé avec humour, et j’aurai répondu le sourire aux lèvres : “c’est bien mais c’est un peu moche, rends ça un peu plus propre, s’il te plait“.
Et ça serait passé, pasque mes élèves me connaissent, savent comment je suis et surtout qu’ils sont là pour apprendre (et qu’avec de l’humour, tout passe).
Mais qui suis-je, moi, pour casser dans son élan un type que je ne connais pas, et qui prend sur son temps (qui est peut-être très rare) pour participer à un projet en soumettant une idée ?
Alors j’ai mergé son code, je l’ai modifié pour qu’il colle à mes attentes, et je l’ai chaleureusement remercié pour ces contributions.
Et quand il consultera le code, il verra que j’ai réécris certaines choses, tout en gardant son idée de base, et peut-être il apprendra des nouveaux trucs, ou pas, mais il aura malgré participé au projet et gardera de cette expérience un bon souvenir, j’espère, en tout cas plus que le gars qui a soumis son code dans l’autre projet et s’est fait rembarré sans autre forme de procès.
La base de l’open-source, c’est le partage et la contribution.
Et si on décourage tous ceux qui ont des bonnes idées, les contributions, y en aura plus des masses…
Il n'y a pas de module de commentaires sur ce blog, principalement pour éviter à devoir gérer avec les spams, la pub, les insultes, ...
Toutefois, si vous avez quelque chose à dire/corriger/modifier, ou simplement exprimer votre opinion sur un post, n'hésitez pas à me contacter sur Twitter (@leny_be).