Vers une programmation orientée hypermonde (Pohm)
Pierre Berger, janvier 1992.
La programmation objet, passionnante, stimulante, féconde... montre vite ses limites:
- opposition entre une présentation littéraire sympathique et une réalité pour les programmeurs beaucoup moins alléchante:
C++, c'est un niveau de difficulté en plus par rapport à C, qui pourtant n'est déjà pas un modèle de convivialité; les autres langages sont des curiosités de laboratoire ou au mieux, d'expériences pilotes;
- grande difficulté de conception, malgré un début d'efforts méthologiques;
- limites inhérentes au concept même d'héritage et aux erreurs qu'ils risque d'introduire sans précautions multiples.
Techniquement: la cellule au delà de l'objet Il faut donc faire un pas de plus dans la montée de complexité des structures manipulées par les ordinateurs, assortie d'une plus grande facilité d'emploi. Pousser le jeu de l'encapsulation jusqu'à l'autonomie de l'objet. Un objet vivant, en quelque sorte, disons une cellule.
On distingue différents types de cellules. Certains ont déjà beaucoiup fait parler d'eux:
- le neurone
- le virus
- mono-cellulaires, pluri-cellulaires.
les automates finis de MInsky, dans une certaine mesure.
Les données et les programmes traidtionnels sont des formes dégénérées de cellules. Les premirs ont perdu leur noyau, leur vitalité. Les fichiers sont comme du bois mort. Les programmes au contraire au perdu leurs matières alimentaire, c'est la cellule réduite à son ADN. Les recompositions ne se font que par grandes masses, par convergence des deux flux vers le petit entonnoir de la machine de Von Neumann.
La celle est autonome, auto-finalisée: elle tend à prolonger son existence, à s'étendre, à se multiplier (voir notamment Huberman). On peut aller plus loin dans la construction d'auto-finalisations subtiles. L. Sens.
La cellule a une organisation complexe qu'il faudra tenter de préciser. Dans la foulée de la ligné: bit, mot, type, structure, objet...
La cellule, ou les groupements de cellules, tendent à s'approprier de la matière, à ne pas rester de pures LU pour devenir des PU (Doors). Dépasser l'immatérialisme de la machine actuelle. Ré-intégrer le matériel come le font les japs avec les cartouches pour machines de jeu. AVantages de fiabilité, de propriété industrielle.
Comment exprimer cela dans nos machines mono-processeur?
Parallèlement, cette autonomie doit s'étendre non seulemnt aux programmes et aux données mais aux systèmes informatiques eux-mêmes.
La cellule échange avec les autres cellules
C'est même une part majeure de son activité. Equilibrages, jeux de marché. Marchandages ou affrontements bruaux... Les utilisateurs eux-mêmes sont des cellules dans (aux frontières de) l'univers. Mais minoritaires par rapport àl'énormité de la machine idustrielle.
L'univers doit être concçu pour que les cellules se développent bien.
Pour une part, le programmeur définit des lois générales plus encore qu'il n'instancie des objets. C'est un peu la logique des classes.
Interface homme-machine: pousser le graphisme. Le texte devient exceptionnel
3D Construction kit
le texte garde une importance cruciale
- à cause de la machine de Von Neumann, mais aussi, analogiqument, des neurones
- pour la programmation fine, l'expression de la complexité, du raisonnement
Mais il tend à n'être plus utilisé qu'exceptionnellemnet.
En particulie cette forme extrême de complexité textuelle qu'est la récursivité. Utile. Séduisante pour les esthètes. Mais toujours difficile, déroutante pour le commun des mortels.
Le graphisme intervient dès le début de l'analyse et fait majoritairemnet sentir sa présente tout au long du travail comme dans le résultat même de la programmation dès qu'un utilisateur humain est impliqué.
On va beaucoup plus loin que le génie logiciel classique.
Prolonger 4D, etc.
Filotti
Stylet, manche à balai.
Expression des pulsions
Gloge pour modeler, montrer
Lutter contre difficulté
distinction abstration/complexité,
Le créateur d'univers doit laisser sa présence
Un programme est aujourd'hui considéré comme une oeuvre anonyme. Une marque déposée, sans doute. Mais non signée, sinon parfois pour quelques produits marpquants. Et encore, seuls les initiés apprennent, presque par hasard, de C a été fait Kernighan et Ritchie.
Il faudra d'autant plus garder trace des créateurs que les oeuvres deviennent colelctives, sont constamment entretenues.
On ne crée pas un programme, on instancie un univers
La POO apporte la ré-utilisabilité. La Pohm va plus loin.
Le programmeur n'est plus un démiurge qui crée un système à partir de rien, quitte à partir d'une "analyse de l'existant" juste bonne à montrer ce qu'il ne faut plus faire.
Le Moigne, déjà, avait noté (IG...) qu'il faut le plus souvent "re-concevoir", que concevoir.
On vient au monde, on cultive le jardin. Dieu est Dieu et l'informaticien est tout au plus son prophète.
Mais on peut défricher, ouvrir un nouvel espace.
En programmation classique, tout ce dont on hérite est la syntaxe et la sémantique d'un langage de programmation. De là, l'informaticien part comme un conquérant, qui va tout assimiler, tout programmer, tout régir à partir de ce noyau. Y compris es modèles cultures qu'il recèle.
En informatique classique, les données ne sont pas censées pré-exister. Sinon comme une base que l'on re-codera. En Pohm, pas question de reprendre le tout. Elles font partie de l'univers dans lequel le programmeur va opérer, le cas échéant faire le manage. Elles représentent même, sans doute, la part la plus lourde du passé, la moins volatile.
En POO, la ré-utilisabilité
Prolonger la logique du reverse engineering. Relire les docs
Bachman
La "maintenance" devient situation normale
On se lamente aujourd'hui d'avoir à entreteni les applictions, de devoir y consacrer plus de la moitié des équipes de professionels.
Or cette situation est normale et il n'y a donc aucune raison d'en gémir.
Tout univers est branché sur les autres univers
L'ouverture d'un nouvel espace ne se fait pas sans communication avec le monde extérieur.
Dès l'ouverture du nouvel espace, il est très riche du fait même de ses frontières et de ses capacités de communication avec l'extéirieur.
La présence de l'utilisateur dans le système doit être explicitement prise en compte présentée dans l'interface
Apparu depuis le début des modes interactifs avec le urseur, dont les coordonnées cartésiennes sur l'écran exprimait a position dans le dialogue, cette présence s'est peu à peu toffée avec notamment le Macintosh, variant la forme des crseurs, et une valorisation sémantique toujours plus riche de cette position par le jeu du multi-fenêtrage.
La gestion souris/curseur représente d'ailleurs, dans des systèmes comme Windows, une charge d'autant plus lourde pour le programmeur qu'elle est assurée au moyen de fonction d'assez bas niveau.
On va maintenant plus loin en présentant des univers tri-dimensionnels, où la seule position du curseur exprime désormais trois dimensions au lieu de deux, ce qui n'est pas négligeable.
On va plus loin encore avec la réalité virtuelle, son gant et sa combinaison. Le corps propre, ses mouvements globaux (marche) ou locaux (gestes de la main) deviennent signififatifs. Ils font l'objet d'une présentation explicite à l'écran, encore que largement simplifiée et symbolisée.
Quelques travaux expérimentaux (notamment à Valenciennes) La Pohm devra encore dépasser cela, et s'intéresser à l'utilisateur non seulement dans sa disposition physique mais aussi dans sa psychologie, ses intentions. Les amorces ont été posées d'abord par les spécialistes de sécurité (reconnaissance de l'utilisateur pour réagir en fonction de ses droits) ou de documentation (profils de consultation).
Des travaux avancés ont été recensés par Kilgour. L'utilisateur peut être un groupe d'utilisateurs, une équipe, une paire, un couple.
L'écran est une certaine vue sur un univers.
Il est interdit d'être triste
La convivialité a prouvé son efficacité contre les partisans du col dur, du gris anthracite et des écrans monochrome ne mode caractère.
La Pohm exploitera donc méthodiquement toutes les possibilité de la couleur et du relief pour maximiser la convivialité. Mais elle ira beaucoup plus loin, jusqu'à la ré-introduction du principe de plaisir, dans la ligne des créateurs de Macintosh.
Cette prise de position méthodologique va à l'encontre de la doctrine implicite aux informaticiens comme aux ingénieurs en général, qui continuent d'associer de manière simpliste l'ennui et le sérieux, et considèrent le travail en entreprise comme exclusif de toute dynamique personnelle (LMI du ).
Demain, on considèrera que tout individu qui s'ennuie au travail perd de la productivité et de la fiabilité, et qu'il devra donc ou trouver son épanouissement dans le système, ou le chercher alleurs. Attention d'ailleurs aux dangers possible du "sourire obligé"... que les Américains ont mis en vedette dans certaines dans leurs entreprises. Gare au masque de Mickey sur la tête du clown triste.
Une certaine dose de saleté sera d'ailleurs considérée comme normale. Demain on dira "too clean to be sound", trop propre pour être honnète.
Le principe de plaisir suppose aussi une certaine humilité devant l'hypermonde. Conscient de son propre épanouissement, l'utilisateur doit aussi prendre conscience de celui des autres, de la pluralité des sujets, de la fragilité des équilibres.
Cette reconnaissance du droit au plaisir est d'ailleurs symétrique de la reconnaissance de l'autonomie des cellules et des univers en général.
La convivialité elle-même doit être dépassée pour introduire clairemnet le mode ludique dans l'hypermonde et ses applications.
Bibliographie.
Huberman
Valenciennes. travaux de Mourad Abed
Le Moigne, sur "reconception". Sur typologie des sysèmtes, desn des cellules.
Doors
Meyer, Coad
Voltaire, cultiver son jartin
Tierra (Deutsche Teleckom vers 19954)
Vivarium de Kay
Levy infographie dynamique
Kilgour