J'interviens actuellement avec @Animal chez un client qui tire 200 Mo de jars pour exposer une simple API REST dont la principale activité se résume à de vulgaires CRUD operations... Comptez en plus 200 Mo de JVM + Tomcat pour la faire tourner et je ne sais combien de Go pour la base Oracle. Le bouzin met 1h40 à builder sur la CI pour vous donner un ordre de grandeur de l'immondice.
Mais pourquoi vous parler de cela ? Donnez-moi le code de l'application jugée "raciste" que je puisse l'analyser, car aucun logiciel ne se résume à "un simple algo". Les softs d'aujourd'hui sont des imbroglio de frameworks où des aspects (au sens Aspect Oriented Programming du terme) sont injectés au runtime en permanence.
Donc à moins que dans le code il y ait quelque chose du type :
if (person.isBlack()) {
treatment.rejected(person)
}
else {
treatment.granted(person)
}
cet algo soit disant raciste a très peu de chance d'être raciste.
Je subodore que comme toujours, l'horreur a été codée avec les pieds, que les tests ont été joués à la main sur des use-cases on ne peut plus standards du type "patient blanc, 50 ans, foie malade" et que les use-cases aux limites du type "patient noir, xxx" n'ont jamais été testés car a priori jugés trop chers et redondant, ou au motif que la population noire états-unienne n'est pas suffisamment importante aux USA pour justifier un investissement particulier (ô joie de cette saloperie de capitalisme).
Ajoutez des critères économiques parfaitement crédibles dans une anti-nation comme celle de l'oncle Sam comme un filtre du type "80% des noirs états-uniens n'ont pas l'assurance santé leur permettant de se faire soigner" et hop, tout un pan de la population est exclue sur un critère débile car les clients patients ne pourront jamais payer leur intervention ; donc pourquoi s'embêter avec eux alors, s'écrit un économiste néo-libéral au fin fond de l'open-space ?
J'affabule à votre avis ? Je divague ? Il y a 4 ans, chez Vidal, sur une application interne écrite en Java/Scala, les use-cases de tests pour identifier des maladies en fonction des symptômes étaient (accrochez-vous) : homme, 40 ans, enceinte, etc.
Oui oui vous avez bien lu : un homme enceinte, comme scenario standard... Mais comment est-ce possible vous dites-vous ? Évident pourtant, parce que c'était plus rapide à jouer, parce que pour chaque méthode/fonction cela représentait moins de valeurs à saisir, moins de variables à initialiser, moins de choses à mocker. Alors les non-développeurs qui crient au scandale, qui disent "l'algo est raciste" et mieux encore qui s'exclament "non c'est le développeur qui est raciste" vous êtes complètement à côté de la plaque je pense.
Nous sommes des plateaux entiers à écrire et modifier à l'arrache des centaines de milliers voire parfois des millions de lignes de code (c'est typiquement le cas où j'interviens avec @Animal en ce moment). Les "algos" comme vous dites commencent dans un endroit du code et souvent se terminent dans deux où trois autres applications qui ne sont même pas écrites avec les mêmes technos. On est trèèèèèès loin des petits scripts bash/python/PHP croquignolets comme tout que vous avez eu la chance de lire ou d'écrire.
En résumé nous savons que :
- Une application médicale buggait dès que le patient était noir.
- Des équipes ont identifié ce problème gravissime qui a certainement tué des milliers de personnes.
- Demain, les développeurs qu'ils soient blancs, noirs ou rose bonbon n'écriront pas plus de TU car ils s'en tapent.
- Aucune sanction pour mise en danger de la vie d'autrui ou assassinat par négligence caractérisée ne pèsera sur l'éditeur du logiciel (mais les SJW auront bien gueulé ce qu'il fallait sur Twitter, ouf l'honneur est sauf).
- Dans quelques temps, une autre "application raciste" fera à la fois la une et la joie des journaux dans un pays où la notion de race humaine existe (ce qui n'est pas le cas en France).
Bref, je note l'article à Torchon/20 et je pense être gentille.