Parceque là on va encore passer pour des guignols.
Les arguments présentés dans la lettre de la FSF sont certes frappants, amrquants, impreesionants, mais ils sont surtout démontables en une dizaine de seconde par tout juriste qui s'est penché plus de dix secondes sur le problème. Et entre une lettre d'un membre d'un mouvement engagé et les conseils à 400¤ de l'heure d'un juriste professionnel le choix sera très vite fait.
Je sais que le monde du libre a pris l'habitude de lire en diagonale l'entête des officialisations de brevet avant de s'exclamer "au mon dieu, Microsoft a breveter le double click". Mais il y a entre vignt et deux cents pages derrières qui décrivent précisément les utilisations, les champs d'application et les implémentations existantes. Ce sont elles qui font ou défont le brevet devant le tribunal en cas de litige.
Si Pythagore avait découvert son théorème hier et qu'il voulait le breveter il devrait définir son champs d'application et toutes les utilisations qu'il souhaite couvrir. Pas facile. Et si il y arrivait quand même ? Et bien ca ne lui servirait à rien, le théorème de pythagore est un théorème, donc une constation de la vérité d'un résultat moyennant certains postulats. Vouloir breveter le théorème de pythagore revient exactement à vouloir breveter le fait que le ciel soit bleu. On ne peut poser des brevets que sur des méthodes, des moyens de parvenir à une fin précise. Le triangle rectangle n'a pas besoin de Pythagore pour que le carré de l'hypothénuse soit égal à la somme des carrés des deux autres cotés. Avant même que le triangle rectangle ne soit conceptualisé par les premiers mathématiciens il était déjà comme ça.
Un exemple plus intelligent (mais contrable également) aurait été de parler de la brevetabilité de la division euclidienne. Là on a bien une méthode, un "truc" qui marche à tous les coups, alors on dépose ? Non. La division euclidienne s'apprend dès l'age de 8 ans, on peut donc facilement en déduire qu'elle est triviale pour un mathématicien. Même un mauvais mathématicien, qui ne comprend pas "pourquoi" ca marche sera capable d'utiliser la méthode pour diviser le nombre a par le nombre b. Hors si c'est trivial, ce n'est pas brevetable. Point final.
Un exemple encore plus intelligent aurait été d'évoquer un truc très pointu à la mode. Au hasard prenons la théorie des noeuds. Supposons un mathématicien génial qui découvre demain un algorithme qui permet de déterminer si deux noeuds évoulant en dimension n (n>2) sont identiques ou non (pour ceux qui ne comprennent pas de quoi je parle, qu'ils se rassurent moi non plus, il suffit de savoir que c'est un des Graals mathématiques du moment.) D'autres experts planchent sur son algorithme pendant des mois pour vérifier sa validité et confirment finalement que la méthode marche. Et pourtant toujours pas de brevets pour notre mathématicien génial, Parceque quand va arriver le moment ou il va devoir créer, ou au moins conceptualiser une implémentation de sa découverte il va avoir du mal. Parceque qu'implémenter de l'abstrait pur c'est pas évident. On peut le représenter, en parler, tergiverser pendant des heures sur ses capacités en tant qu'outil ou en tant que forme d'art... mais l'implémenter c'est une autre paire de manche. Créer une machine qui prend en entrée deux noeuds de dimension n au sens pur du terme (ie : pas une représentation de ces deux noeuds) c'est pas gagné d'avance.
Pour des raisons similaires il est impossible de breveter la norme IFRS ou son pendant IAS. La norme IFRS est une obligation, il faut la suivre. Elle n'a rien d'innovant, c'est une décision, un accord. Elle n'est pas plus brevetable que le fait que je décide de commander de la glace ou une part de gateau au restaurant. On a décidé que dans la colonne 23 de la fiche EB137 on mettait la somme des colonnes 12 à 22 de cette même fiche. Rien n'a été créé, rien n'a été inventé c'est juste "comme ça".
Quand au fait de faire cette somme sur ordinateur et de remplir automatiquement par un algorithme quelconque la colonne 23 avec la somme des contenus des colonnes 12 à 22 c'est trivial pour tout informaticien, c'est même trivial pour toute personne qui a fait plus de 20 minutes de formation excel dans sa vie.
Maintenant imaginez que par quelque processus miraculeux la lettre de la FSF soit effectivement arrivé jusqu'à M Proovost que celui-ci l'ai lu et qu'il est paniqué en la lisant. Il appelle un de ses conseiller juriste et il lui fait lire la lettre. Le dit conseiller posséde surement une bien meilleure connaissance que moi des brevets et il démonte la lettre surement bien mieux que ce que je viens de faire. Quelle image des opposants aux brevets logiciels s'imprime alors dans l'esprit de M Proovot ?
Le vrai problème des brevets logiciel est simple : normalement pour qu'un brevet soit reconnu comme valide il faut qu'il remplisse trois critères fondamentaux :
- il faut que ce soit innovant
- il faut que ce soit non trivial pour l'homme du métier
- il faut que ce soit implémentable
Dans le cadre de l'informatique on ne sait pas aujourd'hui fixer un seul de ces critères : tout d'abord l'innovation. C'est toujours la première fois en informatique. Par exemple c'ets la première fois que je tappe un message dans firefox 1.0 avec mon kernel 2.6.11.6 fraichement compilé d'il y a à peine une heure sur mon céléron 2.4Ghz en 1280x960 à 85hz sur mon écran 19 pouces. Bref ce qui se produit sur mon ordinateur est une invention perpétuelle. D'un autre coté tout ce que fait mon processeur et ma carte graphique en ce moment avait été prévu per leurs concepteurs avant même que je décide à installer quoi que ce soit. Ce n'est qu'une utilisation d'un outil en silicium qui existait déjà avant et auquel je n'ai apporté aucune nouvelle possibilité. En d'autres termes rien de ce qui tourne sur mon ordinateur n'a été inventé.
En ce qui concerne la trivialité, le paradoxe est encore plus flagrant. Cliquer sur un boutton dans une interface graphique est simple. Adresser de la mémoire est horriblement complexe, l'inverse est vrai également. En tant que dévellopeur je me rend compte de la complexité sous jacente qu'il y a lorsque je frappe sur les touches d emon clavier et que de jolis lettres antialiasés apparaissent sur mon écran. Je sais également faire un kalloc() et aller taper directement dans la mémoire en adressage réel en douze secondes. D'un autre coté j'arrive très bien a appuyer sur une touche, par contre mes hacks me remontent encore un peu trop souvent des "kernel panic". Si demain on me demandait si la gestion de mémoire ou le click de souris sont des méthodes "triviales" je serais bien en peine de répondre.
Un autre aspect de la trivialité qui est incernable c'est la notion "d'homme du métier". Linus, A.Cox, Robert Love. Trois personnes travaillant à plein temps et à tous les niveaux sur le même projet. Lequel est "l'homme du métier", parceque de l'un à l'autre les notions de "trivialité" changent beaucoup.
Le dernier aspect, celui de l'implémentabilité, est le plus drole. On peut le résumer ainsi : "Machine de Turing complète". En d'autres termes si on fait fi du temps d'éxecution et de l'occupation mémoire on peut écrire un programme en C pour tout algorithme calculable. Au final tout est implémentable. Mais il y a un hic, aucun programme au monde ne pourra jamais prendre en entrée un n'importe quel autre programme et déterminer si oui ou non celui ci va finir. Ce problème est dit 'non décidable'. Pour résumer : pour valider de façon certaine une implémentation il faut la "prouver". Le problème de la preuve est un problème complexe, sur un OS évolué, le plus simple des programmes peut se retrouver mis continuellement en attente par des jeux d'interruptions, de priorités et de blocages de ressources qui font qu'il ne se terminera jamais. Donc l'implémentation du plus simple des programmes Linux est fausse.
Aucun des trois critères fondamentaux de validation des brevets n'est donc vérifiable. A moins de restriendre sa définition même a des cas particuliers limités. Il ne faut pas breveter le logiciel non pas pour des raisons éthiques, pro-concurrences ou philosophiques mais parceque ca n'est pas possible. A l'heure actuelle compte tenu de nos connaissances sur les logiciel et de la définition même de la brevetabilité breveter un logiciel est aussi absurde que de divisier par zéro. L'opération ne peut pas s'appliquer sur l'ensemble désigné.
Alors par pitié, évitez les arguments de type "si on avait déposé un brevet sur l'eau qui coule, tout le monde serait mort de soif" parceque c'est idiot et inutile. Il y a des arguments beaucoup plus forts en stock.
# Il va falloir arreter les anneries très vite.
Posté par Jerome Herman . En réponse à la dépêche Lettre du président de la FSF Europe à l'EICTA au sujet des brevets logiciels. Évalué à 8.
Les arguments présentés dans la lettre de la FSF sont certes frappants, amrquants, impreesionants, mais ils sont surtout démontables en une dizaine de seconde par tout juriste qui s'est penché plus de dix secondes sur le problème. Et entre une lettre d'un membre d'un mouvement engagé et les conseils à 400¤ de l'heure d'un juriste professionnel le choix sera très vite fait.
Je sais que le monde du libre a pris l'habitude de lire en diagonale l'entête des officialisations de brevet avant de s'exclamer "au mon dieu, Microsoft a breveter le double click". Mais il y a entre vignt et deux cents pages derrières qui décrivent précisément les utilisations, les champs d'application et les implémentations existantes. Ce sont elles qui font ou défont le brevet devant le tribunal en cas de litige.
Si Pythagore avait découvert son théorème hier et qu'il voulait le breveter il devrait définir son champs d'application et toutes les utilisations qu'il souhaite couvrir. Pas facile. Et si il y arrivait quand même ? Et bien ca ne lui servirait à rien, le théorème de pythagore est un théorème, donc une constation de la vérité d'un résultat moyennant certains postulats. Vouloir breveter le théorème de pythagore revient exactement à vouloir breveter le fait que le ciel soit bleu. On ne peut poser des brevets que sur des méthodes, des moyens de parvenir à une fin précise. Le triangle rectangle n'a pas besoin de Pythagore pour que le carré de l'hypothénuse soit égal à la somme des carrés des deux autres cotés. Avant même que le triangle rectangle ne soit conceptualisé par les premiers mathématiciens il était déjà comme ça.
Un exemple plus intelligent (mais contrable également) aurait été de parler de la brevetabilité de la division euclidienne. Là on a bien une méthode, un "truc" qui marche à tous les coups, alors on dépose ? Non. La division euclidienne s'apprend dès l'age de 8 ans, on peut donc facilement en déduire qu'elle est triviale pour un mathématicien. Même un mauvais mathématicien, qui ne comprend pas "pourquoi" ca marche sera capable d'utiliser la méthode pour diviser le nombre a par le nombre b. Hors si c'est trivial, ce n'est pas brevetable. Point final.
Un exemple encore plus intelligent aurait été d'évoquer un truc très pointu à la mode. Au hasard prenons la théorie des noeuds. Supposons un mathématicien génial qui découvre demain un algorithme qui permet de déterminer si deux noeuds évoulant en dimension n (n>2) sont identiques ou non (pour ceux qui ne comprennent pas de quoi je parle, qu'ils se rassurent moi non plus, il suffit de savoir que c'est un des Graals mathématiques du moment.) D'autres experts planchent sur son algorithme pendant des mois pour vérifier sa validité et confirment finalement que la méthode marche. Et pourtant toujours pas de brevets pour notre mathématicien génial, Parceque quand va arriver le moment ou il va devoir créer, ou au moins conceptualiser une implémentation de sa découverte il va avoir du mal. Parceque qu'implémenter de l'abstrait pur c'est pas évident. On peut le représenter, en parler, tergiverser pendant des heures sur ses capacités en tant qu'outil ou en tant que forme d'art... mais l'implémenter c'est une autre paire de manche. Créer une machine qui prend en entrée deux noeuds de dimension n au sens pur du terme (ie : pas une représentation de ces deux noeuds) c'est pas gagné d'avance.
Pour des raisons similaires il est impossible de breveter la norme IFRS ou son pendant IAS. La norme IFRS est une obligation, il faut la suivre. Elle n'a rien d'innovant, c'est une décision, un accord. Elle n'est pas plus brevetable que le fait que je décide de commander de la glace ou une part de gateau au restaurant. On a décidé que dans la colonne 23 de la fiche EB137 on mettait la somme des colonnes 12 à 22 de cette même fiche. Rien n'a été créé, rien n'a été inventé c'est juste "comme ça".
Quand au fait de faire cette somme sur ordinateur et de remplir automatiquement par un algorithme quelconque la colonne 23 avec la somme des contenus des colonnes 12 à 22 c'est trivial pour tout informaticien, c'est même trivial pour toute personne qui a fait plus de 20 minutes de formation excel dans sa vie.
Maintenant imaginez que par quelque processus miraculeux la lettre de la FSF soit effectivement arrivé jusqu'à M Proovost que celui-ci l'ai lu et qu'il est paniqué en la lisant. Il appelle un de ses conseiller juriste et il lui fait lire la lettre. Le dit conseiller posséde surement une bien meilleure connaissance que moi des brevets et il démonte la lettre surement bien mieux que ce que je viens de faire. Quelle image des opposants aux brevets logiciels s'imprime alors dans l'esprit de M Proovot ?
Le vrai problème des brevets logiciel est simple : normalement pour qu'un brevet soit reconnu comme valide il faut qu'il remplisse trois critères fondamentaux :
- il faut que ce soit innovant
- il faut que ce soit non trivial pour l'homme du métier
- il faut que ce soit implémentable
Dans le cadre de l'informatique on ne sait pas aujourd'hui fixer un seul de ces critères : tout d'abord l'innovation. C'est toujours la première fois en informatique. Par exemple c'ets la première fois que je tappe un message dans firefox 1.0 avec mon kernel 2.6.11.6 fraichement compilé d'il y a à peine une heure sur mon céléron 2.4Ghz en 1280x960 à 85hz sur mon écran 19 pouces. Bref ce qui se produit sur mon ordinateur est une invention perpétuelle. D'un autre coté tout ce que fait mon processeur et ma carte graphique en ce moment avait été prévu per leurs concepteurs avant même que je décide à installer quoi que ce soit. Ce n'est qu'une utilisation d'un outil en silicium qui existait déjà avant et auquel je n'ai apporté aucune nouvelle possibilité. En d'autres termes rien de ce qui tourne sur mon ordinateur n'a été inventé.
En ce qui concerne la trivialité, le paradoxe est encore plus flagrant. Cliquer sur un boutton dans une interface graphique est simple. Adresser de la mémoire est horriblement complexe, l'inverse est vrai également. En tant que dévellopeur je me rend compte de la complexité sous jacente qu'il y a lorsque je frappe sur les touches d emon clavier et que de jolis lettres antialiasés apparaissent sur mon écran. Je sais également faire un kalloc() et aller taper directement dans la mémoire en adressage réel en douze secondes. D'un autre coté j'arrive très bien a appuyer sur une touche, par contre mes hacks me remontent encore un peu trop souvent des "kernel panic". Si demain on me demandait si la gestion de mémoire ou le click de souris sont des méthodes "triviales" je serais bien en peine de répondre.
Un autre aspect de la trivialité qui est incernable c'est la notion "d'homme du métier". Linus, A.Cox, Robert Love. Trois personnes travaillant à plein temps et à tous les niveaux sur le même projet. Lequel est "l'homme du métier", parceque de l'un à l'autre les notions de "trivialité" changent beaucoup.
Le dernier aspect, celui de l'implémentabilité, est le plus drole. On peut le résumer ainsi : "Machine de Turing complète". En d'autres termes si on fait fi du temps d'éxecution et de l'occupation mémoire on peut écrire un programme en C pour tout algorithme calculable. Au final tout est implémentable. Mais il y a un hic, aucun programme au monde ne pourra jamais prendre en entrée un n'importe quel autre programme et déterminer si oui ou non celui ci va finir. Ce problème est dit 'non décidable'. Pour résumer : pour valider de façon certaine une implémentation il faut la "prouver". Le problème de la preuve est un problème complexe, sur un OS évolué, le plus simple des programmes peut se retrouver mis continuellement en attente par des jeux d'interruptions, de priorités et de blocages de ressources qui font qu'il ne se terminera jamais. Donc l'implémentation du plus simple des programmes Linux est fausse.
Aucun des trois critères fondamentaux de validation des brevets n'est donc vérifiable. A moins de restriendre sa définition même a des cas particuliers limités. Il ne faut pas breveter le logiciel non pas pour des raisons éthiques, pro-concurrences ou philosophiques mais parceque ca n'est pas possible. A l'heure actuelle compte tenu de nos connaissances sur les logiciel et de la définition même de la brevetabilité breveter un logiciel est aussi absurde que de divisier par zéro. L'opération ne peut pas s'appliquer sur l'ensemble désigné.
Alors par pitié, évitez les arguments de type "si on avait déposé un brevet sur l'eau qui coule, tout le monde serait mort de soif" parceque c'est idiot et inutile. Il y a des arguments beaucoup plus forts en stock.