Pourquoi on ne viendra pas vous plagier

Mise en situation : un codeur débutant vient de finir de coder un jeu du snake avec une interface graphique de la mort, des couleurs et du son partout, et tout, et tout. Tout fier de sa création, il va la poster dans un forum de programmation, afin de recevoir un retour.

Un codeur plus expérimenté télécharge l'archive, l'ouvre… Et ne voit qu'un exécutable avec des ressources. Son cri de guerre monte alors dans sa gorge : Mais où sont les sources, nom d'un chien ?

Comment demander du feedback en faisant tout pour ne pas en avoir

À cette question, le codeur débutant a deux réponses possibles.

Pourtant, là est le but d'un forum de programmation : aider les gens à mieux programmer. Mais il y a des posteurs qui refusent obstinément de donner les sources. Cet article s'adresse à ces gens-là, car vous passez à côté d'une aide formidable ! L'expérience des « vétérans » du forum pourrait clairement vous aider, mais personne ne pourra rien pour vous tant que les sources ne seront pas téléchargeables quelque part.

Citez vos sources !

Alors, la plupart du temps, la crainte principale est : « et si un vil plagieur pompait mon jeu et se l'appropriait, voire le vendait ? ». C'est aussi souvent pour cette raison que les programmeurs veulent inclure toutes les ressources de leur jeu dans l'exécutable, afin d'en faire un seul fichier.

Pourtant, un plagieur décidé pourrait clairement modifier le jeu ou les ressources, même planquées dans un exécutable, avec un éditeur de ressources ou un désassembleur. Rien ne l'empêcherait de remplacer le « copyright Da_C0D3RZ » par un « copyright Longteeth Inc », et de le distribuer. Ce serait un peu plus long, un peu plus difficile, mais il pourrait.

Or, si Da_C0D3RZ avait publié son exécutable avec ses sources et ses ressources en clair, des gens les auraient téléchargées. Dans le lot, certains seront peut-être des plagieurs, mais la plupart ne feront que jeter un coup d'oeil au tout. Ces gens là ne feront rien de mal, mais il constituent des témoins que Da_C0D3RZ a bien écrit tel jeu avant Longteeth Inc.

Quand je parle de témoins, il ne s'agit pas forcément de faire un procès au plagieur. D'ailleurs, pour une œuvre si petite et avec si peu d'éléments, les procédures judiciaires n'en valent souvent pas la peine. Mais tous ces gens pourront faire connaître que le programme sur le site de Longteeth ressemble quand même vachement au truc qu'ils ont téléchargé il y a 2 mois sur la page perso de C0D3RZ, et mettre la honte à Longteeth Inc. Bien fait.

Un peu d'humilité

Vous pensez vraiment avoir fait un programme suffisamment beau, révolutionnaire, génial pour que tout le monde aie envie de vous le piquer ? Si oui, c'est tout de même assez prétentieux. Des Casse-briques, des Tetris, des Snake, on en trouve par dizaines sur le Web. Alors, qui va venir vous piquer le votre, spécifiquement ? Et pourquoi le ferait-il ?

Soit le plagieur ne sera qu'un script kiddie de base, et personne ne s'intéressera à lui -- sa page perso fera 20 pauvres visites dans la semaine. Soit le plagieur sera un professionnel, et il reprendra votre idée en ré-implémentant tout lui-même, au quel cas vous n'aurez rien à dire : les idées appartiennent à tout le monde, on ne peut pas les breveter.

Donc, dans tous les cas, vous n'avez pas grand chose à perdre à publier les sources de vos applications ! Vendre des copies de logiciel est assez fatiguant (gestion des numéros de série, et ainsi de suite) pour un bénéfice relativement maigre pour de petites applications comme celles que nous développons, à notre niveau de programmeurs-hobbyistes indépendants.

Alors, quitte à distribuer l'exécutable gratuitement, pourquoi pas les sources ? Cela permettrait aux gens qui n'ont pas le même OS que vous de recompiler votre magnifique programme chez eux, ou encore de corriger eux-mêmes un bug gênant s'il y en a un, sans attendre une réaction de votre part.

Aider et se faire aider

Ainsi, vous pourrez recevoir des patches de gens qui auront amélioré vos sources, et tout le monde y gagnera - vous comme les utilisateurs. Plus généralement, les programmeurs expérimentés lisant vos codes pourront vous donner une tonne de conseils qui vous permettront de vous améliorer.

Ces conseils sembleront parfois assez secs, ils se présentent sous la forme de critiques négatives. Il faut bien garder à l'esprit que les gens sur les forums ou sur IRC ne vous jugent pas personnellement, ils ne font que vous dire quelles points de votre programme il faudrait améliorer. « La façon dont tu nommes tes variables est mauvaise » n'est pas une insulte contre vous, mais simplement une mise en garde qui vous évitera de refaire la même erreur.

Cet état de fait force les gens qui publient leur sources à faire attention à leurs codes, notamment à la lisibilité et aux commentaires. Ça vous force à coder proprement, ce qui bénéfique à tout le monde - vous et lecteurs - sur le long terme !

De plus, bien rapidement, ce sera à votre tour d'aider les gens. En effet, lire de code source est aussi important que d'en écrire lors de l'apprentissage de la programmation, et vos programmes pourront servir d'exemple aux codeurs moins expérimentés. Raison de plus pour coder de manière impeccable !

Les licences, ça sert à ça

Enfin, fait important : publier les sources n'implique pas forcément d'autoriser la redistribution et la modification du programme. Si vous vous contentez de distribuer les sources, sans préciser de licence ou d'autorisations particulières, alors vos droits d'auteur s'appliquent. Ces droits s'appliquent dès que vous créez quelque chose : il n'y a rien de particulier à faire. Vous n'avez pas besoin de payer ou de s'enregistrer.

Lorsque vos droits d'auteur s'appliquent, les gens peuvent télécharger votre programme depuis votre site, l'exécuter, mais pas le distribuer - ni intact, ni modifié. Si vous mettez les sources sur votre site, c'est exactement la même chose : les gens peuvent les compiler chez eux, à la rigueur les modifier un peu, mais ils ne peuvent pas les donner à quelqu'un d'autre, ni diffuser de modifications.

Ainsi, « montrer les sources » ne signifie nullement « faire de vos programmes des logiciels libres ». En outre, si vous souhaitez contrôler plus finement ce que vos utilisateurs peuvent faire avec vos oeuvres, vous pouvez utiliser des licences logicielles. Elles spécifient clairement ce que chacun a le droit ou l'interdiction de faire, et par cela évitent bien des malentendus.

Conclusion

Voilà, j'espère vous avoir encouragé à publier les sources de tous vos programmes, et surtout avoir tué quelques craintes que vous pourriez avoir.

Si vous avez toujours peur, le mieux, c'est de faire un essai : prenez un petit programme, un truc sans valeur, que vous avez fait en 2 minutes, publiez les sources sur votre page d'accueil ou un forum. Constatez que personne n'a plagié. Recommencez avec un programme un peu plus gros, et ainsi de suite.