Le texte suivant est la traduction en français du texte en anglais de John Walker. Source: ClassWar
Il intéressera les développeurs amateurs et professionels d’AutoCAD® et leur apprendra (peut-être) que la programmation orientée objet n’est pas récente et a bien failli voir le jour avec AutoCAD® R11…
Note sur le droit d’auteur de John Walker: Except for a few clearly-marked exceptions, all the material on this site (fourmilab) is in the public domain and may be used in any manner without permission, restriction, attribution, or compensation.
En 1990, Autodesk® travaillait à la sortie de la version 11 d’AutoCAD®, dont l’une des principales caractéristiques était l’AutoCAD® Development System (ADS), qui permettait aux utilisateurs et aux développeurs tiers d’étendre AutoCAD® avec des programmes en langage C qui s’exécutaient aussi rapidement que le code interne d’AutoCAD®, ajoutant de nouveaux objets, commandes et informations de base de données sans nécessiter aucune modification d’AutoCAD®. Parallèlement, au début de l’année 1990, j’ai achevé le développement d’ATLAST, le « Autodesk® Threaded Language Application System Toolkit », un langage intégré de type FORTH destiné à l’origine (mais jamais utilisé en réalité) à assurer la communication entre un AutoCAD® « sans tête » et des frontaux spécifiques à la machine, adaptés aux systèmes de fenêtres et aux paradigmes d’interface utilisateur des plates-formes exécutant AutoCAD®.
Il m’est apparu qu’en utilisant ADS et ATLAST comme base, je pouvais, avec un effort modeste, créer un véritable système de CAO orienté objet, fournir un exemple travaillé d’une application ADS ambitieuse pour les développeurs souhaitant apprendre le système, et démontrer comment ATLAST permettait de construire facilement des systèmes rapides, ouverts et extensibles. Je pouvais également m’amuser un peu aux dépens d’Intergraph, ce que j’ai toujours apprécié.
C’est ainsi qu’est né ClassWar, un acronyme plutôt douloureux pour « Class Language Application Support System Within AutoCAD®. Vraiment ! », qui a encore fait tiquer Intergraph, dont la force de vente se moquait d’AutoCAD® en le qualifiant de « CAO-jouet pour gens peu sérieux », avec le dédain typique de l’aristocratie établie pour les arrivistes prolétaires. ClassWar transformait les objets (entités) de la base de données d’AutoCAD® en objets programmables, qui pouvaient intégrer du code ATLAST et des extensions ClassWar mettant en œuvre chacun des piliers de l’orientation objet. Il permet aux utilisateurs et aux développeurs de programmer de nouveaux objets avec leur propre comportement, et de s’appuyer sur des bibliothèques d’objets déjà développés pour développer les leurs.
ClassWar a été livré avec AutoCAD® version 11 en tant que l’un des nombreux programmes de démonstration ADS, mais n’a jamais été un produit Autodesk® officiellement pris en charge. Plusieurs clients l’ont expérimenté et ont construit des objets personnalisés en l’utilisant mais, à ma connaissance, aucun d’entre eux n’a été mis sur le marché ou largement utilisé.