[petite] histoire des
Langages de Programmation
(gH) gilles.hunault@univ-angers.fr
Quelques mots pour se répérer vis à vis de quelques
langages importants
La liste des langages est alphabétique. Pour une liste chronologique, suivre le document nommé histoire.
Ada
Initié en 1979, Ada sera standardisé en 1983 avec la publication de son fameux manuel de référence. Le "nouveau" et dernier standard sera Ada95. Réservé aux grandes administrations et aux "grosses" applications du domaine militaire et industriel de par sa complexité, Ada sait gérer le temps réel et la programmation concurrente. C'est un "bon" langage, malheureusement "lourd" car difficile à apprendre en peu de temps. Algol
En 1958, suite à une conférence entre Américains et Européens, l'idée est lancée d'un langage standard universel : ce sera ALGOL 58 dont le nom signifie ALGOrithmic Language . Une première version d'Algol voit le jour la même année que Cobol, soit en 1960. Vu au départ comme un langage mathématique ou plus exactement algébrique, Algol est du aussi à un comité. Sans doute trop vaste de conception, il n'est pas vraiment implémenté dans toute sa généralité ni toute sa puissance. C'est le père des langages modernes comme Pascal, C...
Apl
Les trois lettres d'APL signifient (très modestement) " A Programming Language , " c'est à dire "un langage de programmation". Kenneth Iversion, alors à Harvard, a formellement décrit une notation "propre" des mathématiques facilitant son enseignement. C'est en 1966 qu'IBM en fera une première version sur IBM360 à la fois comme calculateur et comme description d'ordinateur. Amélioré et complété dès 1984 via la notion de "tableau de tableau", APL devient APL2 puis le langage J en 1997. Langage original, concis, APL a toujours occupé une place à part dans le monde de la programmation. Awk
Nommé d'après ses trois créateurs, Alfred V. Aho, Brian W. Kernighan et Peter J. Weinberger, Awk voit sa première version officialisée en 1978, sous Unix 7. De version améliorée en version améliorée dont Nawk en 1985 puis Gawk (version gratuite du Gnu) en 1987, Awk n'est plus modifié depuis 1998, car tout ce qui lui manque fait partie du langage Perl. Awk reste pourtant un outil rapide d'extraction de connaissance dès lors que "grep" ne suffit pas. Basic
Thomas Kurtz et John Kemeny créent en 1964 le langage BASIC (Beginner's All-purpose Symbolic Instruction Code) au Dartmouth College pour leurs étudiants. Basic est dès le départ un langage simple qui peut être rapidement utilisé par des "profanes". On le conseille à l'époque pour les écoles maternelles, les petites entreprises et aux "ménagères". Après MSBasic 2 en 1976 c'est Visual Basic en 1992 renommé un peu plus tard VBA (Visual Basic pour Applications) qui donne au Basic ses lettres de noblesse : il permet de programmer Word, Excel, Access...
C et C++
Le langage C est à la fois proche du matériel, permettant ainsi de réécrire le noyau UNIX en C (comme dans l'été 1973) et suffisament généraliste, le rendant ainsi facilement portable. Les développements et les succès du langage C et d'UNIX sont intimement liés. C a évolué en C++ et reste un standard pour le développement de "grosses" applications dont les systèmes d'explotations. C est un langage de haut niveau, mais il peut aussi être utilisé comme un assembleur car il permet de programmer des instructions au plus près de la «physique» de la machine : beaucoup de logiciels pour les entreprises sont écrits dans ce langage souple (permissif ?), dont l'utilisation est dangereuse pour le débutant : comme il permet de tout faire il comporte peu de «garde-fous», car c'est au programmeur de savoir ce qu'il fait...
Cobol
Cobol signifie COmmon Business Oriented Language . Cobol apparait dans la même décennie que Fortran et Lisp. En 1959, lors d'une rencontre à Washington, le CODASYL (COnference on DAta SYstems languages) qui est un consortium comprenant le Department of Defense américain décide de réaliser un langage (commun) de traitement de données orienté gestion. Délibérément « verbeux », le Cobol emploie des mots et une syntaxe proches de l'anglais courant. C'est en avril 1960 qu'apparait la première version stable nommée évidemment COBOL60. Une version étendue et très stable date de 1965 ; elle sera reconnue comme un standard en 1968. Il faut attendre 1974 pur voir apparaitre le "nouveau" standard nommé CobolANS74 (ANS est l'acronyme de American National Standard). Deux évolutions majeures auront encore lieu : Ocobol en 1997 et Cobol IsoAnsi en 2002. Dbase
Meanwhile, rival companies were nurseries for talent (from which one person would stand out: Randy Solton at WordTech, as we will soon see). Against the competition, A-T counter-attacked with dBASE-IV 1.0 in October 1988. This version was supposed to include everything the competition had to offer and more. But it was released prematurely; the promised compiler was not included and the software had many memory problems. Instead of fixing the problems in the DOS version, the developers were instructed to port dBASE to the 32 bit operating system of the future: IBM OS/2. For a year and an half dBASE users waited for dBASE IV 1.1, and meanwhile, competitors were making better products than dBASE itself. In the spring of 1990 Microsoft released Windows 3.0, and it became an overnight success. Every computer magazine was talking about Windows and every user was asking for software that would work under Windows. A-T was unable to meet this demand. In 1991, a small and dynamic company named Borland began showing a database software program that displayed a dot prompt in Windows that could run existing dBASE III Plus programs. They were able to convince A-T's managers that Borland 's engineers were better qualified to insure the future of dBASE. In the fall of that same year, Borland bought the software giant A-T. On the DOS front, Borland released in March 1993 a new version of dBASE that fulfilled the promises made years before by A-T. Under the guidance of Tom Burt, dBASE-IV 2.0 became a reliable product and had the long awaited compiler. The father of relational databases, and thus SQL, is Dr. E.F. "Ted" Codd who worked for IBM. After Codd described a relational model for databases in 1970, IBM spent a lot of time and money researching how to implement his ideas. IBM came to market with a product named System/R in 1978. But other companies had formed and created relational database products before IBM was ready to release System/R. The first to market was Relational Software's product named Oracle and the second was Relational Technology's Ingres. IBM then released improved products in 1982 named SQL/DS and DB2. Oracle (now from Oracle Inc.) and DB2 are still available today in nth generation forms while the Ingres technology was bought by Computer Associates. Fortran
Fortran signifie FORmula TRANslation system . Conçu dès l'année 1954, la première implémentation a lieu en 1957 sur un ordinateur IBM 704. C'est John BACKUS, le "père" des systèmes de spécification de syntaxe pour les langages qu'on nomme aujourd"hui "grammaires BNF" qui a réalisé cette implémentation. Dès 1962 une version complète qui restera un standard pendant de nombreuses années s'appelle Fortran IV. Les deux améliorations notables suivantes sont Fortran77 et Fortran90 qui comme leur nom l'indique, ont mis une quinzaine d'annés pour voir le jour. Depuis, Fortran reste tel qu'il est. Il sera difficile d'en faire un fortran-objet compte-tenu de sa syntaxe de base peu adaptable... Fortran est un langage à visée scientifique. Il est "le champion des boucles simples". IBM a essayé de se le réserver en le rendant propriétaire, c'est à dire dépendant des machines IBM. Dès 1958, FortranII définit les sous-programmes et leur appel. Fortran77 améliore la lisibilité de fortran, sa modularité pour le traitement des fichiers.
Pour la "petite histoire", il faut savoir que le langage Algol a été développé en 1958 par un consortium européen pour concurrencer Fortran. Au début des années 70, IBM considérait Fortran comme un langage «propriétaire» qui devait être utilisé uniquement sur ses machines.
Javascript
Netscape 2 was released in early 1996 and offered completely new technologies created by the Netscape group, the most important of which were frames and JavaScript. JavaScript was a programming language written by Brendan Eich that was able to be embedded in web pages and could process numbers and modify the contents of forms. While in development, JavaScript had been known as LiveWire then LiveScript. Its core script syntax closely resembled Java, so it was renamed JavaScript when it was released. The way it referenced forms, links and anchors as children of the document object, and inputs as children of their parent form became known as the DOM level 0. Java
Java, à ne pas confondre avec Javascript est un langage jeune et robuste. Sa gestion des sous-programmes et son approche objet en font un langage de développement universel de plus en plus utilisé. Lisp
Lisp, dont le nom signifie LISt Processing , est un langage fonctionnel et symbolique créé au MIT par John Mc Carthy à la fin des années 50. Utilisant les travaux théoriques de Church sur le lambda-calcul (1941), les premières implémentations sur IBM en 1960 verront de nombreux dialectes comme CommonLisp, LeLisp, Scheme, Clos. Ses principaux successeurs sont Miranda, ML, et Haskell. En 2003 il est encore très utilisé, parfois sans le savoir : le fameux éditeur vi d'Unix et de Linux se programme en Lisp. On programme en Lisp en écrivant des fonctions qui sont évaluées dans une boucle de lecture / interprétation / affichage. La structure de donnée de base est la liste, mise entre parenthèses. Une liste peut contenir d'autres listes, comme par exemple
(abc (def) fgh ( i (jkl) ) ) Les expressions Lisp s'écrivent en notation préfixée. Par exemple (+ 2 3) se calcule par 2+3 vaut 5. Une fonction se définit par "de" ou "defun" comme par exemple la fonction qui calcule le carré d'un nombre programmée par
(defun carre(x) (* x x) )
Maple
Maple est un langage dit "fonctionnel" et mathématique, comme Mathematica. C'est est à la fois : un ensemble de primitives de calculs, un outil de calcul numérique et de calcul formel, un langage de programmation et un outil de visualisation graphique. Jetez un coup d'oeil à mon tuteur Maple pour voir à quoi il ressemble.
Pascal
Le langage PASCAL, nommé ainsi par Niklaus WIRTH en hommage au mathématicien Blaise PASCAL est un langage typé lisible, assez contraignant, ce qui le rend adapté à l'enseignement de la programmation. Grace au compilateur hyper-rapide Turbo Pascal il devient le langage des années 70 dans les universités. Passé au monde objet avec Pascal Object puis Turbo Pascal for Windows, il se nomme aujourd'hui... Delphi. Perl
Le langage Perl a été inventé par le linguiste Larry WALL. Perl signifie (entre autres) Practical Extraction and Report Language. Il est gratuit et disponible sous tous les environnements (Unix, Windows, MacOs...) par exemple à partir du site officiel http://www.cpan.org, de http://www.perl.com ou de http://www.activestate.com (ActivePerl). Conçu au départ pour la gestion de fichiers textes comme successeur de sed et Awk, il est rapidement devenu un langage de scripts indispensable notamment pour les scripts Web (CGI), les scripts de configuration (dont Apache).
Le langage de base de Perl est facile à appendre quoiqu'un peu "confusant" au départ à cause de symboles # et @ et $ un peu partout dans les variables ainsi qu'aux syntaxes obscures des expressions régulières.
Les milliers (si, si) de bibliothèques de sous-programmes (on dit en fait modules) du site officiel http://www.cpan.com permettent de développer rapidement une application sans avoir à tout inventer. Pour s'en convaincre, on peut consulter la liste des 7400 et quelques modules ( valeur au premier janvier 2005) disponibles.
Vous disposez d'un tuteur Perl long et détaillé écrit par votre serviteur.
Php
PHP was conceived sometime in the fall of 1994 by Rasmus Lerdorf. Early non-released versions were used on his home page to keep track of who was looking at his online resume. The first version used by others was available sometime in early 1995 and was known as the Personal Home Page Tools. It consisted of a very simplistic parser engine that only understood a few special macros and a number of utilities that were in common use on home pages back then. A guestbook, a counter and some other stuff. The parser was rewritten in mid-1995 and named PHP/FI Version 2. The FI came from another package Rasmus had written which interpreted html form data. He combined the Personal Home Page tools scripts with the Form Interpreter and added mSQL support and PHP/FI was born. PHP/FI grew at an amazing pace and people started contributing code to it. It is difficult to give any hard statistics, but it is estimated that by late 1996 PHP/FI was in use on at least 15,000 web sites around the world. By mid-1997 this number had grown to over 50,000. Mid-1997 also saw a change in the development of PHP. It changed from being Rasmus' own pet project that a handful of people had contributed to, to being a much more organized team effort. The parser was rewritten from scratch by Zeev Suraski and Andi Gutmans and this new parser formed the basis for PHP Version 3. A lot of the utility code from PHP/FI was ported over to PHP 3 and a lot of it was completely rewritten. PL/1
Pompeusement appelé Programming Language / One , PL/1 restera un langage de chez IBM pour des machines IBM malgré un détour par des grandes universités américaines et la gestion de leurs bibliothèques. Si le premier compilateur avait été plus stable, PL/1 aurait sans doute été un "bon" langage, meilleur que Pascal pour le développement d'applications et l'enseignement de la programmation. Prolog
Prolog, dont le nom signifie Programmation Logique , date du début des années 70 grace à Philipe Roussel du GIA de Marseille. Le premier interpréteur voit le jour en 1972 grace à Alain Colmerauer. Ce langage est très à part dans le monde de la programmation car il n'est pas impératif mais déclaratif et logique. Rexx
Rexx nait en 1979. La version 2, de 1980 bénéficie des remarques des utilisateurs via le réseau privé d'IBM. Suivront en 1991 netrexx qui est une version pour le Web et en 1998 orexx pour "les objets". Rexx est un petit langage, facile à apprendre et à mettre en oeuvre sous Windows, Linux... La preuve : essayez ce tuteur.
Sasl
SASL est le langage de programmation du logiciel SAS, "LE" logiciel de statistiques qui fait tout et qui ne s'achète pas. Lourd mais efficace, il se distingue des autres langages par ses nombreuses procédures visiblement écrites par des personnes différentes... Si, un après-midi il pleut et que vous vous ennuyez, jetez-y un coup d'oeil (il faut cliquer sur le y !).
SmallTalk
SmallTalk, "vieux" langage est né dès 1972. C'est le grand standard de la programmation objets "pure" : tout est objet, y compris le langage. On en peut s'en servir sans souris. Aujourd'hui en version "squeak", il sombre petit à petit dans l'oubli dans le monde du développement. Des exemples de programmation en SmallTalk peuvent être consultés ici. Sql
En 1974 IBM développe SEQUEL, qui devient peu après SQL (Structured Query Language). Au départ, c'est un langage d'interrogation de base de données, sans contraintes d'implémentation ni de stockage. Dès 1979 SQL couplé avec Oracle devient le langage de référence pour les bases de données. Les versions pour le Web (MySql, PostGresSql) l'ont rendu plus accessible au grand public. Mon tuteur mySql vous en présente succintement les grandes lignes.
Tcl/Tk
Tcl est un langage de scripts, comme Rexx et Awk. La version 1.1 date de 1988 ; en 2000 sort la version 8.1. Le langage Tk en est un sur-ensemble avec des commandes graphiques dédié à l'écriture d'interfaces (boutons, panneaux...). Facile à apprendre, sa syntaxe est peu traditionnelle ; mon tuteur tcl et son compagnon, le tuteur tk vous aideront peut-être à vous en faire rapidement une idée..