A la découverte des origines des jeux vidéo (4/…)

L’explosion des consoles de salon (1980-1990) et leur descendance aujourd’hui

Quatre sociétés ont de leur côté continué à permettre le développement des jeux videos sur les consoles.

NINTENDO :

Nintendo est une entreprise multinationale japonaise fondée en 1889 au Japon.

À ses débuts Nintendo produits juste des cartes à jouer (papier…), ensuite en 1970 ils ont commencé à vendre des jouets et des bornes d’arcades. Fin des années 1970 ils ont commencé à produire des consoles des jeux.

Les consoles les plus célèbres de Nintendo sont :

  • Les premières Nintendo (NES)
  • Game boy puis les Nintendo DS (consoles portables)
  • Game Cube, les Wii et Wii U
  • Et aujourd’hui, la console Nintendo Switch.
La Nintendo NES et un jeu de combat « CowBoy Kid »

La Nintendo Wii et un jeu d’aventure « Zelda »

 

La Nintendo Game Boy…

 

… et sa descendante, la Nintendo Switch ! avec le jeu Zelda également

 

SEGA :

Sega est aujourd’hui une des grandes marques qui produit des jeux vidéos.

Au début Sega produisait des consoles de jeux mais après la console « Saturn » ils ont arrêté de vendre et de produire des consoles de jeux car ils ne vendaient plus assez pour en produire des nouvelles. De nos jours ils consacrent leur temps à programmer de plus en plus de jeux vidéos pour jouer sur des consoles de jeux et sur les ordinateur. Quelques consoles produites par Sega sont la Sega MegaDrive (salon), Game Gear (portable) et la Dream Cast.

SONY:

 

Sony est une société créée en 1946 à Tokyo.

Sony est spécialisé sur le marché des affaires électroniques, Par exemple des téléphones, des consoles de jeux, des télévisions, et plain d’autres chose.

En 1994, Sony a lancé la série des Play Station qui sont toujours aujourd’hui une des principales plate-formes de jeu.

De la Play Station 1…

 

 

 

… à la Play Station 4, pour un même type de jeu : simulateur de football.

MICROSOFT:

Microsoft est une entreprise d’informatique qui produit des logiciels pour les entreprises et les personnes.

En 2001, ils se sont lancé sur le marché des consoles de jeu avec la X-Box. C’est le principal concurrent de Sony.

Aujourd’hui la Xbox est dans sa troisième version avec la Xbox One.

GTA III sur Xbox originale

 

GTA V sur xbox One

 

 

A la découverte des origines des jeux vidéo (3/…)

Le boom de la Micro informatique (1980-1990) et la naissance du jeu sur micro

Avec les micro-ordinateurs, on a assisté au développement de nombreux jeux videos.

Voici les premiers ordinateurs qui ont participé à ce phénomène.

APPLE II:

L’Apple ll est un des premiers ordinateurs personnels au monde fabriqué à grande échelle. L’Apple ll est sorti dans les stores le 10 juin 1977. En 1988 Apple a arrêté la production de l’Apple ll.

L’Apple ll est livré avec une cassette de démo, deux manettes de jeu, un clavier et le langage de programmation BASIC (j’en ai parlé dans le Trape sur les langages de programmation).

Au début sur l’Apple ll on joue juste à Pong.

Ensuite on peut programmer ses propres jeux avec le clavier en BASIC.

L’ordinateur est aussi conçu pour évoluer avec l’utilisateur.

Commodore 64 et Amiga:

 

 

La société Commodore a créé plusieurs micro-ordinateurs célèbres, en particulier le Commodore 64 (avec lequel j’ai joué au Musée du Jeu Vidéo à Berlin !).

Un Commodore 64 avec une partie de Pac Man (jeu célèbre qu’on ne présente pas) à l’écran.

Plus tard, en 1985 L’Amiga est une autre famille d’ordinateurs personnels crée par Commodore en 1985 et commercialisée jusqu’en 1994 où Commodore a fait faillite.

En 1990 Amiga est très populaire dans la scène démo (voir ci-dessous), et parmi les amateurs de jeu vidéo.

Amiga offrait en standard un affichage plus coloré et plus animé, un meilleur son, et un système d’exploitation plus avancé que la plupart de ses concurrents.

 
Note : Les démos étaient de petites animations agrémentées de musiques et distribuées avec les jeux et logiciels piratés, servant ainsi de signature au groupe de crackers qui avait réussi à cracker (contourner les protections contre la copie) le jeu ou l’application.

ATARI

Atari, le créateur des bornes d’arcade a aussi créé sa gamme d’ordinateur personnels.

L’origine des ordinateurs Atari : l’Atari 400, avec un jeu de basket assez… simple à l’affichage.

L’ordinateur le plus célèbre pour les joueurs, qui a concurrencé l’Amiga était l’Atari ST. En bas un print screen du jeu Populous, un ancêtre du jeu Clash of Clans qui se joue sur les téléphones mobiles maintenant.

Note : Atari était aussi célèbre dans la scène démo.

AMSTRAD :

 

Amstrad est une entreprise d’électronique grand public créée par Alan Michael au Royaume-Uni.

Dans les années 1980, l’entreprise a lancé sa gamme d’ordinateurs personnels au Royaume-Uni, en France et en Allemagne.

Les ordinateurs Amstrad étaient très utilisés par des joueurs du monde entier.

L’entreprise s’est adaptée avec le temps et a produit par la suite une gamme d’ordinateur personnels (PC) bon marché.

 

Les IBM PC et compatibles

Dans les années 80 ; IBM a sorti le PC qui est aussi lentement devenu une machine de jeu. Aujourd’hui encore on joue sur PC et il y a de nombreux jeux videos qui exploitent les possibilités graphiques des PC et de leurs cartes videos.

Par exemple l’ordinateur construit pendant mon Trape de première année a été conçu pour cela.

Pour mesurer l’évolution du graphisme des PC, à gauche un écran en mode CGA (la première carte graphique PC) avec Flight Simulator sous MS-Dos en 1988, et à droite, une photo de mon ordinateur personnel construit l’an dernier pour jouer pour mon Trape, avec une partie de GTA lancée.

 

 

A la découverte des origines des jeux vidéo (2/…)

Pour commencer, j’ai voulu découvrir comment les premiers jeux sont apparus avant de devenir ce qu’ils sont aujourd’hui.

J’ai d’ailleurs profité de mes vacances de carnaval à Berlin pour visiter le Musée du jeu video.

C’était intéressant de voir ‘en vrai’ les vieux jeux et les vieux ordinateurs et consoles. Sur la photo je joue à une partie de Space Invader sur un ordinateur Commodore 64 (dans une pièce reconstituant l’ambiance des années 80).

Les premiers jeux videos

Des électroniciens qui s’amusent

L’idée et le concept même de jeu vidéo viendrait de Ralf Baer en 1951 qui travaillait dans l’électronique pour la société Loral Electronics (fabriquant de télévisions).
En 1958 : LE JEU VIDEO EST INVENTE DANS UN LABORATOIRE DE RECHERCHE ATOMIQUE !

Willy Higinbotham, est un physicien dans un centre de recherche nucléaire gouvernemental. Il crée le premier jeu vidéo de l’histoire sur un ordinateur analogique couplé à un oscilloscope. Cet ordinateur servait normalement à calculer les trajectoires de missiles nucléaires !
C’est un jeu de tennis : « tennis for two » (multi-joueurs en plus !). Le court de tennis est une simple ligne horizontale sur laquelle un point rebondit. Le 1er jeu vidéo du monde est né !

 

Pas de chance pour lui: il n’a pas posé de brevet pour sa « console de jeu » car il n’y croyait pas, c’était pour lui un simple passe-temps pour ses amis.

En 1962, SpaceWar! est le second jeu vidéo de l’histoire, ou le 1er si on considère que c’est le premier vrai jeu sur ordinateur (un Dec PDP-1 ). Créé par S. Russel, J.M. Graetz et W. Wiitanen, des étudiants au MIT, il sera fourni avec chaque ordinateur vendu.

Deux vaisseaux doivent échapper à l’attraction d’une planète. Un étudiant qui deviendra célèbre y jouera : Nolan Bushnell (il deviendra le créateur de ATARI dont je parlerai plus tard).

Et si on jouait sur la télévision

En 1967, Ralf Baer crée les premiers jeux jouables sur une télévision : un jeu de tennis et un jeu de voitures. C’est le véritable inventeur de la console de jeu. Baer dépose le brevet en 1968.


Sa première console, jouable à deux … Bien loin d’une Play Station 4!

Et si on jouait au jeu vidéo dans des salles de jeu

En 1971, Galaxy Game est la toute première borne d’arcade. Elle est conçue à l’université de Stanford mais ne sera pas diffusée à grande échelle.
Deux mois après Galaxy Game, Nolan Bushnell conçoit une machine au look futuriste : le Computer Space, un remake de « Space war » (dont il était fan) dans un boîtier très design et futuriste, c’est la vraie naissance des bornes d’arcade pour le grand public.

Les premières consoles de salon trouvent leurs premiers clients

L’Odyssey est commercialisée en 1972 par Magnavox et devient ainsi la toute première console de salon ! Elle a été également conçue par Ralph Baer.

Elle utilisait un système de calque que l’on déposait sur la télé. Elle disposait de 13 jeux sur 6 cartouches. Un pistolet était disponible avec 4 jeux additionnels.

Les cartouches ne contenaient pas de programme, mais connectaient les divers circuits de la machine pour définir l’affichage et la gestion des évènements. Deux tailles d’écran étaient disponibles. Une même cartouche pouvait contenir plusieurs jeux. Malgré un prix élevé, cette console se vendra à plus de 100,000 exemplaires en quatre mois.

Jouer sur une télévision est un concept complètement inédit et révolutionnaire qui demandera un long temps pour que les personnes s’y habituent.

Un nom connu ATARI

En 1972 c’est la création de la firme mythique ATARI par Nolan Bushnell et Ted Dabney.
Ils avaient initialement choisi le nom Syzygy mais comme celui-ci était déjà déposé, ils se sont alors rabattus sur Atari, un terme japonais issu du jeu de Go.

Bushnell veut lancer un jeu simple et facile à comprendre (contrairement à Computer Space),
Il sortira alors la borne d’arcade Pong, dont je parlerais dans la seconde partie.
Le jeu est programmé par le génial Al Alcorn ( le créateur d’ Atari).
Environ 10 000 bornes furent commandées.

 

A la découverte de l’univers des Jeux Video (1/…)

J’ai choisi ce nouveau sujet car je m’intéresse beaucoup aux jeux vidéo.

Et je voulais en savoir plus sur ce sujet.

J’aime bien jouer aux jeux vidéo avec mes copains car cela m’amuse quand on joue et qu’on fait des challenges sur différents jeux (mais je ne fais pas que jouer à l’ordinateur).
Lors d’un de mes précédents travaux personnels au lycée j’ai construit un ordinateur conçu pour jouer à des jeux avec des hauts graphismes. Dans ce travail j’avais aussi exploré l’histoire des ordinateurs.
Dans mon travail personnel suivant, j’avais étudié l’histoire de la programmation, et étudié et réalisé quelques programmes d’exemples.

En explorant les ordinateurs et la programmation, j’avais aussi commencé à parler des jeux vidéo.

Maintenant, je veux découvrir l’histoire des jeux vidéo, sur les PC (Personal Computer) et sur les consoles de jeux .

Et comme je souhaite aussi continuer à apprendre la programmation, j’ai programmé moi-même le jeu Pong en Java en suivant un tutoriel sur YouTube (article à paraître plus tard).

 

 

A la découverte de java

Dans la série d’article précédente sur l’histoire des langages de programmation, j’ai vu que Java était un des derniers langages de programmation créés.

Cc’est pour ça que j’ai décidé d’utiliser ce langage pour découvrir à quoi ressemble le travail de programmation.

Pour programmer en Java il faut d’abord télécharger un outil de programmation java.

En ce cas j’utilise éclipse. https://www.eclipse.org

 

Test de l’environnement java.

Une fois qu’on a lancé Eclipse, on crée un nouveau projet.

Dans ce projet j’ai recopié le code d’exemple Java que j’avais cité dans l’article sur « l’histoire de la programmation ».

En haut de la fenêtre il y a le code et directement en dessous il y a le résultat de l’exécution du code.

C’est-ce qu’on fait en cliquant sur le petit bouton vert en haut.

Quelques essais de programmes

Pour explorer le langage java, nous avons essayé de réécrire les programmes d’exemples des différents langages exploré dans la série d’articles sur l’histoire de la programmation :

  • Exemple « langage machine » : trouver le plus grand nombre
  • Exemple « fortran » : le plus grand commun diviseur
  • Exemple « cobol » : la multiplication

Dans les articles qui suivent, je vais montrer les programmes que cela donne.

Enfin, je me suis essayé à écrirer un petit programme pour m’aider en mathématiques.

Exemple « langage machine » : trouver le plus grand nombre

De l’original en « langage machine » à sa version java !

public class P02_PlusGrandNombre {
    public static void main(String[] args) {
        int tableauDeNombres[] = { 12, 56, 42, 87, 23, 14, 3, 97, 18, 23, 52, 35 };
        int positionPlusGrandNombre = 0;
        for (int posNombreExamin=0; posNombreExamin<tableauDeNombres.length ; posNombreExamin++) {
            System.out.println("le nombre " + posNombreExamin +" est "+tableauDeNombres[posNombreExamin]);
            if( tableauDeNombres[posNombreExamin] > tableauDeNombres[positionPlusGrandNombre]) {
                System.out.println("le nombre " + posNombreExamin +" ("+tableauDeNombres[posNombreExamin]+") est plus grand que le nombre "+positionPlusGrandNombre+" ("+tableauDeNombres[positionPlusGrandNombre]+")");
                positionPlusGrandNombre = posNombreExamin;
            }
        }
        System.out.println("le plus grand nombre est le "+positionPlusGrandNombre + " (" + tableauDeNombres[positionPlusGrandNombre] +")" );       
    }

}
 

Exemple « fortran » : le plus grand commun diviseur

De l’original en « fortran » à sa version java …

public class P03_PlusGrandCommunDiviseur {
    public static void main(String[] args) {
        int a = 55;
        int b = 33;
        int resultat = calculePGCD(a,b);   
        System.out.println("le PGCD de "+a+" et "+b+" est "+resultat);
    }

   public static int calculePGCD(int na, int nb) {
       int ia = na;
       int ib = nb;
       while ( ib !=0) {
           int itemp = ia;  
           ia = ib;
           ib = itemp % ib;
       }     
       return ia;      
   }
}

Exemple « cobol » : la multiplication

De l’original en « cobol » à sa version java …

import java.util.Scanner;
public class P04_LaMultiplication {
    public static void main(String[] args) {
        // ouvre le lecteur
        Scanner in = new Scanner(System.in);
        // lit les nombres.
        System.out.printf("Enter first number:  ");
        int num1 = in.nextInt();
        System.out.printf("Enter second number:  ");
        int num2 = in.nextInt();

        // ça fait le calcul
        int result = num1 * num2;

        // affiche le resultat
        System.out.println("result is = " + result);

        // ferme le lecteur
        in.close();
    }
}

Un premier défi : Utilisation de Java pour résoudre un de mes soucis en mathématique

En mathématique j’oublie souvent d’aller jusqu’au bout dans la réduction des fractions.

Or je sais que quand on divise le numérateur et le dénominateur par leur plus grand diviseur commun on obtient le numérateur et le dénominateur de la fraction réduite.

Dans les programmes d’exemple, j’ai trouvé un programme qui trouve les plus grands diviseurs communs. Alors je vais m’en servir pour calculer les fractions réduites.

Le programme java que voici va m’aider à vérifier les fractions que je dois calculer : on y voit l’appel de l’autre sous-programme :

P03_PlusGrandCommunDiviseur.calculePGCD(numerateur, denominateur) ;

Maintenant plus d’erreur pour réduire mes fractions !

 

import java.util.Scanner;
public class P05_ReductionFraction {
    public static void main(String[] args) {

        // ouvre le lecteur
        Scanner in = new Scanner(System.in);       

        // lit les nombres.
        System.out.printf("Entre le numérateur:  ");
        int numerateur = in.nextInt();
        System.out.printf("Entre le dénominateur:  ");
        int denominateur = in.nextInt();
        System.out.println("saisie est " + numerateur +"/"+denominateur);

        // calcul du pgcd en utilisant le programme d'exemple
        int pgcd = P03_PlusGrandCommunDiviseur.calculePGCD(numerateur, denominateur);

        //calcul du nouveu numérateur et du nouveau dénominateur
        numerateur= numerateur/pgcd;
        denominateur= denominateur/pgcd;

        // affiche le resultat
        System.out.println("resultat est " + numerateur +"/"+denominateur);

        // ferme le lecteur
        in.close();
    }
}

 

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 ! 

 

Histoire de la programmation 1/4 : Des premiers bits au premier langage

Les langages de programmation sont une invention créée par l’humanité. Même s’ils ont été inventés il y a quelques dizaines d’années, il y a eu beaucoup d’évolutions. Je vous invite à parcourir quelques étapes de ces évolutions avec moi. 

Bits et langage machine … 

Tout au début, les ordinateurs fonctionnent avec des états allumés ou éteints de courants électriques, chargés ou déchargés de mémoires : les bits, 0 ou 1 en langage binaire. 

Les premiers informaticiens devaient travailler à ce niveau et saisir de longues séries de 0 et de 1 pour parvenir à leur fin.  

Par exemple pour un micro-processeur dans les années 70, le Z80, un programme pour trouver le plus grand nombre d’une série de nombres ressemble au niveau matériel à :  

00100001 10100011 01110010 01000110
10010111 00100011 10111110 00110000
00000001 01111110 00010000 11111001
00110010 11110010 01111010  

Pas très facile à lire et à écrire, non ? 

Ceci est un exemple de langage machine qui à été le pain quotidien de pionniers de l’informatique 

Par commodité les informaticiens ont utilisé la base 16 pour représenter les mêmes informations, ce qui donne la représentation suivante du même programme en langage machine : 

21 A3 72 46 97 23 BE 30 01 7E 10 F9 32 F2 7A. 

Un peu plus facile à lire et à recopier, mais pas forcément à comprendre…  

L’assembleur 

Pour mieux exprimer ces instructions pour le processeur, les informaticiens ont imaginé l’assembleur, un programme qui transforme des instructions plus lisibles dans ces suites de 0 et de 1. 

Ces instructions plus lisibles sont des mnémoniques et ressemblent pour le même programme à : 

LD HL,72A3H
LD B,(HL)
SUB A
L1: INC HL
CP (HL)
JR NC,L2
LD A,(HL)
L2: DJNZ L1
LD (7AF2H), A  

On appelle mnémoniques ces codes car ils ont une vague ressemblance avec des mots anglais. Ne trouvez-vous pas ? 

LD comme Load, SUB comme substract, INC comme increment, JR comme Jump Relative, etc. 

La tâche été devenue un peu plus facile pour saisir du code mais encore bien difficile pour concevoir des programmes complexes. 

Le premier langage de programmation 

L’étape suivante et déterminante sera l’invention des langages de programmation. 

Personne ne pensait qu’il serait possible d’inventer des langages de programmation capables de diriger un ordinateur, avant qu’en 1953, John Backus de la société IBM ne se mette à concevoir avec quelques autres ingénieurs le langage Fortran : un langage lisible à l’œil nu, facilement compréhensible, et non une suite de 0 et de 1, ou un jargon insipide comme le langage machine.. 

C’est un exploit intellectuel d’avoir conçu cette construction abstraite qu’a été ce premier langage de programmation et son implémentation dans un ordinateur : sa simple conception a nécessité 24 années-hommes de travail des meilleurs informaticiens de l’époque.  

Je parlerai plus en détail du Fortran dans le prochain post de cette série d’articles !

Dreamcars.lux: Notre page instagram !

J’aime les voitures de sport et quand j’en vois, je prends des photos de la voiture.

Au Lycée Ermesinde, je suis aussi dans l’entreprise Film et Photo (le site Web est ici : www.filmetphoto.com). Et j’aime prendre des belles photos en essayant de trouver le meilleur endroit pour la prendre.

Il y a deux semaines j’ai créé un compte Instagram avec un copain de l’école : nous y publions régulièrement les photos de voitures de sport que nous prenons dans la rue ou dans les magasins spécialisés.

Pour avoir du succès sur Instagram(avoir beacoup de followers, likes, il faut utiliser les bons hashtags (#)pour se faire connaître.

Par exemple pour les voitures, nous utilisons ces hashtags:  #cars #car #ride #drive #driver #sportscar#vehicle #vehicles #street #road #freeway#highway #sportscars #exotic #exoticcar#exoticcars #speed #tire #caroftheweek. 

Pour les trouver, nous avons demandé aux auteurs des pages instagram les plus connues sur le sujet, quels sont les meilleurs hashtags qui les ont fait connaître.

En les utilisant, nous sommes arrivés en tête du classement « trends » du hashtag #caroftheweek 

Ah, oui, voici l’URL de notre compte instagram : dreamcars.lux .

\_(*-*)_/

 

Minecraft : jouer, programmer, modifier, partager à Luxembourg !