Bonjour,
(voilà sans doute un sujet assez technique et qui ne parlera qu'aux programmeurs du coin, je m'en excuse)
Pensez-vous / avez-vous remarqué par votre expérience que les langages de programmation plus "explicites" marchent mieux pour les autistes asperger ?
Voilà mon ressenti (je suis encore en phase de diagnostic donc à prendre avec des pincettes) :
J'ai la sensation que les langages très dynamiques (Ruby, Javascript) et à typage faible (Javascript) sont davantage propices à l'anxiété chez moi que les langages à typage statique et fort (Rust, TypeScript, etc). Je pense que cela viendrait du fait que dans le cas des premiers, beaucoup d'informations ne sont pas explicites, il faut parfois discuter avec tel collègue qui a écrit un morceau de code pour le comprendre, ou il faut faire des recherches sans forcément savoir vers où s'orienter, ou il faut découvrir les choses de manière interactive. Alors que dans le cas des seconds, le typage sert de documentation directe et crée moins d'inconnus, donc potentiellement moins d'angoisse.
Qu'en pensez-vous ? Quels sont vos ressentis là-dessus ?
Plus globalement, quels langages préférez-vous, et pour quelles raisons ? Pensez-vous que vos préférences sont influencées par votre autisme ?
Langages de programmation et autisme : influence du typage faible / fort et dynamique / statique
-
- Occasionnel
- Messages : 25
- Enregistré le : mercredi 15 juillet 2020 à 17:14
Langages de programmation et autisme : influence du typage faible / fort et dynamique / statique
Diagnostiqué « TSA sans déficit intellectuel ni altération du langage. » en novembre 2020
-
- Intarissable
- Messages : 7750
- Enregistré le : dimanche 19 mai 2013 à 12:03
- Localisation : En haut à gauche
Re: Langages de programmation et autisme : influence du typage faible / fort et dynamique / statique
Bonjour et bienvenue sur le forum.
Ma réponse ne va pas être constructive car je ne connais pas les langages que tu mentionnes à part de noms...
Je ne manipule que des langages fortement typés comme le C++, le C et le Java.
J'ai fait quelques essais en assembleur 68k, pas vraiment typé donc. Un niveau de jeu de plateforme. On manipule des mots de certaines longueurs.
A la fac j'ai fait du SmallTalk, langage objet "non typé" (enfin si à la définition) assez élégant mais j'ai tout perdu. Je ne me souviens juste du principe de ce langage : tout est objet, y compris le code lui-même, et la machine virtuelle. J'ai trouvé cela assez déroutant. Le code est lui même un objet. Donc quand on crée une classe, et bien c'est un objet manipulable dans le code. Or un objet a besoin d'être défini par une classe, non ? Donc c'est le problème de l'oeuf et de la poule. En fait ils trichent ....
Personnellement, je prefère les langages fortement typés. Les variables n'existent pas sans leur type, défini à la déclaration de la variable. Je trouve cela plus clair et plus lisible.
Je rajouterais aussi que dans les langages fortement typés, il n'y a pas de risque d' erreur de type. Le compilateur signale l'erreur avant l'execution.
Si tu cherches à assigner un entier à une chaine de caractères, le code n'est pas compilable. Dans les languages de typage dynamique, on prend le risque de manipuler des types differents pour une même donnée, ce qui engendre une exception. Ce qui est impossible dans les langages de typage fort. Le code ne compile pas, avec une erreur.
Ma réponse ne va pas être constructive car je ne connais pas les langages que tu mentionnes à part de noms...
Je ne manipule que des langages fortement typés comme le C++, le C et le Java.
J'ai fait quelques essais en assembleur 68k, pas vraiment typé donc. Un niveau de jeu de plateforme. On manipule des mots de certaines longueurs.
A la fac j'ai fait du SmallTalk, langage objet "non typé" (enfin si à la définition) assez élégant mais j'ai tout perdu. Je ne me souviens juste du principe de ce langage : tout est objet, y compris le code lui-même, et la machine virtuelle. J'ai trouvé cela assez déroutant. Le code est lui même un objet. Donc quand on crée une classe, et bien c'est un objet manipulable dans le code. Or un objet a besoin d'être défini par une classe, non ? Donc c'est le problème de l'oeuf et de la poule. En fait ils trichent ....
Personnellement, je prefère les langages fortement typés. Les variables n'existent pas sans leur type, défini à la déclaration de la variable. Je trouve cela plus clair et plus lisible.
Je rajouterais aussi que dans les langages fortement typés, il n'y a pas de risque d' erreur de type. Le compilateur signale l'erreur avant l'execution.
Si tu cherches à assigner un entier à une chaine de caractères, le code n'est pas compilable. Dans les languages de typage dynamique, on prend le risque de manipuler des types differents pour une même donnée, ce qui engendre une exception. Ce qui est impossible dans les langages de typage fort. Le code ne compile pas, avec une erreur.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
-
- Prolifique
- Messages : 695
- Enregistré le : jeudi 16 mai 2019 à 18:42
Re: Langages de programmation et autisme : influence du typage faible / fort et dynamique / statique
Globalement, je pense que mon autisme fait que je pense de façon incompatible avec les langages "fortement contraints" comme le C++ ou des trucs encore plus stricts (brrrr).Plus globalement, quels langages préférez-vous, et pour quelles raisons ? Pensez-vous que vos préférences sont influencées par votre autisme ?
Personnellement, ce sont les langages les plus flexibles d'utilisation qui m'intéressent le plus, parce que je peux les plier à ma façon de faire. Je suis très friand de Python, que j'utilise exclusivement en mode OOP, même s'il est tout à fait capable d'être utilisé autrement.
Ca ne veut pas dire que je fais du code bordélique, inutilisable ou impossible à mettre à jour. J'emprunte pas mal aux techniques de développement (SOLID par exemple) pour faire quelque chose de bien organisé. C'est simplement que je n'ai pas besoin que le langage m'y contraigne d'une façon souvent douteuse. (Et les workaround dans ces langages là, c'est assez vite la grosse galère).
Identifié Aspie (広島, 08/10/31) Diagnostiqué (CRA MP 2009/12/18)
話したい誰かがいるってしあわせだ
Être Aspie, c'est soit une mauvaise herbe à éradiquer, soit une plante médicinale à qui il faut permettre de fleurir et essaimer.
話したい誰かがいるってしあわせだ
Être Aspie, c'est soit une mauvaise herbe à éradiquer, soit une plante médicinale à qui il faut permettre de fleurir et essaimer.
-
- Intarissable
- Messages : 7750
- Enregistré le : dimanche 19 mai 2013 à 12:03
- Localisation : En haut à gauche
Re: Langages de programmation et autisme : influence du typage faible / fort et dynamique / statique
Je serai heureux que tu m'apprennes à coder en Python.
[EDIT] : Un truc qui m'a toujours exaspéré dans les cours de programmation, c'est que les élèves dont je faisais partie bien-sûr, se bloquaient dès qu'il y avait une erreur. Que ce soit à la compilation ou à l'exécution. "Ça plante", "Il y a un bug", etc...
Et les profs, pleins de pédagogie répétaient à chaque fois "Lisez les messages d'erreurs !" On nous fournit l'endroit (ligne, colonne) et la nature de l'erreur.
Après je comprends aussi que ce n'est pas très abouti. Une seule erreur réelle, et le compilateur s'emballe parce qu'il n'arrive pas a compiler le reste, et on peut facilement se retrouver avec des milliers d'erreurs détectées, pour un point virgule oublié ou une erreur de frappe (une typo). Quand on le sait, il suffit de corriger en général la première erreur détectée par le compilateur, et il n'y a plus du tout d'erreurs.
[EDIT] : Un truc qui m'a toujours exaspéré dans les cours de programmation, c'est que les élèves dont je faisais partie bien-sûr, se bloquaient dès qu'il y avait une erreur. Que ce soit à la compilation ou à l'exécution. "Ça plante", "Il y a un bug", etc...
Et les profs, pleins de pédagogie répétaient à chaque fois "Lisez les messages d'erreurs !" On nous fournit l'endroit (ligne, colonne) et la nature de l'erreur.
Après je comprends aussi que ce n'est pas très abouti. Une seule erreur réelle, et le compilateur s'emballe parce qu'il n'arrive pas a compiler le reste, et on peut facilement se retrouver avec des milliers d'erreurs détectées, pour un point virgule oublié ou une erreur de frappe (une typo). Quand on le sait, il suffit de corriger en général la première erreur détectée par le compilateur, et il n'y a plus du tout d'erreurs.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"