Intéressé par des cours d'informatique en ligne ?
Visitez mon nouveau site https://www.yesik.it !

La programmation est l'art de définir et codifier l'ensemble des opérations nécessaires pour qu'un ordinateur accomplisse une tâche.

Le programmeur peut intervenir pour développer un nouveau logiciel de A à Z, pour corriger des bugs ou ajouter des fonctionalités à un logiciel existant, pour écrire des modules additionnels (plug-ins) ou encore pour automatiser certaines opérations.

Vous le voyez, le panel des activités dans lesquelles la programmation intervient est large. Sans parler de la variété des domaines d'application: informatique scientifique, multimédia, informatique industrielle, bureautique, etc. Il n'est donc pas étonnant qu'au cours des années de nombreux langages de programmation aient vu le jour.

Dans cet article d'introduction, vous découvrirez plusieurs de ces langages et aurez l'occasion d'écrire pour chacun d'eux un programme très simple. Ce sera également pour vous l'occasion de vous familiariser avec l'environnement de développement Unix/Linux.

Avant de commencer

A qui s'adresse ce tutoriel

Cet article est destiné aux personnes souhaitant découvrir la programmation en environnement Unix/Linux. Aucune connaissance préalable en programmation n'est requise.

Par contre, une connaissance élémentaire de l'environnement utilisateur Unix/Linux est nécessaire: On suppose ici que vous savez ouvrir une session utilisateur et que vous êtes capable d'utiliser le shell pour des tâches élémentaires comme vous déplacer dans l'arborescence du système de fichier (commande cd), créer un dossier (commande mkdir), copier un fichier (commande cp) ou éditer un fichier texte.

Moyens

Pour réaliser ce tutoriel, vous devez disposer d'une machine Unix ou Linux correctement installée. Cet article a été écrit avec une distribution "Debian etch 4.0" en tête. Mais n'importe quelle autre distribution Unix/Linux devrait faire l'affaire.

Pour certaines sections, vous devrez disposer sur votre machine des logiciels suivants:

En cas de doute, vous pouvez vérifier auprès de votre administrateur si ces logiciels sont installés sur votre machine. Et le cas échéant procéder à leur installation - par exemple en utilisant le gestionnaire de paquet de votre distribution.

Introduction

Depuis le livre de Kerningham et Ritchie "The C programming language" il est d'usage d'introduire un langage de programmation par l'écriture d'un petit programme affichant le message "Hello world!".

L'intérêt pédagogique de ces programmes est discutable, mais il permet au moins de vérifier que l'infrastructure nécessaire (compilateur, interpréteur, logiciel hôte, bibliothèque d'entrées/sorties, etc.) à l'exécution du programme est correctement installée et configurée.

Cet article présente quelques programmes "Hello world" pour 5 langages: C, C++, PHP, JavaScript et Java.

Remarque:

Les programmes présentés ici sont un peu plus complexes que les "Hello world" traditionnels. Ceci nous permettra de voir un peu plus en détail les concepts et la syntaxe de ces langages.

Les langages que nous allons aborder ici font tous parti de la famille des langages impératifs et vous constaterez que leur syntaxe a comme un air de famille: logique puisque leurs créateurs se sont inspirés de la syntaxe du C.

Comme dans toute famille, cette apparente ressemblance cache aussi d'importantes différences. Certains sont interprétés, d'autres compilés. Certains sont génériques, d'autres sont plutôt dédiés à des usages spécifiques. Mais trêve de tergiversations, et intéressons nous pour commencer à l'"ancêtre" de la famille: le langage C.

C

Environnement de développement C

Sous Debian vous aurez besoin de gcc et libc6-dev pour ce qui suit. Si ces logiciels ne sont pas déjà sur votre machine utilisez le gestionnaire de paquet de votre distribution pour procéder à l'installation.

sh# apt-get install gcc
sh# apt-get install libc6-dev

Le langage C est un langage de programmation générique: on peut l'utiliser aussi bien pour écrire des applications graphiques, que des logiciels serveurs, ou tout autre sorte de programme. Néanmoins, le C est un langage de relativement bas niveau, c'est à dire qu'il permet un accès facile et efficace aux ressources de la machine sur laquelle il s'exécute. Le corollaire étant qu'écrire des application de haut niveau en C nécessite souvent beaucoup plus de code qu'avec des langages plus spécialisés - ou simplement plus évolués.

Aujourd'hui, le C est plutôt réservé à la programmation "système". C'est à dire à l'écriture de pilotes de périphériques, de systèmes d'exploitation. A titre d'exemple, la majeure partie du noyau Linux est écrite en C.

Code source

Vous voici donc à l'aube de l'écriture de votre premier programme C. Rassurez-vous: celui-ci est très simple. Créez donc le fichier greeting.c avec l'éditeur texte de votre choix:

#include <stdio.h>
 
void sayHello()
{
    printf("Hello world!\n");
}
 
int main()
{
    sayHello();
    return 0;
}

Vous devriez donc avoir dans le répertoire courant un nouveau fichier greeting.c qui contient le texte ci-dessus. Si vous n'êtes pas encore bien à l'aise en environnement Unix/Linux, vous pouvez facilement vérifier que c'est le cas avec les commandes suivantes:

sh$ ls
greeting.c
sh$ cat greeting.c
#include <stdio.h>

void sayHello()
{
    printf("Hello world!\n");
} 

int main()
{
    sayHello();
    return 0;
}

Si tout est OK, nous allons pouvoir passer à la phase suivante: la compilation.

Compilation

Le C est un langage compilé. C'est à dire que le code source que vous avez saisi à l'étape précédente ne peut pas être directement exécuté. Il doit auparavant subir une transformation pour le rendre intelligible par l'ordinateur: c'est la compilation.

Le compilateur que nous allons utiliser est gcc. Pour compiler votre programme utilisez la commande suivante:

sh$ gcc -std=c99 -Wall -Werror greeting.c -o greeting

Remarque:

La ligne de commande ci-dessus peut sembler un peu impressionnante au premier abord, à cause des différentes options fournies. En fait, pour compiler, on pourrait se contenter de la commande:

sh$ gcc greeting.c

Néanmoins, ces options ne sont pas là juste pour faire "bien". En voici l'explication:

  • -std=c99 Il existe différentes variantes du langage C. Ici, nous indiquons explicitement au compilateur que notre programme est écrit en "C99", c'est à dire en respectant la norme ANSI-C 99.
  • -Wall Le langage C peut être très permissif. Et le compilateur accepte parfois du code douteux. Cet option indique au compilateur de signaler tout code douteux dans le programme.
  • -Werror Cette option va de paire avec l'option précédente. -Wall indique de signaler le code douteux. -Werror indique qu'en plus la compilation doit échouer en cas de code douteux. En cas d'absence de cette option, le compilateur signalerait les problèmes, mais continuerait la compilation comme si de rien n'était.
  • -o greeting Enfin, cette option indique que le fichier compilé doit s'appeler greeting. Sans cette option, le nom par défaut du programme compilé est a.out.

Dans la pratique, il est très fortement recommandé d'utiliser systématiquement les options -Wall et -Werror afin de détecter un maximum d'erreurs au moment de la compilation.

Maintenant, vous devriez avoir dans votre dossier un nouveau fichier greeting:

sh$ ls -l
-rwxr-xr-x  1 sylvain sylvain 7685 jui  7 18:40 greeting*
-rw-r--r--  1 sylvain sylvain   79 jui  7 18:39 greeting.c

Exécution

Vous l'avez peut-être remarqué à l'étape précédente, le fichier compilé (greeting) est exécutable (drapeau x dans la liste des permissions). Cela signifie qu'il est possible de "lancer" directement ce programme à partir de l'invite du shell, exactement comme pour une commande Unix/Linux standard. Essayons:

sh$ ./greeting
Hello world!

Quel est ce ./ ?

Vous vous demandez peut-être quel est l'utilité du ./ devant le nom de notre programme compilé, alors que lorsque vous lancez des commandes Unix/Linux, vous n'ajoutez pas ce préfixe.

En fait, l'explication est très simple: lorsque vos donnez au shell le nom d'une commande (ou d'un programme) à exécuter, il va le rechercher dans un certain nombre de dossiers prédéfinis (c'est le path). Or, votre programme greeting ne se trouve dans aucun de ces emplacements. Il faut donc indiquer au shell le trouver. ./ signifie simplement "le répertoire courant". Ainsi, la commande:

sh$ greeting

Voudrait dire "exécute le programme greeting que tu trouveras dans un emplacement standard". Alors que:

sh$ ./greeting

Veut dire "exécute le programme greeting que tu trouveras dans le répertoire courant".

Explication

En C, un programme est découpé en fonctions. Dans ce programme, vous pouvez voir 3 fonctions: sayHello, printf et main. Deux de ces fonctions (sayHello et main) sont définies dans le programme. On remarque une définition de fonction car elle a toujours la même forme:

type_resultat nom_fonction_a_définir(...)
{
    ...
}

Des 3 fonctions présentes dans notre programme, deux sont appelées (printf et sayHello). On reconnaît un appel de fonction car il a toujours lieu dans le bloc entre accolades d'une autre fonction:

{
    ...
    nom_fonction_a_appeler(...);
    ...
}

Prenons un exemple:

void sayHello()
{
    printf("Hello world!\n");
}

Le fragment de code ci-dessus est la définition de la fonction sayHello. Et cette fonction appelle la fonction printf.

Une fois la différence entre un appel et une définition de fonction établie, la dernière chose à savoir pour comprendre notre programme est que lorsqu'une fonction est appelée, le corps de la fonction (le code entre accolades) est exécuté. Y compris les éventuels appels à d'autres fonctions, ce qui déclenche l'exécution du corps de ces fonctions, et ainsi de suite.

Bien entendu, ce mécanisme doit avoir un point de départ. En informatique c'est ce que l'on appelle le programme principal. En C, le programme principal est la fonction qui porte le nom de main.

Et voilà donc ce qui se passe quand vous exécutez la commande:

sh$ ./greeting
  1. Tout d'abord l'ordinateur exécute le corps du programme principal (main).
  2. Lors de cette exécution, il rencontre l'appel à la fonction sayHello. L'exécution du main est suspendue, puis l'ordinateur commence à exécuter la fonction sayHello.
  3. Lors de cette exécution, il rencontre l'appel à la fonction printf. L'exécution du sayHello est suspendue, puis l'ordinateur commence à exécuter la fonction printf.
  4. printf est une fonction standard du C. Elle n'est pas définie dans notre programme. Quand elle est exécutée, elle affiche un message sur la console.
  5. Quand printf se termine, l'exécution de sayHello reprend. Comme il n'y a pas d'autres instructions dans la définition de cette fonction, elle se termine aussi.
  6. L'exécution du main reprend, et se poursuit par l'instruction return 0. Celle ci signifie "terminer la fonction en cours - et renvoyer 0".
  7. Comme le main est terminé, le programme l'est aussi.

Pourquoi 0?

Vous l'avez remarqué, notre programme principal se termine par l'instruction

    return 0;

En C99, le programme principal doit en effet renvoyer un entier qui indique si le programme s'est terminé normalement. Et la valeur 0 est la valeur normalisée pour indiquer au shell "fin normale du programme".

Ici notre programme est très simple, et il n'y a aucune raison qu'une erreur puisse se produire à l'exécution. Ca n'est pas toujours le cas. Par exemple, un programme un peu plus complexe pourrait se terminer parce qu'il ne peut pas ouvrir un fichier ou accéder au réseau.

Prenons l'exemple de la commande ls:

sh$  ls
hello*    hello.c
sh$ echo $?
0

La commande ls affiche le contenu de votre répertoire et echo $? demande au shell d'afficher le code de retour de la dernière commande utilisée. ls s'est terminé sans problème, le code de retour est 0. Autrement dit, le programme principal de ls s'est terminé par un return 0.

sh$ ls xxxxxxxx
ls: xxxxxxxx: No such file or directory
sh$ echo $?
1

Maintenant, il y a eu une erreur lors de la commande ls puisque je n'ai pas de fichier xxxxxxxx dans mon répertoire courant. On peut voir que le code de retour de la commande est dans ce cas 1. Autrement dit, le programme principal de ls s'est terminé par un return 1.

A vous de jouer

C++

Installation

Sous Debian vous aurez besoin de g++ pour ce qui suit. Si ces logiciels ne sont pas déjà sur votre machine utilisez le gestionnaire de paquet de votre distribution pour procéder à l'installation.

sh# apt-get install g++

Le C++ est une évolution du C qui introduit le modèle de programmation orientée objets. Sans rentrer dans les détails pour l'instant, en C++, le programmeur ne définit plus des fonctions mais des classes. Et l'exécution d'un programme consiste non plus à appeler des fonctions, mais à créer des objets à partir de ces classes, et à leur envoyer des messages.

code source

Saisissez le programme suivant dans le fichier greeting.cc:

#include <iostream>
 
class Greeting
{
        public:
        void    sayHello()
        {
                std::cout << "Hello world!" << std::endl;
        }
};
 
int main()
{
        Greeting   prog;
        prog.sayHello();
 
        return 0;
}

Compilation

Comme le C, le C++ est compilé:

sh$ g++ -Wall -Werror greeting.cc -o greeting

Tout comme pour le programme C, le programme compilé peut être directement exécuté à partir du shell:

sh$ ./greeting
Hello world!

Explication

A nouveau comme en C, un programme C++ commence toujours par l'exécution du programme principal (le main) et se termine quand le main se termine.

Mais ici, au lieu d'appeler directement une fonction pour afficher son message, le programme fait des choses un peu plus complexes.

  1. Tout d'abord il crée un objet appelé ici prog dont la classe est Greeting. Pour cette introduction, il vous suffit de considérer la classe comme une "collection" de services qui peuvent être exécutés. L'objet permettant d'accéder à ces services. Dans le vocabulaire de la programmation orientée objets, ces services sont mis en œuvre par des méthodes. Ici, notre classe (Greeting) ne définit qu'une seule méthode: sayHello.
  2. Et ensuite, le programme fait appel à la méthode sayHello:
prog.run();

C'est lors de l'exécution de la méthode que le message est affiché par l'instruction:

std::cout << "Hello world!" << std::endl;

A vous de jouer

Java

Environnement de développement Sun Java6

Sous Debian vous aurez besoin de sun-java6-jdk pour ce qui suit. Si ces logiciels ne sont pas déjà sur votre machine utilisez le gestionnaire de paquet de votre distribution pour procéder à l'installation.

sh# apt-get install sun-java6-jdk

Tout comme le C et le C++, le langage Java est compilé. Par contre, contrairement à ces langages, un programme Java ne peut pas être directement exécuté par la machine hôte. Il doit être exécuté par un logiciel spécial appelé machine virtuelle.

Code source

Ecrivez le programme Greeting.java

public class Greeting {
    public void sayHello() {
        System.out.println("Hello world!");
    }
 
    public static void main(String[] argv) {
        Greeting   prog = new Greeting();
        prog.sayHello();
    }
}

Attention aux majuscules!

Le fichier source doit s'appeler Greeting.java avec un grand "G". Le fichier doit porter le même nom que la classe qu'il contient, suivi de l'extension .java.

Compilation

Compilons maintenant notre programme:

sh$ javac Greeting.java

Si le compilateur ne donne aucun message d'erreur (en fait si le compilateur ne signale rien du tout), c'est que la compilation s'est bien passée. Vous pouvez vérifier en examinant le contenu du répertoire courant:

sh$ ls -l
-rw-r--r--  1 sylvain sylvain  417 jui  8 00:03 Greeting.class
-rw-r--r--  1 sylvain sylvain  114 jui  8 00:03 Greeting.java

Vous pouvez remarquer que contrairement à ce qui se passait en C, le programme compilé n'est pas exécutable (il n'y a pas de drapeau x dans les permissions). Ceci confirme que le programme Java compilé ne peut pas être exécuté directement, mais doit l'être par l'intermédiaire de la machine virtuelle Java.

L'exécution du programme se fait en invoquant la machine virtuelle Java et en lui donnant le nom de la classe (pas le nom du fichier!) contenant le programme principal (main):

sh$ java Greeting
Hello world!

Explication

Tout comme le C et le C++, un programme Java possède un programme principal appelé main. Mais ici, le main est défini à l'intérieur d'une classe.

Tout comme un programme C++, un programme Java repose sur la création d'objets, et l'envoie de message à ces objets pour exécuter des actions. Comme au lancement du programme aucun objet de la classe Greeting n'existe encore, il faut indiquer au compilateur que la méthode main peut s'exécuter même sans objet: c'est le rôle du mot-clé static.

Mis à part ceci, l'exécution se déroule comme pour le programme C++ équivalent.

A vous de jouer

PHP

Environnement Apache2/PHP5

Sous Debian vous aurez besoin de apache2 apache2-mpm-prefork et php5 pour ce qui suit. Si ces logiciels ne sont pas déjà sur votre machine utilisez le gestionnaire de paquet de votre distribution pour procéder à l'installation.

sh# apt-get install apache2 apache2-mpm-prefork
sh# apt-get install php5

PHP, pour "PHP, Hypertext Processor", est un langage de programmation destiné à écrire des programmes exécutés par des serveur Web et dont le résultat est transmis au navigateur de l'utilisateur (le client). Dans le jargon informatique, on dit que PHP est un langage interprété côté serveur (server side).

Pour pouvoir exécuter un programme PHP, vous devez donc disposer d'un serveur Web capable d'interpréter des fichiers PHP. Si "apache httpd" est installé sur votre machine, il y a de grandes chances que ce soit le cas.

Code source

Commencez tout d'abord par créer le fichier greeting.php:

<?php
class Greeting {
        public function run() {
                print("Hello world!\n");
        }
}
 
 
header("content-type: text/plain");
$prog = new Greeting;
$prog->run();
?>

Pour exécuter ce programme il vous faut le copier dans le répertoire www de votre serveur web. Sur un système Linux - et si apache httpd a été installé par le gestionnaire de paquet - cela devrait être le répertoire /var/www:

sh$ cp greeting.php /var/www/

Inutile d'être root!

Ne prenez pas la mauvaise habitude de travailler sous l'identité root: Pour copier des fichiers dans le répertoire www un compte utilisateur devrait suffire. Par contre, ce que vous pouvez faire en tant que super-utilisateur, c'est de changer les permissions afin que ce soit effectivement possible...

Exécution par le serveur Web

Pour exécuter votre programme, il vous faut utiliser un client http pour vous connecter à l'adresse http://localhost/greeting.php. Ce client peut être un client graphique comme Firefox, ou un client en mode texte comme curl:

sh$ curl http://localhost/greeting.php
Hello world!

A vous de jouer

JavaScript

JavaScript est un langage interprété. Contrairement au C ou Java qui sont destinés à écrire des programmes autonomes, JavaScript est destiné à écrire des programmes fonctionnant dans le contexte d'une application déjà existante. En jargon informatique, on dit d'une telle application qu'elle est scriptable, d'où le nom JavaScript.

Java vs JavaScript

Contrairement à ce que laisse entendre leurs noms, Java et JavaScript n'ont quasiment rien en commun sinon quelques éléments de syntaxe hérités de leur ancêtre commun le C, et le fait d'être nés tout deux à la même époque.

Cette époque était celle de l'explosion du Web, et les sociétés de la "nouvelle économie" jouaient volontiers de coudes pour essayer de tirer la couverture à eux - sans forcément prendre gare aux conséquences sur les utilisateurs de leurs technologies. Ainsi, la "guerre des navigateurs" entre Netscape Navigator et Internet Explorer est resté dans la mémoire des webmasters de l'époque pour les multiples incompatibilités entres navigateurs (dont les séquelles perdurent encore à l'heure actuelle).

Moins connue du grand public, la guerre des "langages du web" a également eu lieu, entre Sun et Netscape. Ainsi, il est communément admis que le nom JavaScript a été choisi par Netscape pour entretenir la confusion avec Java de Sun, considéré alors comme un langage concurrent. Aujourd'hui les deux langages ont survécu, mais ne sont plus concurrents puisque destinés à des applications différentes. Par contre, la confusion perdure, en particulier chez les débutants et les amateurs...

Non seulement un programme JavaScript ne peut pas s'exécuter tout seul (il nécessite un interpréteur), mais en plus cet interpréteur doit être embarqué dans une application. Où allez vous trouver ça? Et bien c'est aussi une force de JavaScript: l'immense majorité des ordinateurs du monde disposent d'au moins un interpréteur JavaScript embarqué sous la forme d'un navigateur Web (Firefox, Safari, Camino, Opera, IE, ...).

Code source

Pour votre premier programme JavaScript, vous allez devoir créer non pas un mais deux fichiers. Le premier n'a quasiment rien à voir avec JavaScript à proprement parlé: c'est juste un document HTML à charger dans le navigateur (l'application hôte). C'est ce document qui va demander au navigateur de charger - et exécuter - le programme JavaScript.

Voici le code source du fichier greeting.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
             xml:lang="fr"
             lang="fr"
             dir="ltr">
<head>
        <title>JavaScript demo</title>
</head>
<body>
        <script type= "text/javascript" src="greeting.js">
        </script>
</body>
</html>

Comme vous l'avez remarqué (puisque vous ne vous contentez pas de faire du copier-coller sans même regarder ce que vous copiez), ce fichier contient un élément script. Celui-ci précise le langage dans lequel le script à exécuter va être écrit (text/javascript) et le nom du fichier de script à exécuter (greeting.js). Reste à écrire ce fichier.

Et maintenant le fichier greeting.js:

function Greeting() {
        var that = {};
 
        that.sayHello = function(){
                document.write("Hello world!");
        }
 
        return that;
}
 
 
var prog = Greeting();
prog.sayHello();

Les deux fichiers doivent être dans le même répertoire. Les commandes suivantes vont me permettre de vérifier dans quel répertoire je suis actuellement (pwd) et que les fichiers greeting.html et greeting.js sont bien présents (commande ls):

sh$ pwd
/home/sylvain/cours/greeting
sh$ ls -l greeting.*
-rw-r--r--  1 sylvain sylvain 351 jui  9 11:47 greeting.html
-rw-r--r--  1 sylvain sylvain  32 jui  9 11:45 greeting.js

Tout est en place. Pour exécuter le programme JavaScript, il faut maintenant charger le document greeting.html dans un navigateur. Et si ce navigateur supporte JavaScript, il chargera puis exécutera le programme désigné dans l'élément script.

Exécuter le programme

Pour charger le fichier, le plus simple est d'indiquer le nom et le chemin de votre fichier dans la barre d'adresse de votre navigateur. Dans mon cas, il s'agit de l'URL [[1]].

file:// vs http://

Vous êtes sans doute plus habitué aux URLs qui commencent par http://.... Mais une URL est juste un moyen universel de localiser une ressource (généralement un fichier). Le premier "mot" de l'URL indique comment accéder à la ressource. Ainsi, http: signifie que la ressource doit être chargée via un serveur web (en réalité un serveur http). Par opposition, file: est un autre protocole qui signifie que le fichier est disponible sur la machine locale.

Tous les navigateurs savent charger des fichiers distants (protocole http) aussi bien que des fichiers locaux (protocole file).

Explication

Comme d'autres langages que nous avons déjà vu, JavaScript est orienté objets. Par contre, contrairement à ces autres langages, JavaScript n'inclut pas la notion de classe.

En C++ ou en Java, la classe est une sorte de plan qui définit ce que l'on peut faire avec un objet. Ces langages utilisent les informations données dans la définition de la classe pour savoir comment créer les objets - et quelles méthodes peuvent être appelées dessus. En JavaScript les choses sont différentes: ici, une fonction (Greeting) sert pour fabriquer un objet. Et en fait, elle agit très simplement en créant un objet vide (that = {}), puis en lui ajoutant une méthode sayHello. Cette fonction qui construit un objet est appelée constructeur.

Une fois l'objet créé, l'appel de méthode se fait comme dans d'autres langages que nous avons vu. Vous remarquerez aussi qu'il n'y a pas non plus de programme principal, et que les instructions à exécuter sont simplement données les unes à la suite des autres:

  1. D'abord définir la fonction Greeting
  2. ensuite exécuter cette fonction pour obtenir l'objet prog
  3. enfin appeler la méthode sayHello sur cet objet.

A vous de jouer

Ce que vous avez vu

Malgré un air de famille certain, il existe de réelles différences entres les différents langages informatiques que vous avez découvert: Et ces différences portent non seulement sur la syntaxe, mais surtout sur les concepts mis en œuvre dans ces langages:

Vous avez aussi remarqué qu'un même programme (du point de vue de l'utilisateur) peut être écrit de différentes manières. C'est le style. Et comme c'est le cas en littérature, il existe en informatique du bon et du mauvais style. Inutile de vous préciser que l'ordinateur ne peut pas vous conseiller en ce domaine: c'est à vous de faire l'effort pour écrire des programmes les plus clairs possibles - et utilisant au mieux les possibilités du langages que vous mettez en œuvre.

Enfin, vous avez aussi appris que ces différents langages avaient des domaines d'application spécifiques. Vous comprenez donc que pour la réussite d'un projet, il est important de savoir choisir un langage adapté. Et par ailleurs, que lorsque vous serez amené à travailler plus particulièrement avec un langage, il sera nécessaire d'approfondir les spécificités de celui-ci. Heureusement internet fourmille de site près à vous apprendre tout ce qu'il faut sur les différents langages. Malheureusement, tous ces sites ne donnent pas forcément des conseils judicieux ou de qualité, ou encore n'encourage pas nécessairement aux bonnes pratiques.

D'un point de vue pratique, après cet article, vous savez:

Evaluez vos connaissances

Questions de cours

  1. (vrai/faux) JavaScript est un langage compilé;
  2. (vrai/faux) Java est un langage compilé;
  3. (vrai/faux) C est un langage interprété;
  4. (vrai/faux) PHP est un langage interprété;
  5. Des langages présentés dans cet introduction, lequel serait à priori le plus adapté:
    • Pour écrire un pilote d'impression
    • Pour développer une application Web
    • Pour développer une application de comptabilité
    • Pour automatiser certaines tâches dans un navigateur web
  6. A quoi sert la commande cat?
  7. A quoi sert la commande pwd?

Observation

Sans essayer de l'exécuter, considérez le programme suivant:

#include <iostream>
 
class Hello
{
        public:
        void    sayHello()
        {
                std::cout << "Hello" << std::endl;
        }
 
        void    sayWelcome()
        {
                std::cout << "Welcome" << std::endl;
        }
 
        void    sayGoodBye()
        {
                std::cout << "Good bye" << std::endl;
        }
};
 
int main()
{
        Hello   prog;
 
        prog.sayWelcome();
        prog.sayHello();
 
        return 0;
}
  1. De quel langage s'agit-il?
  2. Que va afficher ce programme?
  3. Modifiez ce programme pour afficher les messages "Hello", "Welcome" et "Good bye" dans cet ordre. Vérifiez le fonctionnement de votre programme.
  4. Ecrivez - et testez - un programme équivalent à celui de la question précédente dans un des autres langages orientés objets vu dans ce tutoriel.

A vous de jouer

Sachant que dans tous les langages présentés dans ce tutoriel, il est possible de faire les opérations arithmétiques de base suivantes:

Ecrivez en C++, Java, PHP et JavaScript un programme qui affiche les 5 premières puissances de 7 (sans avoir à en calculer aucune vous-même!).