Passer au contenu

L’espéranto est-il bien nécessaire ?

Autour des langages fédérateurs que furent Fortran, Cobol, C et maintenant Java, une multitude d’approches se sont concrétisées, entre héritage et innovation.

En 1950, le dialogue avec les calculateurs était des plus limités. Seuls quelques spécialistes ?” le plus souvent, les concepteurs de ces machines ?” étaient en mesure de communiquer, de différentes manières, des instructions binaires dédiées à des systèmes bien spécifiques. Dès la fin de 1954, John Backus conçoit le premier langage de haut niveau : Fortran (Formula Translation) marque le début d’une réaction en chaîne qui se poursuit encore et illustre une révolution qui permet, pour la première fois, à des non-informaticiens ?” des scientifiques, en l’occurrence ?” de créer des programmes adaptés à leurs spécialités respectives.L’immense diversité qui s’ouvrait montre assez la diffusion progressive mais imperturbable de l’informatique dans tous les recoins des activités. Si le Fortran était destiné aux applications de calcul scientifique, il ne fallut que peu de temps pour que les applications commerciales trouvent leur lingua franca, illustrée par le Cobol, lui-même issu des travaux de Grace Hopper. Il deviendra le langage pivot de cette gamme d’applications durant les trois décennies suivantes. Le premier constat qui s’impose est que, malgré une évolution générale de l’informatique dont la vitesse et l’ampleur laissent pantois, ces langages existent encore. Même s’ils ne brillent plus autant : la dernière version normalisée du Cobol, modernisé et orienté objet, date de 1997 ; et celle de Fortran de 1995, la prochaine étant prévue pour 2004. Pour autant, la plupart des spécialistes s’entendent sur le fait qu’entre cent quatre-vingts et deux cents langages de tout type sont peu ou prou utilisés à l’heure actuelle. L’évolution des langages de programmation a ainsi toujours reflété le compromis permanent entre la nécessité de capitaliser sur les efforts déjà réalisés et le devoir de prendre en compte de nouveaux besoins et de nouvelles capacités. Parallèlement, sûreté de fonctionnement, qualité et maintenabilité du code, réutilisation et facilité de programmation sont encore et toujours des objectifs primordiaux.

Quel langage pour quoi faire ?

Interfaces graphiques, réseaux, bases de données… Toutes les grandes évolutions de l’informatique ont été prises en compte de cette façon : soit on crée un nouveau langage parfaitement adapté au nouvel environnement ?” en s’appuyant, le plus souvent, sur des concepts éprouvés dans des langages antérieurs ?”, soit on fait évoluer une norme de fait en la dotant des notions qui lui manquent. Mais le temps nécessaire à la standardisation a mécaniquement favorisé l’émergence d’un grand nombre de langages nouveaux. Et le phénomène a tendance à s’amplifier.Fortran et Cobol, par exemple, sont à l’origine d’une lignée fournie, qui regroupe Algol (le pionnier de la structuration), PL/1, Pascal, Ada, Simula (première apparition des concepts objet), Modula, Basic, et, par alliance, le langage C.Smalltalk, en 1972, concentre à lui seul un nombre de concepts impressionnant. L’objet, d’abord, destiné à rationaliser la réutilisation du code. Un environnement Smalltalk s’enrichit au fil du temps, à mesure que les programmes réalisés sont répertoriés. La machine virtuelle, ensuite, gage de la portabilité de l’environnement et des applications d’un système à l’autre : le développeur conçoit son application indépendamment de toute contrainte matérielle spécifique, la réalisation d’une machine virtuelle pour un système quelconque étant à la charge soit du constructeur, soit de l’éditeur de l’outil. L’interface graphique, enfin, dont sauront s’inspirer Apple, les constructeurs de stations de travail et, plus tard, Microsoft. Bien souvent, ces innovations s’accompagnent d’un véritable basculement culturel qui cantonne le langage à des groupes d’aficionados, une partie de ces technologies étant, de toute façon, progressivement prise en compte dans les grands langages normalisés. Créé au début des années soixante-dix, le langage C demeure le point d’ancrage pour un grand nombre de langages subséquents. De nombreux successeurs ?” C++, Eiffel, par exemple ?” ont préféré s’appuyer sur un code C intermédiaire, compilé avec les outils C standards, plutôt que générer directement l’exécutable. Les principaux apports de C sont d’offrir une syntaxe simple, des mécanismes extrêmement puissants ?” pointeurs, structures, etc. ?”, une capacité d’évolution inconnue jusqu’alors et, surtout, d’être aussi bien destiné à la programmation système (Unix a été réécrit en C) qu’aux applications de haut niveau. La plupart des grands langages actuels en héritent ?” C++, bien sûr, mais aussi Java et le néophyte C#. Le glissement de C vers C++ illustre une évolution majeure des techniques de programmation. Avec la généralisation des interfaces graphiques et du modèle client-serveur, la question est désormais de proposer, au-delà du langage, des bibliothèques d’objets, des “frameworks” complets, destinés à accélérer le développement des applications en évitant au programmeur de réinventer la fenêtre ou l’ascenseur à chaque application.

Les applications futures seront faites de services web

Dans le monde Windows, la bataille a été rude, Microsoft opposant avec succès les MFC (Microsoft Foundation Classes) à l’Object Windows Library de Borland. Java, destiné à l’origine à être embarqué dans des boîtiers spécialisés, prend son envol en 1995 : une syntaxe empruntée au C pour ne pas dépayser, une machine virtuelle pour être portable, et un environnement d’accompagnement qui ne cesse de s’étendre : JSP, Servlet, Beans, EJB, persistance, middleware spécifique, liaisons asynchrones… Rien ou presque ne manque. Son succès fut foudroyant, à la mesure de la diffusion d’internet à la surface de la planète. La garantie d’un langage familier, portable sur une multitude de machines et d’OS, associé à une plate-forme des plus complètes a charmé les développeurs. Le succès de Java est d’ailleurs plus lié à la complétude des services qu’il inclut qu’à sa syntaxe proprement dite. Mais tout est affaire d’abstraction et de granularité. Les applications futures seront faites de “services web”, composants archispécialisés, regroupés au sein d’un portail par le biais d’un couplage souple. Si la “colle” de ce couplage semble émerger sous la forme de XML, le langage de construction de ces composants reste à introniser ?” si tant est qu’il n’y en eut qu’un. Microsoft, secoué par la vague Java, se pose d’ailleurs en promoteur ardent des services web avec son architecture .Net. Mais cette dernière, en proposant un niveau de compilation intermédiaire (CLR, Common Language Runtime), se déclare prête à accepter la plupart des langages, dont le nouveau C#, promu barrage anti-Java. Compte tenu de la multitude des possibilités et des besoins, la diversité demeure donc le meilleur gage de la réussite.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Philippe Davy