• [^] # Re: Le cerveau n'est pas logique

    Posté par . En réponse au journal Pourquoi la recherche en langages de programmation ?. Évalué à 4.

    Je ne suis pas un expert sur ce sujet, mais je ne connais pas d'étude sur l'impact des biais cognitifs et capacités d'abstraction sur l'usage d'un langage.

    Mon expérience à moi, à la fois comme programmeur et comme chercheur, c'est que dans tous les cas que j'ai rencontrés où le formalisme suggère un changement ou une modification, c'est effectivement quelque chose qui améliore la vie à l'usage. Ça n'est pas incompatible avec ce que tu dis (il y a aussi des changements qui ne sont pas suggérés par le formalisme et qui sont efficaces, et peut-être qu'étudier nos biais cognitifs peut en suggérer de nouveaux), mais j'aurais tendance à dire qu'il ne faut pas sous-estimer l'approche formaliste qui s'est révélé redoutablement efficace en pratique.

    Je ne crois pas que Prolog ait "échoué" (il marche bien dans la niche pour laquelle il marche bien, l'erreur serait de le vendre comme un langage généraliste), mais je pense que les limitations de Prolog peuvent très bien s'expliquer à travers les outils de mon école scientifique (formaliste), sans avoir besoin d'invoquer la capacité des humains à faire du raisonnement logique. Prolog est un langage qui n'est pas du tout déclaratif, dans le sens où la compréhension du modèle d'exécution sous-jacent est absolument indispensable pour comprendre comment écrire des programmes correctement, et des opérations qui devraient en théorie respecter la sémantique du programme (comme le fait d'inverser l'ordre dans lequel deux prédicats sont écrits) cassent en pratique complètement le programme, le faisant non-terminer ou exploser en temps sur les cas d'usage qui nous intéressent.

    En gros : tu tiens sans doute une piste intéressante avec l'idée de regarder les limitations de calcul/raisonnement des humains, mais je pense qu'il y a encore beaucoup à apprendre juste avec une approche formaliste et que ce n'est pas nécessairement moins efficace.

    (Attention: le fait d'utiliser des raisonnements mathématiques pour étudier les langages de programmation ne veut pas dire qu'il faut forcer les programmeurs et programmeuses à maîtriser ces raisonnements pour bien utiliser ces langages. C'est au contraire plutôt un gage de bonne science que de savoir, même quand on utilise des techniques avancées et compliquées, en tirer des conclusions simples qui sont accessibles aux gens qui ne connaissent pas les outils de travail.)