Every other industry has professional standards and requirements that transcend any one job description. Why do we so often act like software development doesn’t?
Il y a des organisations qui essaient, dont l'ACM par exemple : https://ethics.acm.org/
Mais en pratique, effectivement, la proportion de développeurs qui adhèrent à un code éthique spécifique et réfléchi est vachement faible. Il serait peut-être temps de s'y mettre.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
Il ne parle pas d'éthique et il y a assez peu de corporations qui ont un code éthique, il me semble. Les seuls que je connais ne sont pas de l'industrie (les médecins, les avocats,…).
La citation semble plus parler de normes industrielles de qualités comme ISO/IEC 25010:2011, DO-178 ou par exemple MIL-STD-882E. Je me demande vraiment pourquoi ça n'existe pas en dans le développement logiciel ⸮
Blague à part les gens ne sont pas prêt à payer les logiciels qu'ils utilisent 3 ou 4 fois le prix actuel et encore moins de ne serais-ce que payer pour un bon nombre d'entre eux. Et surtout l'industrie informatique est encore assez jeune, on a mis beaucoup de temps à appréhender l'importance de la qualité dans les autres industries et il est particulièrement difficile d'appréhender le problème dans une industrie non physique. Mais ça bouge outre les normes qui existent pour les hauts niveaux de criticité. La mise en place de la RGPD va dans ce sens. De la même manière que d'avoir une traçabilité dans l'agronomie après qu'on se soit rendu compte de problèmes (mettre en place ce genre de loi en 2002, hein ?) ou la
J'ai essayé de mettre mon commentaire à jour trop tard mais mon lien c'est le ACM Code of Ethics and Professional Conduct. Dans le cadre de l'article la deuxième partie me semble tout à fait pertinente et correspond à ce que tu décris.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
L'article parle du fait qu'on peut passer du temps à optimiser, mais qu'on le fait pas. Une bonne partie des raisons ne semblent pas s'appliquer directement au logiciel libre.
Pas directement mais s'appliquent quand même. Quand on regarde les nouveaux projets, peu cherchent à faire léger et tout, et les notes de révisions visent surtout à mettre en avant l'ajout de fonctionnalités (pas toujours utiles à mon goût) et les issues s'allongent tout autant… Pour ces derniers, on voit aussi que les corrections faites sont ajoutées dans de nouvelles versions seulement. Je pense qu'il y a un vision sociétale qui veut qu'on ajoute toujours plus de trucs rapidement et qu'on ne se préoccupe surtout pas d'optimisation des ressources (c'est d'ailleurs la principale raison d'être des fourches non : ajouter des choses et non robustifier l'existant.)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Oui, mais contrairement aux logiciels proprios, n'importe qui ayant du temps ou la motivation peut venir optimiser un logiciel, si l'optimisation est possible.
Et ça ne se fait pas. Donc je pense qu'on peut supposer qu'il y a soit moins de motivation/temps qu'on le croit (et qu'on peut pas imputer ça au manager, ni rien), soit que c'est pas spécialement trivial.
Je parlais surtout de la motivation et le parallèle pour moi est que la façon de penser actuelle fait que c'est implicite sans avoir besoin de manager : l'optimisation, en plus de ne pas sembler "fun", est moins "sexy" et moins vendeur que l'ajout de "feature"s.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Oui, mais c'est aussi parce qu'une fonction qui manque, ça se voit
Un logiciel lent, ou qui utilise "trop" de ressources, ç'est plus difficile à voir, car le matos cache ça.
Si c'est extrêmement visible, tu va le corriger. Sinon, c'est invisible.
Par exemple, ce commit existe car c'était visible que le soft était lent.
Un autre exemple, c'est mon propre code ici et ici. J'en parle parce que je me souviens clairement de comment j'ai constaté le souci.
J'ai codé naïvement (i.e., sans cache), ça marchait suffisamment bien, j'ai rajouté des fonctions, j'ai fini mon soft. Puis j'ai commencé à l'utiliser sur un dépôt plus conséquent (mon dépôt perso, pas celui du boulot), et j'ai vu que c'était vraiment long (3 minutes). J'ai vite diagnostiqué le souci, et en rajoutant 2 caches, je suis passé à 0.3 secondes.
Mais je l'avais pas fait avant parce que pendant mes essais et l'usage en production, c'était pas spécialement visible.
Mon but premier, c'était pas faire de un truc rapide (sinon, j'aurais pas fait du python et de l'ansible), mais de faire un truc qui marche pour un poc. Si ça prends 4 secondes au lieu de 2, je vais m'en foutre un peu, parce que le playbook ansible va déjà prendre plus de temps.
Et comme l'article parle surtout des applications clientes, il faut bien voir que le souci, c'est pas "avoir le choix entre une appli mal optimisé" ou "avoir une appli optimisé" mais souvent "avoir 1 appli non optimisé" et "devoir avoir 3 applis optimisés".
C'est pas juste "on ne donne pas de temps pour optimiser", c'est plus "on veut réduire la charge de travail par 3" (ou 2).
La montée de questions écologiques peut jouer là-dessus : optimisation des chaînes CI/CD pour éviter de brûler une forêt à chaque commit, moins de ressources nécessaires à l'exécution (processeur, mémoire, batterie, disque, réseau, etc.). À condition que ça devienne un critère plus ou moins mesuré et pris en compte, évidemment.
Techniquement, c'est déjà mesuré via le coût des infras clouds.
Les projets libres s'en foutent sans doute car c'est du sponsoring.
Par exemple, Fedora utilise des ressources offertes par AWS de l'ordre de 300k par mois. Je sais pas combien Github investit dans les Github Actions mais c'est sans doute non négligeable.
Tu as aussi souvent l'envie d'avoir un retour rapide, donc tu as déjà des incitations à avoir une chaîne de CI/CD rapide (par exemple, j'ai optimisé une chaîne de CD de site web sur Woodpecker en préchargeant les paquets dans un conteneur avant, c'est passé de 2 minutes à 10 secondes parce j'avais envie que ça déploie vite).
Je crois que c'est essentiellement du à la culture de réutilisation de modules / librairies.
Au final la plupart des developpeurs actuels font de l'assemblage et n'ont aucune maitrise ou idée de l'algorithme et de la qualité du code des librairies qu'ils utilisent. Du coup c'est compliqué d'optimiser quelque chose que tu ne gères pas. Pour pas mal de truc on a tendance à réutiliser une librairie toute faire, essentiellement parce qu'on veut un truc mieux testé, sans bug ou comportement alétoire sur des cas d'usages pas pensé. Et aussi parce que ça accélère grandement le developpement. Du coup au lieu d'écrire juste la petite fonction qui nous sert vraiment (mais qu'on va devoir torturer et tester dans pleins de cas d'usages) on va importer un module énorme qui fait aussi le café et plein d'autres trucs qu'on n'a pas besoin.
un SSD de 128 Go c'est ~10 € et ça devrait suffire largement pour le commun des mortels (moui le 640 kB should be enough for everyone était peu réaliste :/)
à continuer comme cela à cramer du silicium, il n'y aura bientôt plus de sable sur les plages :/
Il y a quelques projets qui font un très bon travail d'optimisation pour fonctionner sur des machines avec de faibles ressources. Je pense par exemple au navigateur web NetSurf, ou à l'éditeur de texte Vim (comparé aux machins modernes de type VSCode par exemple).
Ça ne semble pas trop attirer les utilisateurs ni les contributeurs.
Je pense que dans le cas de vim, on est dans l'inverse. Il y a eu plusieurs forks de vim (neovim, etc), donc ç'est signe soit d'un souci de personnes (comme par exemple certains forks récents), soit de divergences d'objectif (par exemple, moderniser le code en retirant le support des atari ST).
# code éthique
Posté par Krunch (site web personnel) . Évalué à 5.
Il y a des organisations qui essaient, dont l'ACM par exemple : https://ethics.acm.org/
Mais en pratique, effectivement, la proportion de développeurs qui adhèrent à un code éthique spécifique et réfléchi est vachement faible. Il serait peut-être temps de s'y mettre.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: code éthique
Posté par barmic 🦦 . Évalué à 4.
Il ne parle pas d'éthique et il y a assez peu de corporations qui ont un code éthique, il me semble. Les seuls que je connais ne sont pas de l'industrie (les médecins, les avocats,…).
La citation semble plus parler de normes industrielles de qualités comme ISO/IEC 25010:2011, DO-178 ou par exemple MIL-STD-882E. Je me demande vraiment pourquoi ça n'existe pas en dans le développement logiciel ⸮
Blague à part les gens ne sont pas prêt à payer les logiciels qu'ils utilisent 3 ou 4 fois le prix actuel et encore moins de ne serais-ce que payer pour un bon nombre d'entre eux. Et surtout l'industrie informatique est encore assez jeune, on a mis beaucoup de temps à appréhender l'importance de la qualité dans les autres industries et il est particulièrement difficile d'appréhender le problème dans une industrie non physique. Mais ça bouge outre les normes qui existent pour les hauts niveaux de criticité. La mise en place de la RGPD va dans ce sens. De la même manière que d'avoir une traçabilité dans l'agronomie après qu'on se soit rendu compte de problèmes (mettre en place ce genre de loi en 2002, hein ?) ou la
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
[^] # Re: code éthique
Posté par Krunch (site web personnel) . Évalué à 4.
J'ai essayé de mettre mon commentaire à jour trop tard mais mon lien c'est le ACM Code of Ethics and Professional Conduct. Dans le cadre de l'article la deuxième partie me semble tout à fait pertinente et correspond à ce que tu décris.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# Métaphore douloureuse
Posté par cg . Évalué à 4.
J'ai bien aimé cette phrase :
# Et le libre ?
Posté par Misc (site web personnel) . Évalué à 3.
L'article parle du fait qu'on peut passer du temps à optimiser, mais qu'on le fait pas. Une bonne partie des raisons ne semblent pas s'appliquer directement au logiciel libre.
Et pourtant, j'ai pas le sentiment qu'on le fait.
[^] # Re: Et le libre ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3.
Pas directement mais s'appliquent quand même. Quand on regarde les nouveaux projets, peu cherchent à faire léger et tout, et les notes de révisions visent surtout à mettre en avant l'ajout de fonctionnalités (pas toujours utiles à mon goût) et les issues s'allongent tout autant… Pour ces derniers, on voit aussi que les corrections faites sont ajoutées dans de nouvelles versions seulement. Je pense qu'il y a un vision sociétale qui veut qu'on ajoute toujours plus de trucs rapidement et qu'on ne se préoccupe surtout pas d'optimisation des ressources (c'est d'ailleurs la principale raison d'être des fourches non : ajouter des choses et non robustifier l'existant.)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Et le libre ?
Posté par Misc (site web personnel) . Évalué à 3.
Oui, mais contrairement aux logiciels proprios, n'importe qui ayant du temps ou la motivation peut venir optimiser un logiciel, si l'optimisation est possible.
Et ça ne se fait pas. Donc je pense qu'on peut supposer qu'il y a soit moins de motivation/temps qu'on le croit (et qu'on peut pas imputer ça au manager, ni rien), soit que c'est pas spécialement trivial.
[^] # Re: Et le libre ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3.
Je parlais surtout de la motivation et le parallèle pour moi est que la façon de penser actuelle fait que c'est implicite sans avoir besoin de manager : l'optimisation, en plus de ne pas sembler "fun", est moins "sexy" et moins vendeur que l'ajout de "feature"s.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Et le libre ?
Posté par Misc (site web personnel) . Évalué à 4.
Oui, mais c'est aussi parce qu'une fonction qui manque, ça se voit
Un logiciel lent, ou qui utilise "trop" de ressources, ç'est plus difficile à voir, car le matos cache ça.
Si c'est extrêmement visible, tu va le corriger. Sinon, c'est invisible.
Par exemple, ce commit existe car c'était visible que le soft était lent.
Un autre exemple, c'est mon propre code ici et ici. J'en parle parce que je me souviens clairement de comment j'ai constaté le souci.
J'ai codé naïvement (i.e., sans cache), ça marchait suffisamment bien, j'ai rajouté des fonctions, j'ai fini mon soft. Puis j'ai commencé à l'utiliser sur un dépôt plus conséquent (mon dépôt perso, pas celui du boulot), et j'ai vu que c'était vraiment long (3 minutes). J'ai vite diagnostiqué le souci, et en rajoutant 2 caches, je suis passé à 0.3 secondes.
Mais je l'avais pas fait avant parce que pendant mes essais et l'usage en production, c'était pas spécialement visible.
Mon but premier, c'était pas faire de un truc rapide (sinon, j'aurais pas fait du python et de l'ansible), mais de faire un truc qui marche pour un poc. Si ça prends 4 secondes au lieu de 2, je vais m'en foutre un peu, parce que le playbook ansible va déjà prendre plus de temps.
Et comme l'article parle surtout des applications clientes, il faut bien voir que le souci, c'est pas "avoir le choix entre une appli mal optimisé" ou "avoir une appli optimisé" mais souvent "avoir 1 appli non optimisé" et "devoir avoir 3 applis optimisés".
C'est pas juste "on ne donne pas de temps pour optimiser", c'est plus "on veut réduire la charge de travail par 3" (ou 2).
C'est à mon sens significatif.
[^] # Re: Et le libre ?
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
La montée de questions écologiques peut jouer là-dessus : optimisation des chaînes CI/CD pour éviter de brûler une forêt à chaque commit, moins de ressources nécessaires à l'exécution (processeur, mémoire, batterie, disque, réseau, etc.). À condition que ça devienne un critère plus ou moins mesuré et pris en compte, évidemment.
[^] # Re: Et le libre ?
Posté par Misc (site web personnel) . Évalué à 3.
Techniquement, c'est déjà mesuré via le coût des infras clouds.
Les projets libres s'en foutent sans doute car c'est du sponsoring.
Par exemple, Fedora utilise des ressources offertes par AWS de l'ordre de 300k par mois. Je sais pas combien Github investit dans les Github Actions mais c'est sans doute non négligeable.
Tu as aussi souvent l'envie d'avoir un retour rapide, donc tu as déjà des incitations à avoir une chaîne de CI/CD rapide (par exemple, j'ai optimisé une chaîne de CD de site web sur Woodpecker en préchargeant les paquets dans un conteneur avant, c'est passé de 2 minutes à 10 secondes parce j'avais envie que ça déploie vite).
[^] # Re: Et le libre ?
Posté par Psychofox (Mastodon) . Évalué à 7.
Je crois que c'est essentiellement du à la culture de réutilisation de modules / librairies.
Au final la plupart des developpeurs actuels font de l'assemblage et n'ont aucune maitrise ou idée de l'algorithme et de la qualité du code des librairies qu'ils utilisent. Du coup c'est compliqué d'optimiser quelque chose que tu ne gères pas. Pour pas mal de truc on a tendance à réutiliser une librairie toute faire, essentiellement parce qu'on veut un truc mieux testé, sans bug ou comportement alétoire sur des cas d'usages pas pensé. Et aussi parce que ça accélère grandement le developpement. Du coup au lieu d'écrire juste la petite fonction qui nous sert vraiment (mais qu'on va devoir torturer et tester dans pleins de cas d'usages) on va importer un module énorme qui fait aussi le café et plein d'autres trucs qu'on n'a pas besoin.
[^] # Re: Et le libre ?
Posté par Misc (site web personnel) . Évalué à 3.
Et à coté, on se moque de l'écosystéme javascript (npm, pour être précis) qui a des modules minimaux, et du coup, trop de dépendances.
[^] # Re: Et le libre ?
Posté par Psychofox (Mastodon) . Évalué à 3. Dernière modification le 13 février 2023 à 21:10.
Au final ça revient au même que ce soit un gros module ou plein de petits empiléss les uns au dessus des autres.
# comme le hardware... qui a besoin de 1 To de stockage ?
Posté par BAud (site web personnel) . Évalué à 2.
ça m'a fait penser à https://www.numerama.com/tech/1256184-pour-rajouter-du-stockage-a-votre-playstation-5-le-ssd-980-pro-de-samsung-est-en-promo-pour-les-soldes.html
genre 1 To de stockage en SSD pour 124 € o_O
un SSD de 128 Go c'est ~10 € et ça devrait suffire largement pour le commun des mortels (moui le 640 kB should be enough for everyone était peu réaliste :/)
à continuer comme cela à cramer du silicium, il n'y aura bientôt plus de sable sur les plages :/
[^] # Re: comme le hardware... qui a besoin de 1 To de stockage ?
Posté par Colargol . Évalué à 6.
Le silicium utilisé dans la fabrication des microprocesseurs ne vient pas du sable mais de mines de quartz ultra-pur : https://www.contrepoints.org/2021/01/24/389517-les-elements-du-progres-le-silicium-4
[^] # Re: comme le hardware... qui a besoin de 1 To de stockage ?
Posté par Misc (site web personnel) . Évalué à 4.
Les jeux prennent de la place.
Par exemple, Horizon Fobidden West prends ~100G. Car il faut bien mettre les vidéos, les voix, les textures hautes résolutions quelques part.
# Ils existent
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 4.
Il y a quelques projets qui font un très bon travail d'optimisation pour fonctionner sur des machines avec de faibles ressources. Je pense par exemple au navigateur web NetSurf, ou à l'éditeur de texte Vim (comparé aux machins modernes de type VSCode par exemple).
Ça ne semble pas trop attirer les utilisateurs ni les contributeurs.
[^] # Re: Ils existent
Posté par Misc (site web personnel) . Évalué à 3.
Je pense que dans le cas de vim, on est dans l'inverse. Il y a eu plusieurs forks de vim (neovim, etc), donc ç'est signe soit d'un souci de personnes (comme par exemple certains forks récents), soit de divergences d'objectif (par exemple, moderniser le code en retirant le support des atari ST).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.