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 PC et sur consoles de jeux (série d’articles en cours).
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 .

\_(*-*)_/

 

Mon ordinateur de jeu: Interwiew avec un expert

La commande et le montage des composants de mon ordinateur personnel de jeux, a été l’occasion de rencontrer la société Netfix à Bertrange.
Nous y avons travaillé avec M. Steiger, qui a bien voulu répondre à quelques questions sur son métier d’assembleur d’ordinateur personnels.
J’ai trouvé utile de mentionner ici cette discussion avec quelqu’un de passionné par son métier.

M. Steiger étant allemand, l’interview s’est déroulée en allemand.

Wie sind Sie auf Ihren Beruf gestoßen ?
Schon immer waren die Computer mein Hobby. Ich habe mich immer tiefer mit ihnen beschäftigt, dass ich sogar mein Studium dafür aufgab.

Wie finden Sie Ihren Beruf ?
Ich finde diesen Beruf gut, denn ich lerne jeden Tag etwas neues dazu. Der Kontakt mit den Kunden macht mir auch Spaß. Ich arbeite vor allem mit kleinen Firmen, denn sie wollen eher persönliche Computer.

Welche Schule haben Sie für dieses Beruf besucht?
Keine, denn ich habe mir alles selbst beigebracht. Ich konnte mein Hobby zum Beruf machen. Ich habe Schritt für Schritt gelernt. 20 Jahre lang : « learning by doing » .

Was wissen Sie über Gamer PC’s ?
Alles was ich weiß, habe ich aus Zeitschrifften. Ich schaue mir die Tests an und finde somit immer bessere Komponeten. Jetzt habe ich raus gefunden das die Karten MSI schlechter als die von ASUS sind. MSI fallen schnell aus.

Für wen machen Sie die Computer ?
Ich baue Computer für kleine Firmen und Einzelpersonen. Meine zusammengestellten PC’s sind teuerer als die, die man so kaufen kann, denn sie sind mit besseren Komponeten zusammengebaut. Ich baue 20-30 Arbeitscomputer pro Monat. Die Gamers PC’s sind seltener bei mir, denn wenige brauchen so einen Computer.

2 Technichen Fragen für Spiele : Was nützen FPS ? Was ist ein Ping ?
FPS bringen eine bessere Bildqualität ins Spiel. Je höher die FPS-Anzahl, desto besser ist das Bild verhältnis.
Man braucht ein nicht zu hohes Ping, denn das Ping ist wichtig bei online Games um besser reagieren zu können.

 

Mon ordinateur de jeu:analyse des composants 5-5

Pour mieux commprendre si les composants que j’ai choisi sont bons, j’ai regardé dans le magazine PC Games. Hardware. Voici ce que j’ai trouvé pour les principaux composants.

La carte graphique

Le graphique suivant présente les principales cartes graphiques sur le marché et leurs prix.
La carte que j’avais choisie était la numéro 11 et celle que monsieur Steiger m’a conseillé est la numéro 6. Les autres cartes plus performantes sont beaucoup plus chères. La numéro 6 est la meilleure de son groupe.


Le processeur

Le processeur choisi est l’intel core I5-7400 il coute 220€.
Les trois premiers graphiques représentent les performances pour 3 jeux: Crysis3, AC Syndicate, Witcher 3. Ces jeux resemblent aux jeux auxquels je joue.
Les graphiques donnent des performances moyennes pour l’intel core I5-7400. Mais on le compare avec les meilleurs processeurs au marché !
Or, pour avoir un processeur beaucoup plus puissant comme au minimum l’intel Core I7 4770K qui coute 400€ c’est presque le double.
Le choix du magazine et la recommandation de monsieur Steiger me paraissent bons.

On voit sur ce deuxième graphique que mon processeur (le numéro 13), est l’un des plus performants dans sa catégorie de prix.

 

Le refroidissement

Dans les journaux il n’y avait pas de comparatifs pour le système de refroidissement. Je suis allé rechercher sur le site du journal et j’ai trouvé deux évaluations de ce système. Voici des morceaux des conclusions de ces deux évaluations. J’ai mis en gras ce qui est intéressant. Dans l’ensemble, cela me parait un bon choix pour mon PC.

Première revue
http://extreme.pcgameshardware.de/luftkuehlung/380936-review-cooler-master-hyper-612-v2.html
Der Cooler Master Hyper 612 V2 bringt einige neue innovative Ideen mit auf den Weg und kann diese auf Anhieb gut umsetzen. Das Montagesystem ist erfrischend einfach und simpel gestaltet und wusste gerade durch die großen Abmessungen des CPU-Kühlers zu überzeugen. Der Einbau erwies sich im Test als sehr anwenderfreundlich. Leider dringt der Lüfter im oberen Drehzahlbereich in wahrnehmbare Regionen vor und ist für einen möglichst leisen Betrieb daher nur bedingt empfehlenswert. Auch der Einsatz der Anti Vibe-Pads ist den mitgelieferten OEM Lüfter vorbehalten, so dass ein Einsatz letzterer gut überlegt sein sollte falls der Anwender sein Vertrauen lieber in einen anderen Lüfter setzen möchte. Außer bei der Kontaktfläche leistet sich der Hersteller bei der Verarbeitung keinerlei Schwächen. Bei der Kühlleistung nutzt der Hyper 612 V2 sein Potenzial voll aus und verpasst die Spitzenposition im Testfeld nur knapp. Unter den 120-mm-CPU-Kühlern konnte er sich dennoch souverän behaupten.
Für rund 38 Euro bringt Cooler Master eine gelungene zweite Revision des Hyper 612 auf den Markt der sich in der hart umkämpften oberen Mittelklasse im Kühlersegment mit einer guten Kühlleistung und einem leisen Betrieb im unteren Drehzahlbereich geschickt in Szene setzen kann.

Seconde revue
http://extreme.pcgameshardware.de/luftkuehlung/414562-review-cooler-master-hyper-612-ver-2-a.html
Der Cooler Master Hyper 612 Ver2 kann insgesamt überzeugen. Der Aufbau des Kühlers ist durchdacht und gewährleistet hohe Kompatibilität und die Verarbeitung ist hochwertig.
Die Kühlleistung liegt zwar nicht ganz auf dem Niveau der Mitbewerber in meinem Test, allerdings sind die Temperaturen trotzdem noch völlig ausreichend niedrig und als gut zu bewerten.
Etwas negativ fällt der mitgelieferte Lüfter auf. Dieser erzeugt hörbare Lagergeräusche und hat zudem keinen großen Drehzahlbereich. Alles in allem ist der Cooler Master Hyper 612 Ver2 durchaus ein empfehlenswertes Produkt, vor allem dann, wenn man bei anderen Kühlern Probleme mit hohem RAM und sockelnahen Bauteilen hat.

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