ANNÉES 1960

APL

À Harvard, Kenneth E. Iverson planche sur sa thèse de doctorat sous la direction d'Howard Aiken et Wassily Leontief. Son travail porte sur la résolution automatique d'équations différentielles linéaires dans un modèle économique. Cette première incursion dans la programmation l'interroge : comment mieux représenter les algorithmes et manipuler les données ?

La réponse germe en 1956 quand Iverson enseigne dans le tout nouveau programme d'Automatic Data Processing qu'Aiken vient de créer à Harvard. Il commence à élaborer une notation formelle pour décrire et analyser le traitement des données. Cette notation, qui n'a pas encore de nom, lui sert d'abord comme outil pédagogique. Avec Frederick P. Brooks Jr., alors doctorant, il rédige un livre intitulé « Automatic Data Processing » qui formalise ces premières réflexions.

L'année 1957, Iverson travaille comme consultant chez McKinsey & Company. Sa notation trouve là un terrain d'application concret, agissant tel un langage de communication entre concepteurs et programmeurs sur des systèmes complexes. Les équipes découvrent l'intérêt de cette approche pour clarifier des architectures autrement difficiles à appréhender.

Le hasard des carrières amène Iverson chez IBM en 1960. Il y rencontre Adin Falkoff, qui s'intéresse immédiatement à cette notation pour ses travaux sur les mémoires à recherche parallèle. Cette collaboration va transformer une idée académique en nouveau paradigme informatique.

En 1962, Iverson publie « A Programming Language ». L'ouvrage présente formellement sa notation, mais celle-ci reste cantonnée aux tableaux noirs et au papier. Pour l'utiliser sur ordinateur, il faut la traduire manuellement en Fortran ou dans un autre langage existant. Une étape intermédiaire frustrante mais nécessaire.

Tout change en 1964. Iverson et Falkoff décident de transformer cette notation théorique en langage de programmation opérationnel. Lawrence M. Breed les rejoint en 1965 pour concevoir une version pratique d'APL destinée aux systèmes interactifs à temps partagé. La première contrainte à surmonter concerne les caractères. Le terminal IBM 1050 ne peut afficher que 88 symboles. Cette limitation, d'abord perçue comme un handicap, pousse l'équipe à rationaliser et généraliser plusieurs aspects du langage. Finalement, cette contrainte se révèle bénéfique puisqu'elle force une clarification conceptuelle salutaire.

Dès 1970, APL conquiert ses premiers utilisateurs. Des milliers de personnes l'adoptent, comme les équipes de recherche et de conception d'IBM, le personnel du NASA Goddard Space Flight Center, les planificateurs financiers de grandes entreprises. Le langage séduit par son élégance et son caractère pratique, malgré les critiques de la communauté informatique établie qui le juge trop ésotérique.

Au Laboratoire de Physique Appliquée Johns Hopkins, le Centre de Calcul F.T. McClure pousse l'innovation plus loin. L'équipe développe des logiciels système APL spéciaux pour l'ordinateur IBM 360/91. Ces développements exploitent les capacités de traitement vectoriel de la machine et transforment radicalement les performances d'exécution. En 1978, le centre franchit une nouvelle étape avec un système APL capable de gérer des applications très volumineuses grâce à la technologie de mémoire virtuelle.

La vraie innovation d'APL réside dans son traitement des tableaux comme objets primitifs. Cette approche bouleverse la façon de concevoir les algorithmes. Les programmeurs pensent naturellement en termes de traitement vectoriel et matriciel plutôt qu'en boucles et conditions. Le langage se distingue par sa simplicité syntaxique remarquable avec seulement trois types d'instructions possibles. L'affectation de nom, le branchement, ou ni l'un ni l'autre. Les règles sémantiques restent peu nombreuses et les définitions des fonctions primitives s'affranchissent des représentations de données.

Les années 1970 voient APL progresser malgré le soutien limité des principaux fournisseurs d'ordinateurs. L'introduction du système de variables partagées en 1973 avec APLSV est une innovation qui résout plusieurs problèmes systèmes d'APL/360, particulièrement la communication entre programmes concurrents et avec des périphériques externes. Les possibilités s'élargissent considérablement.

La décennie suivante confirme cette expansion. APL s'installe sur pratiquement tous les ordinateurs du marché, y compris les ordinateurs personnels comme l'IBM PC et le Tandy TRS-80. De nombreuses sociétés de temps partagé commercial proposent APL comme service. Certaines se spécialisent dans les bases de données financières internationales mises à jour en temps réel, exploitant la capacité du langage à traiter efficacement de gros volumes de données numériques.

Contrairement aux autres langages majeurs de l'époque qui s'éloignent des notations mathématiques traditionnelles, APL poursuit leur développement. Il conserve les symboles établis quand c'est possible et emploie une terminologie mathématique cohérente. Cette fidélité aux conventions mathématiques n'empêche pas quelques écarts dictés par les principes de simplicité et d'uniformité, comme l'adoption d'une forme unique pour les fonctions dyadiques et monadiques.

Le développement d'APL illustre l'importance de principes édictés clairement. D'abord la simplicité, recherchée à travers l'uniformité, la généralité et la concision. Ensuite le pragmatisme, manifesté par l'attention portée aux applications réelles et aux limitations du matériel. Le fait que le langage ait été développé pendant huit ans sans installation machine a donné une liberté de modification impossible pour les langages contraints par une base d'utilisateurs existante.