Yves Rutschle, mardi 3 avril 2007, 00:22:37 CEST > > On Mon, Apr 02, 2007 at 09:03:08PM +0200, Glennie Vignarajah > wrote: > > > Quand on change des APIs, tous les programmeurs sont fous > > > de rage, et il est largement admis[1] que ça ne se fait > > > pas. > > > > Ce qui n'est pas le cas de l'API du Kernel Linux( notament > > pour ceux utilisés pour le dev. des drivers) > > Voir: http://www.kroah.com/log/linux/ols_2006_keynote.html > > C'est à l'intérieur du même programme, donc tout à fait > différent. Essaie de changer des valeurs dans include/ qui > sont aussi utilisées dans les libcs pour voir comme tu > deviendras populaire ;) Et à niveau légèrement plus haut, > les APIs sont des standards ISO (POSIX).
C’est plutôt ennuyeux pour les auteurs de modules (externes à l’arbre principal). > Pour parler d'API stable pour les drivers, il faudrait > regarder ce que Hurd fait. Ça m'étonnerait que ça change > beaucoup (bon, les mauvaises langues risquent de dire que > rien ne change du tout dans Hurd...) En ce qui concerne Windows (c’est toi qui a commencé à en parler dans un précédent message :oP), ils ont conservé leurs API internes (et les erreurs, petites ou grosses, qui vont avec) pour la rétro-compatibilité des pilotes. Ils ont aussi dû conserver les fonctions et structures cachées (donc hors API) parce que des petits malins les ont utilisées (ils n’avaient, semble-t-il, pas toujours la possibilité de faire plus propre). (Argument de MS : si le programme Machin ou le périphérique Truc ne fonctionne plus après une mise à jour du système, on en imputera la faute à MS, pas à l’auteur de Machin ou du pilote de Truc, même si ces logiciels font d’immondes trifouillages.) Donc, soit on traîne les cochonneries et on grossit, soit on nettoie et refactorise de temps en temps. -- Sylvain Sauvage