1 points par GN⁺ 2024-07-07 | 1 commentaires | Partager sur WhatsApp

La crise du logiciel

  • Qu’est-ce que la crise du logiciel ?

    • Le terme « crise du logiciel » a été utilisé pour la première fois lors de la première conférence de l’OTAN sur l’ingénierie logicielle en 1968
    • Ces conférences ont constitué l’un des premiers efforts visant à définir et à systématiser les pratiques de programmation
    • La dernière conférence de l’OTAN sur l’ingénierie logicielle s’est tenue en 1969, à la même époque que le lancement d’Apollo 11
  • Les causes de la crise du logiciel

    • Edsger Dijkstra, lauréat du prix Turing en 1972, a expliqué que la crise du logiciel était causée par l’augmentation de la complexité et de la vitesse du matériel
    • « Plus les machines deviennent puissantes, plus les problèmes de programmation grandissent » — Edsger Dijkstra
  • La crise du logiciel aujourd’hui

    • On parle beaucoup moins de la crise du logiciel aujourd’hui
    • On pense que le problème a été résolu grâce au développement de nouveaux langages et de nouvelles méthodes d’organisation
    • Mais cela peut venir non d’un véritable apaisement, mais d’un sentiment de défaite et d’acceptation
  • Le problème de l’abstraction

    • Divers efforts ont été menés pour résoudre la crise du logiciel, mais la plupart cherchent à traiter le problème par « l’abstraction »
    • L’abstraction offre un certain degré d’indépendance, au prix des performances
    • Depuis la commercialisation de l’ordinateur personnel, l’abstraction est devenue un mode de pensée fondamental
  • L’écart entre développeurs et utilisateurs

    • La crise du logiciel n’affecte pas seulement ceux qui créent les logiciels, mais aussi ceux qui les utilisent
    • Les utilisateurs n’ont pratiquement aucun contrôle en dehors de ce que l’auteur leur fournit
    • Alan Perlis : « Si vous avez une bonne idée, vous devez être prêt à en assumer la responsabilité »
  • L’absence de responsabilité

    • Les créateurs de logiciels sont dégagés de la responsabilité des outils qu’ils fabriquent
    • Cette tendance s’est renforcée avec la commercialisation
    • L’abstraction est utilisée comme un outil pour éviter les réflexions difficiles
  • La solution

    • La solution à la crise du logiciel n’est pas un retour à des plateformes plus limitées, mais la limitation du nombre de couches d’abstraction et l’exigence de préserver l’information
    • Le modèle de programmation, l’interface utilisateur et le matériel de base doivent être peu profonds et composables
    • Il faut redonner du pouvoir aux utilisateurs des outils
  • Les mouvements actuels

    • Il existe des mouvements comme Handmade, Permacomputing et le rétrocomputing pour sensibiliser à la crise du logiciel
    • Ces mouvements contre-culturels sont des signes encourageants et suggèrent que la situation peut s’améliorer

Le résumé de GN⁺

  • La crise du logiciel est un problème né de l’augmentation de la complexité et de la vitesse du matériel
  • Aujourd’hui, on tente de résoudre le problème par l’abstraction, mais cela se paie en performances
  • Les créateurs de logiciels sont dégagés de la responsabilité des outils qu’ils produisent, une tendance renforcée par la commercialisation
  • La solution consiste à limiter le nombre de couches d’abstraction et à exiger la préservation de l’information
  • Des mouvements comme Handmade et Permacomputing contribuent à sensibiliser à la crise du logiciel

1 commentaires

 
GN⁺ 2024-07-07
Avis Hacker News
  • Avis de l’auteur

    • Il ne s’oppose pas à l’abstraction en soi, mais à son application sans limites
    • Il ne présente pas comme solution un retour à des plateformes plus limitées
    • Il ne soutient pas que les utilisateurs doivent devenir « plus techniques »
    • Pour comprendre la crise du logiciel, il faut comprendre les courbes de « maîtrise de la plateforme » et de « cycle de croissance/livraison »
    • Cet article n’est pas un clickbait ; il reflète sa situation en tant que développeur
    • Il cherche à apporter une partie de la solution et prévoit des articles de suivi
  • Crise du logiciel

    • Elle inclut des problèmes tels que les dépassements de budget, les retards de calendrier, les logiciels inefficaces, la faible qualité, le non-respect des exigences, la difficulté de maintenance et la non-livraison de logiciels
    • Les logiciels réussis sont ignorés, tandis que seuls les échecs et les défauts attirent l’attention
    • Pour arriver jusqu’au desktop, les ordinateurs passent par des centaines de couches d’abstraction, et cela se produit des milliards de fois chaque jour dans le monde
  • Développement logiciel et leadership

    • Dans l’industrie automobile, la direction met l’accent sur les connaissances techniques, alors que dans le développement logiciel agile, les compétences techniques s’arrêtent souvent aux échelons inférieurs
    • Les développeurs logiciels travaillent ticket par ticket, sans réflexion philosophique, et ne sont pas promus vers des rôles de leadership
    • La prise de conscience de la crise du logiciel risque de rester cantonnée au domaine du hobby
  • Nécessité de l’abstraction

    • L’abstraction est un outil indispensable, et le problème vient des mauvaises abstractions ou d’un excès d’abstraction
    • Le développement logiciel est devenu plus facile et la documentation est également meilleure
  • Outils et information

    • Quand on connaît les bons outils, le développement logiciel devient très facile
    • Les outils connus de la plupart des gens ne sont pas bons, et l’influence du capital y joue un rôle important
    • Par exemple, il a réalisé une vidéo montrant comment construire en 3 heures une application de marketplace complexe dans un environnement serverless, mais elle a eu peu de vues
  • GUI et composabilité

    • Avec les outils UNIX, on bénéficie d’une expérience simple et composable
    • Les GUI ne communiquent pas entre elles et ne sont pas composables
    • Il expérimente des outils qui combinent GUI et pipelines shell
  • Importance du logiciel

    • La plupart des logiciels ne sont pas critiques, et une qualité médiocre ne pose généralement pas de gros problèmes
    • La plupart des développeurs logiciels travaillent sans la motivation que l’on trouve dans des lieux comme la Silicon Valley
  • Modularité et abstraction

    • Des systèmes complexes comme Internet sont maintenus grâce à des abstractions en couches
    • Les outils logiciels se sont beaucoup améliorés depuis les années 70
    • Par exemple, avec Copilot dans VSCode, on peut auto-compléter une API entière
  • Crise de la gestion de projet

    • Il existe plutôt une crise de la gestion de projet qu’une crise du logiciel
    • Il existe un fossé entre ceux qui planifient et ceux qui livrent
    • La commercialisation du développement logiciel permet à des personnes de niveaux très variés d’y participer
    • C’est similaire à l’industrie alimentaire, et pourtant on ne parle pas de crise des restaurants