vendredi 10 juillet 2009

Différences 2

Dans ce texte, j'aborderai les différences entre Aspies et Neurotypiques dans le domaine de la programmation. Les deux approches peuvent se résumer ainsi:


Approche Aspie
  • Analyse partant des détails du système vers le global.
  • Programmation orientée-objet et composant.
  • Encapsulation des structures dans les objets (les classes).
  • Programmation multitâche (multithread).
  • Événements et interruption comme méthode de planification.


Approche Neurotypique
  • Analyse débutant par le système complet vers les détails de celui-ci.
  • Programmation séquentielle et procédurale.
  • Structures globales.
  • Programmation conditionelle.
  • Scrutation comme méthode de planification.
  • Machine à état fini.


Méthodes d'analyses
La méthode d'analyse de prédilection des neurotypiques consiste à débuter avec une image générale de la solution puis de la détailler progressivement. C'est la méthode qui consiste à produire flowchart et machine à état fini en décomposant le système en une longue séquence d'opérations. Cette approche séquencielle oblige un usage extensif de la programmation conditionelle, pour structurer le chaos causé par la méthode elle-même. Cette méthodologie construit des sytèmes monolithiques, peu réutilisables et inflexibles. Elle est taillée sur mesure pour la psyché des neurotypiques car cette méthode ressemble à leur façon normal de penser. Du global vers le détail.


La programmation orienté-objet, exige de déterminer chacun des objets (détails) du système et c'est la méthode favorite des aspies. Cette façon de faire du détail vers le global, produit des systèmes fait d'un assemblage de composants, qui si ils sont bien conçus peuvent être réutilisés. Cette méthode ressemble à la façon normal de penser des aspies qui est basé sur les détails.


Machine à états finis et programmation séquentielle
Au temps de la préhistoire informatique, tout les programmes relevaient de la logique séquencielle et des machine à états finis. S'était un monde neurotypique. Cela avait pour conséquence de conduire à des programmes peu flexibles, qui conduisait souvant à une réécriture pour chaque application. Et qui était généralement difficile à modifier.


La machine à états finis est une saveur de la méthode d'analyse neurotypique. Elle est très prisée par plusieurs d'entre eux. Elle part de la présomption que vous savez que le système ne peut se retrouver que dans un certain nombre d'états connus. Les problèmes arrivent quand le programmeur force le système dans un état qu'il «sait» être le bon, sans tenir compte des faits empiriques. Si les prémisses du programme change il doit être entièrement refait. La présomption est à la base de la communication neurotypique tout comme de la machine à états finis, puisqu'ils «présument» de l'état et de la réaction de leur interlocuteur.


Programmation object
L'aternative aspienne aux machines à états finis et cie, c'est les objets et les classes qui encapsule méthodes, propriétés, événements, protocoles, etc. L'avantage de cette encapsulation c'est que chaque détail est isolé du reste du programme, que les modifications à l'intérieur de l'objet sont transparentes pour le reste du système. Cela permet de créer des programmes flexibles et modulaires, et on obtient en prime des composants réutilisables à volonté dans d'autres applications.


La difficulté est de conduire les neurotypiques à penser comme des aspies, ce n'est vraiement pas une sine cure... Ils ont souvant des difficultés à comprendre correctement les conceptes de méthode et de propriété. Et plusieurs sont mal à l'aise avec les «événements». C'est monnaie courante de voir des neurotypiques exporter l'ensemble des propriétés et méthodes internes de la classe. Ou encore de se sentir obligé d'utiliser des accesseurs (méthodes) pour chaque propriétés (même internes!), accesseurs généralement nommés sur le modèle Setceci() et Getcela()...


Événements
L'informatique d'aujourd'hui repose sur la notion «d'événements» pour tout ce qui à trait à l'interface utilisateur. Parce qu'ils pense de façon séquencielle, les neurotypiques doivent être rééduqué pour penser en terme d'événement, d'interruption et non plus en terme séquenciel. Pour plusieurs cette rééducation est si difficile qu'ils font appel à la scrutation (poolling) dès qu'on leur en laisse la possibilité. Bien que cette methode soit des plus inefficaces. Avec l'avènement du multitâche (multithread) la pensée séquencielle est la voie doré vers l'inefficience et les problèmes. Pour tirer profit des machines multiprocesseurs ils est plus que jamais nécessaire de subdiviser le système en composant, de faire appel au notion d'événement et de synchronisation. La scrutation devient alors d'une inefficience insurmontable et la pensée séquentielle obsolette en se domaine.


Pour l'aspie la planification événementielle est naturelle, c'est instinctif. Alors que pour les neurotypiques c'est une toute autre affaire, eux préfèrent une planification qui consiste à lire à répétition l'état des variables et à effectuer des actions planifiées sur une base chronologique. Cette approche pouvait marché au temps de la préhistoire informatique mais ce n'est plus le cas. Pour l'aspie les actions planifiés sur une base chronologique sont lancées par un événement généré par une minuterie matérielle via le noyau du système d'exploitation. Ce qui est d'une efficacité absolue.


Adaptation d'un texte de Lief Ekblad.

Aucun commentaire:

Enregistrer un commentaire