Hello world

programme informatique

« Hello world » (traduit littéralement en français par « Bonjour le monde ») sont les mots traditionnellement écrits par un programme informatique simple dont le but est de faire la démonstration rapide de son exécution sans erreur.

Un carré contient ce qui semble être des pixels multicolores et en son centre une croix de même.
Programme « Hello World » en Piet.

Selon leur langage de programmation, certains des programmes imprimant ces mots sont étonnamment complexes, particulièrement dans un contexte d’interface graphique. D’autres sont très simples, particulièrement ceux qui utilisent un interpréteur de ligne de commande pour afficher le résultat. Dans plusieurs systèmes embarqués, le texte peut être envoyé sur une ou deux lignes d’un afficheur LCD (ou dans d’autres systèmes, une simple DEL peut se substituer à un hello world).

Histoire

modifier

Alors que les petits programmes de test existaient depuis le début de la programmation, la tradition d’utiliser hello world comme message de test a été initiée par le livre The C Programming Language de Brian Kernighan et Dennis Ritchie, publié en 1978.

Le premier exemple de ce livre affiche hello, world (sans majuscule ni point final, mais avec une virgule et un retour à la ligne terminal). Le premier hello world dont Kernighan et Ritchie se souviennent provient d’un manuel d’apprentissage du langage B écrit par Kernighan[1]. Le PDP-11 16 bits — l’un des ordinateurs les plus populaires de l’époque — contribua à la diffusion de l’expression, les usagers se procurant l'ouvrage The C Programming Language pour apprendre à utiliser la machine[2]. Dans une interview à l'édition indienne du magazine Forbes, Brian Kernighan explique que cette phrase provient d'un dessin animé qu'il avait vu, où un poussin sortait de son œuf en disant « Hello, World![3] ».

Au XXIe siècle, les programmes affichent plus souvent Hello, world! comme une phrase, avec majuscule, virgule et point d’exclamation final.

Utilité

modifier

De manière plus large, c'est le programme le plus simple qu'on essaie de faire fonctionner lorsqu'on apprend un nouveau langage de programmation (par exemple à but pédagogique), mais aussi lorsqu'on met au point ou qu'on met en œuvre des composants logiciels dans une situation donnée.

Il peut par exemple permettre au développeur spécialiste en langages de programmation de tester le compilateur ou l'interpréteur du langage dans lequel il est écrit, mais aussi à tout développeur de tester l'intégration de différentes techniques logicielles dans un contexte particulier.

Par exemple l'exécution réussie du programme hello world en JavaScript à l'aide de V8Js au sein d'un programme PHP permettant l'exécution de code JavaScript Server-side[4] donnera au développeur la preuve qu'il a mis en œuvre avec succès l'intégration de toute cette pile de techniques dans son contexte spécifique (par exemple versions spécifiques de Serveur web, de PHP, de navigateur, ou de tout autre composant logiciel impliqué dans la transaction complète).

Programmes Hello world!

modifier

GNU Hello

modifier

La mise en œuvre GNU est sensiblement plus complexe que l’algorithme de base décrit par Kernighan et Ritchie. Elle fait ici figure d’exemple canonique pour l’empaquetage d’un programme GNU[5], et va jusqu’à servir de modèle aux normes de codage GNU ainsi qu’aux pratiques en vigueur au sein du projet[6].

Ce programme écrit en C est maintenu depuis 1992. La version 2.12.1 a été publiée le [7].

Notes et références

modifier
  1. [1].
  2. « Pourquoi Hello World ? », Growth Hacking Mindset,‎ (lire en ligne, consulté le )
  3. [2]
  4. « v8js exécution d'un script simple ».
  5. Richard Stallman, Sam Williams et Christophe Masutti, Richard Stallman et la révolution du logiciel libre, Paris, Eyrolles, coll. « Accès Libre et Framabook », , p. 191
  6. (en) « Hello - GNU Project - Free Software Foundation », sur gnu.org, (consulté le ).

    « Il s’agit du fameux programme qui affiche Hello world : cinq lignes de C, empaquetées comme s’il s’agissait d’une distribution GNU. Par conséquent, il contient toute l’information relative à Texinfo et à Configure. Et tout le reste des rouages d’ingénierie logicielle que le projet GNU a inventés pour permettre le portage aisé vers les autres environnements. C’est un travail extrêmement important, et ça n’affecte pas seulement les logiciels de Stallman, mais aussi tous les autres logiciels du projet GNU. »

  7. (en) « GNU Hello », sur GNU Savannah, .