Hello World : le même message, 40 façons de le dire

Il y a un petit rituel que tout développeur, débutant ou chevronné, connaît par cœur : afficher « Hello, World! » à l’écran. C’est le premier programme qu’on écrit dans un nouveau langage, le « salut » qu’on adresse à la machine pour vérifier que tout fonctionne. La tradition vient du livre culte de Brian Kernighan et Dennis Ritchie, The C Programming Language (1978), et depuis, elle a traversé les décennies et tous les langages, du plus grand-père au plus récent.

J’ai rassemblé ici une quarantaine de langages, des incontournables aux plus exotiques. Certains font tenir le message en une ligne. D’autres réclament un rituel complet avec déclarations, imports et fonctions principales. C’est ce petit jeu de comparaison qui rend l’exercice passionnant : en regardant ce tableau, vous tenez entre les mains la philosophie de chaque langage.

Le tableau

Langage Code pour afficher « Hello, World! »
Python print("Hello, World!")
JavaScript console.log("Hello, World!");
TypeScript console.log("Hello, World!");
PHP <?php echo "Hello, World!"; ?>
Ruby puts "Hello, World!"
Perl print "Hello, World!n";
Lua print("Hello, World!")
R print("Hello, World!")
MATLAB disp('Hello, World!')
Julia println("Hello, World!")
Bash echo "Hello, World!"
PowerShell Write-Host "Hello, World!"
Tcl puts "Hello, World!"
Groovy println "Hello, World!"
Swift print("Hello, World!")
Kotlin fun main() { println("Hello, World!") }
Dart void main() { print('Hello, World!'); }
Go package main<br>import "fmt"<br>func main() { fmt.Println("Hello, World!") }
Rust fn main() { println!("Hello, World!"); }
Nim echo "Hello, World!"
Crystal puts "Hello, World!"
Elixir IO.puts "Hello, World!"
Erlang io:format("Hello, World!~n").
Haskell main = putStrLn "Hello, World!"
OCaml print_endline "Hello, World!"
F# printfn "Hello, World!"
Scala object Hello extends App { println("Hello, World!") }
Clojure (println "Hello, World!")
Common Lisp (format t "Hello, World!")
Scheme (display "Hello, World!")
C #include <stdio.h><br>int main() { printf("Hello, World!n"); return 0; }
C++ #include <iostream><br>int main() { std::cout << "Hello, World!" << std::endl; return 0; }
C# using System;<br>class Program { static void Main() { Console.WriteLine("Hello, World!"); } }
Java public class HelloWorld {<br>&nbsp;&nbsp;public static void main(String[] args) {<br>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Hello, World!");<br>&nbsp;&nbsp;}<br>}
Objective-C #import <Foundation/Foundation.h><br>int main() { NSLog(@"Hello, World!"); return 0; }
VB.NET Module HelloWorld<br>&nbsp;&nbsp;Sub Main()<br>&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine("Hello, World!")<br>&nbsp;&nbsp;End Sub<br>End Module
Pascal program HelloWorld;<br>begin<br>&nbsp;&nbsp;writeln('Hello, World!');<br>end.
Fortran program hello<br>&nbsp;&nbsp;print *, "Hello, World!"<br>end program hello
COBOL IDENTIFICATION DIVISION.<br>PROGRAM-ID. HELLO.<br>PROCEDURE DIVISION.<br>&nbsp;&nbsp;DISPLAY "Hello, World!".<br>&nbsp;&nbsp;STOP RUN.
BASIC 10 PRINT "Hello, World!"<br>20 END
Assembleur (x86 NASM, Linux) section .data<br>&nbsp;&nbsp;msg db "Hello, World!",0xa<br>section .text<br>&nbsp;&nbsp;global _start<br>_start:<br>&nbsp;&nbsp;mov eax,4<br>&nbsp;&nbsp;mov ebx,1<br>&nbsp;&nbsp;mov ecx,msg<br>&nbsp;&nbsp;mov edx,14<br>&nbsp;&nbsp;int 0x80<br>&nbsp;&nbsp;mov eax,1<br>&nbsp;&nbsp;int 0x80
Brainfuck ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

Ce que ce tableau raconte

Regardez un instant : en Python ou Ruby, une seule ligne suffit. Le langage se met à votre service, sans cérémonie. En Java ou en COBOL, il faut déclarer une classe, une division, tout un décor avant même de dire bonjour. Ce n’est pas forcément un défaut — c’est une philosophie. Les langages verbeux imposent une structure qui, sur de gros projets, peut vraiment aider. Les langages minimalistes misent sur l’agilité et la rapidité.

Et puis il y a les curiosités. Le Brainfuck, langage volontairement torturé, demande une centaine de caractères ésotériques. L’assembleur descend au niveau le plus bas, parle directement au processeur, et transforme un simple salut en une chorégraphie de registres et d’interruptions système.

Tu en veux plus ?

Si vous débutez en programmation, un bon exercice consiste à lancer quelques-uns de ces « Hello, World! » soi-même. C’est gratuit, rapide, et ça permet de goûter à plusieurs langages sans s’engager. Des environnements comme Replit, OnlineGDB ou Paiza.io permettent d’exécuter la plupart de ces codes directement dans le navigateur.

Et pour la culture : le site Rosetta Code propose le même programme écrit dans des centaines de langages. Si vous aimez ce petit jeu comparatif, vous allez vous régaler.

Stéphane
Stéphane
Articles: 39

Un commentaire

Les commentaires sont fermés.