Histoire de la programmation 4/4 : Les langages du web

Au début des années 90 Tim Berners-Lee inventa le World Wide Web (www), qui est un réseau de documents (pages web : la home page du lycée par exemple) répartis dans le réseau internet, qui a aussi évolué en un réseau d’accès à des applications (pages web dynamiques : google.com, amazon.com, youtube.com, …).  

Pour faire fonctionner cette toile globale de nouveaux langages ont été imaginés. Je vais parler de deux d’entre eux. 

HTML: 

HTML aussi appeler L’HyperText Markup Langage est le format le plus souvent utilisé pour créer des sites web. HTML a été inventé pour permettre d’écrire des documents hypertextuels, en reliant les différents documents d’internet avec des hyperliens.  

 Aujourd’hui, ces documents sont appelés « page web ». 

 Voici un exemple de page que j’ai écrite au début de mon parcours dans l’entreprise « Web Development ». 

 <!DOCTYPE html>  

<html> 
<head> 
<title>Test_2017</title> 
<meta charset="utf-8"> 
</head> 
<body> 
<font>Test de ce site web</font> 
 <audio src="DJ_Snake.mp3" type="audio/mp3" controls> 
<img src="images.jpeg">  
 </body> 
 </html> 

 Je n’ai pas pu colorier le code car ce n’est pas un langage pour écrire des programmes mais pour écrire des pages web. 

Le navigateur web (chrome par exemple) va décoder le HTML pour le rendre visible sur l’écran 

Voici le résultat de ce code : 

Java Script : 

 Java Script est utilisé pour créer des sites web mais aussi pour les serveurs. 

Java script a été créé en mai 1995 par Brendan Eich pour Netscape Communication Corporation. Le langage est une simplification de Java pour les débutants. 

Brendan Eich a aussi codé Live Script. Live script est Java script sauf pour les différents serveurs. 

En décembre 1995 Netscape annonce la sortie de Java Script. 

Plus tard Microsoft utilisa Java Script pour faire leur site web. 

function test_prime(n) 
{ 
   if (n===1) 
   { 
      return false;   
   } 
   else if(=== 2) 
   {     
      return true ; 
   } 
   else 
   { 
      for(var = 2; nx++) 
      { 
         if(=== 0) 
         { 
            return false;       
         } 
      }   
      return true; 
   } 
} 
console.log(test_prime(37)); 

Histoire de la programmation 3/4 : Performance et polyvalence

Dans les années 70 avec la troisième génération de grands ordinateurs, il fallait inventer un langage de programmation adapté aux nouveaux volumes de donnés, et aux nouvelles performances des machines.

Différents langages de programmation ont été conçus, d’ont un qui a connu un grand succès jusqu’à aujourd’hui, sous sa forme originale le langage C, ou sous ses formes améliorées, dont C++, et dans une certaine manière Java.  

Le langage C 

Le langage C est apparu au cours de l’année 1972 dans les laboratoires de l’entreprise  

Bell . Il était développé par Dennis Ritchie et Ken Thompson pour permettre de créer et de maintenir le système d’exploitation UNIX car, à l’époque, aucun autre langage que l’assembleur (qui n’est pas pratique du tout) n’était capable de cela. 

C’est aujourd’hui l’un des langages les plus utilisés par les programmeurs : on le retrouve en quantité dans LinuxWindows et de très nombreux autres logiciels. 

Deux caractéristiques intéressantes du C : la variable i (celle qui contient le nombre) doit être déclarée à l’avance ; enfin, un bloc d’instructions (ici une boucle for) est délimité par des crochets. Le point-virgule, lui, sert à terminer une instruction.
Dans la boucle, printf sert à insérer du texte, ici le traditionnel « Hello, world ! » ; y a été ajouté un \n pour faire un retour à la ligne. 

Voici un exemple de C: 

#include <stdio.h>  

main()  
  int n, c;  
   printf("Enter a number\n"); 
   scanf("%d", &n);  
   if ( n == 2 ) 
     printf("Prime number.\n"); 
   else    
  {        
    for ( c = 2 ; c <= n - 1 ; c++ ) 
    {            
       if ( n % c == 0 ) 
         break; 
    } 
    if ( c != n )           
       printf("Not prime.\n");   
    else 
       printf("Prime number.\n"); 
  } 
  return 0; 
} 

 

Ici les variables n, c sont avec un type : ce sont des nombres entiers (int). 

Retour à l’histoire familiale : ma mère a commencé à travailler à la banque en programmant des logiciels en C.  

C++: 

Le langage C++ est une version modifiée du langage C. Il a été inventé par Bjarne Stroustrup entre 1979 et 1983. Comme les inventeurs du C, Bjarne Stroustrup travaillait chez Bell. 

Un code en langage C est très souvent valide en C++. On peut par contre utiliser des constructions en C++ qui n’existent pas en C. 

Le C++ est utilisé par beaucoup de programmeurs. Cependant, il est très compliqué d’apprendre tout ce qu’il permet de faire de plus que le C, même avec plusieurs années d’expérience. 

#include <iostream> 
using namespace std; 
class Rectangle { 
     int width;  
     int height; 
  public: 
     void set_values (int x, int y) { 
        width = x; 
        height = y;     
     } 
     int area() { 
       return width*height; 
     } 
}; 
int main () { 
   Rectangle rectOne; 
   Rectangle rectTwo;
   rectOne.set_values (3,4); 
   cout << "area rectangle one: " << rectOne.area(); 
   rectTwo.set_values (5,7); 
   cout << "area rectangle two: " << rectTwo.area(); 
   return 0; 
} 

Ce programme calcule l’aire d’un rectangle en multipliant les deux côtés. 

On peut voir un nouveau type d’information défini par ce programme : la forme rectangle.  Puis le programme principal crée deux rectangles et indique leurs dimensions (le premier rectangle mesure 3-4 cm et le second 5-7cm). Puis il leur demande à chacun leur surface.  

Ça permet de concevoir facilement des programmes complexes : dans des jeux compliqués (comme GTA, Minecraft), il y aurait beaucoup de types d’informations (cubes, rectangle, personnage, etc.), et des millions de cubes, de personnages et de rectangles différents  manipulés dans le jeu. 

Retour à l’histoire familiale : mon père a commencé sa carrière en programmant en C++. 

Java: 

Le langage Java est apparu en 1995. Il a été inventé par James Gosling et Patrick Naughton, qui travaillaient alors pour l’entreprise Sun Microsystems. 

À première vue, il ressemble beaucoup au langage C++ (et donc au langage C), ce qui est normal car il s’en inspire. En fait, il y a énormément de différences entre les deux. 

Un des objectifs de Java était de permettre de créer des programmes qui fonctionnent sur tous les ordinateurs. C’est quelque chose qui n’est pas facile à faire avec du C++, par exemple. Pour cela, les programmes écrits en Java ne sont pas traduits directement en langage machine. Un logiciel, la machine virtuelle, se charge d’exécuter le programme à la place de l’ordinateur. Comme cela ralentit l’exécution, Java ne peut pas être utilisé lorsque la vitesse est très importante. 

Le Java est utilisé par de très nombreux programmeurs et dans beaucoup d’entreprises. 

Un jeu très connu codé en Java est Minecraft ! 

Attention, Java et JavaScript, dont je parlerai dans la partie suivante, sont deux langages différents, qui ne se ressemblent que par leur nom ! 

Voici un exemple de code Java : 

public class PrimeEx { 
    public static void main(String[] args) { 
        System.out.println("54161329 : " + isPrime(54161329) + " (expect false)"); 
        System.out.println("1882341361 : " + isPrime(1882341361) + " (expect true)"); 
        System.out.println("2 : " + isPrime(2) + " (expect true)"); 
    } 
    // pre: num >= 2 
    public static boolean isPrime(int num) { 
        assert num >= 2 : "failed precondition. num must be >= 2. num: " + num; 
        final double LIMIT = Math.sqrt(num); 
        boolean isNumPrime = (num == 2) ? true : num % 2 != 0; 
        int div = 3; 
        while(div <= LIMIT && isNumPrime ) { 
            isNumPrime = num % div != 0; 
            div += 2; 
        } 
        return isNumPrime ; 
    } 
} 

On voit bien avec cet exemple que ça ressemble beaucoup à C++. 

Mes deux parents ont participé à des projets Java et je suis déjà allé deux fois à la fête du Java User Group de Luxembourg avec mon père. On y a présenté en 2015 la programmation de, et dans, Minecraft en Java comme j’en ai parlé dans mon Blog (http://wollef.org/fr/minecraft_luxembourg_yajug/). 

Histoire de la programmation 2/4 : Les langages historiques

Dans mon travail personnel précédent, j’ai parlé de l’histoire des ordinateurs, des origines jusqu’aux ordinateurs personnels d’aujourd’hui. 

Avec la deuxième génération de grands ordinateurs (1960), j’avais vu que deux langages étaient apparus à cette époque : Fortran et Cobol. 

De même, l’invention des micro-ordinateurs (1970), combinée à l’utilisation du Basic a permis d’imaginer plein de nouveaux logiciels. 

Les machines et les langages de programmation évoluent en même temps, au fil de l’inventivité des ingénieurs et des informaticiens.  

Fortran : 

Le Fortran (Formula Translator) est le premier langage de programmation évolué de l’histoire de l’informatique. Créé en 1957 par John Backus chez IBM pour simplifier le dialogue avec la machine et le rendre  plus proche du langage humain. 

Il est très souvent utilisé pour faire faire à la machine des calculs compliqués dans les domaines scientifiques. 

 *     euclid.f (FORTRAN 77) 
*     Find greatest common divisor using the Euclidean algorithm 

      PROGRAM EUCLID 
        PRINT *, 'A?' 
        READ *, NA 
        IF (NA.LE.0) THEN 
          PRINT *, 'A must be a positive integer.' 
          STOP 
        END IF 
        PRINT *, 'B?' 
        READ *, NB 
        IF (NB.LE.0) THEN 
          PRINT *, 'B must be a positive integer.' 
          STOP 
        END IF 
        PRINT *, 'The GCD of', NA, ' and', NB, ' is', NGCD(NA, NB), '.' 
        STOP 
      END 

      FUNCTION NGCD(NA, NB) 
        IA = NA 
        IB = NB 
    1   IF (IB.NE.0) THEN 
          ITEMP = IA 
          IA = IB 
          IB = MOD(ITEMP, IB) 
          GOTO 1 
        END IF 
        NGCD = IA 
        RETURN 
      END 

Je profite de ce premier exemple (en fortran de 1977) pour expliquer différents aspects du langage de programmation : 

  • Utiliser des mots clés pour structurer le programme et donner des instructions à l’ordinateur : je les ai coloriés en bleu (PROGRAM , FUNCTION, THEN, etc.). 
  • Mettre les données qu’on manipule dans des variables avec un nom. Je les ai coloriés en orange.( NA, NB, ITEMP , etc.). 
  • Permettre de saisir des valeurs fixes dans le code. Je les ai coloriées en vert.  (‘A?’, ‘B must be a positive integer.’, etc.) 
  • Permettre de créer des sous-programmes et de les appeler depuis le code principal. Ici il y a le sous-programme NGCD qui est appelé depuis le programme principal EUCLID. 

 

Cobol : 

Cobol est un langage de programmation créé en 1959. Le but était de créer un langage naturel humain, avec des phrases complètes rédigées en anglais, sans oublier le point à la fin de la phrase ! 

Cobol est un langage bavard. Le langage Cobol était de loin le langage le plus employé dans les domaines de la gestion et de la comptabilité jusque dans les années 1980, et reste toujours utilisé en particulier dans les banques. C’est en partie l’existence de programmes anciens dans ce langage qui a fait craindre le bogue de l’an 2000. 

Voici un exemple de petit programme où j’ai colorié avec la même logique que pour le programme Fortran. 

$ SET SOURCEFORMAT"FREE" 
IDENTIFICATION DIVISION. 
PROGRAM-ID.  Multiplier. 
AUTHOR.  Michael Coughlan. 

* Example program using ACCEPT, DISPLAY and MULTIPLY to  
* get two single digit numbers from the user and multiply them together 

DATA DIVISION. 
WORKING-STORAGE SECTION. 
01  Num1                PIC 9  VALUE ZEROS. 
01  Num2                PIC 9  VALUE ZEROS. 
01  Result              PIC 99 VALUE ZEROS. 

PROCEDURE DIVISION.     
DISPLAY "Enter first number  (1 digit) : " WITH NO ADVANCING.     
ACCEPT Num1.     
DISPLAY "Enter second number (1 digit) : " WITH NO ADVANCING.     
ACCEPT Num2.     
MULTIPLY Num1 BY Num2 GIVING Result.     
DISPLAY "Result is = ", Result.     
STOP RUN. 

 Pour l’histoire familiale, ma grand-mère paternelle a appris le cobol dans les années 70 et a programmé pendant 2-3 années ! L’ordinateur était un ordinateur de troisième génération dans une administration dont j’ai parlé dans mon précédent Trape (comme sur la photo à coté.). 

Basic : 

Basic est un langage de programmation, inventé en 1964. Il a été rendu célèbre car un interpréteur Basic équipait tous les premiers ordinateurs personnels dans les années 70. Comme son nom l’indique, il a été conçu pour être facilement et rapidement appris par un débutant. 

Ce langage est encore utilisé de nos jours.  

10 INPUT "What is your name: "; U$ 
20 PRINT "Hello "; U$ 
30 INPUT "How many stars do you want: "; N 
40 S$ = "" 
50 FOR I = 1 TO N 
60 S$ = S$ + "*" 
70 NEXT I 
80 PRINT S$ 
90 INPUT "Do you want more stars? "; A$ 
100 IF LEN(A$) = 0 THEN GOTO 90 
110 A$ = LEFT$(A$, 1) 
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30 
130 PRINT "Goodbye "; U$ 
140 END 

 En Basic toutes les lignes ont un numéro (rouge); Le mot GOTO permet d’aller directement à la ligne qui a ce numéro. Si vous allez voir l’exemple Fortran il y avait aussi un GOTO, je vous laisse le trouver 😉 

Pour un autre clin d’œil à l’histoire familiale, c’est en basic que mon père a commencé à programmer quand il était en 2ème année de lycée. Les ordinateurs étaient un TO7-70 et un TRS-80, comme sur les photos ci-dessous. 

Dans mon précédent Trape, j’ai expliqué que ces ordinateurs étaient au début de la micro informatique. Bien loin du PC de gamer que j’ai construit pour mon Trape !