
A "Hello, world!" program has become the traditional first program that many people learn. In general, it is simple enough so that people who have no experience with computer programming can easily understand it, especially with the guidance of a teacher or a written guide. Using this simple program as a basis,
computer science principles or elements of a specific programming language can be explained to novice programmers. Experienced programmers learning new languages can also gain a lot of information about a given language's syntax and structure from a "Hello, world!" program.
In addition, "Hello, world!" can be a useful
sanity test to make sure that a language's
compiler,
development environment, and
run-time environment are correctly installed. Configuring a complete programming
toolchain from scratch to the point where even trivial programs can be compiled and run can involve substantial amounts of work. For this reason, a simple program is used first when testing a new tool chain.
"Hello, world!" is also used by computer hackers as a
proof of concept that arbitrary code can be executed through an
exploit where the system designers did not intend code to be executed—for example, on Sony's
PlayStation Portable. This is the first step in using homemade content ("
home brew") on such a device.
History
While small test programs existed since the development of programmable
computers, the tradition of using the phrase "Hello, world!" as a test message was influenced by an example program in the seminal book
The C Programming Language. The example program from that book prints "hello, world" (without capital letters or exclamation mark), and was inherited from a 1974
Bell Laboratories internal memorandum by
Brian Kernighan, Programming in C: A Tutorial, which contains the first known version:
1 main( ) {
2 printf("hello, world");
3 }
The C version was adapted from Kernighan's 1972 A Tutorial Introduction to the Language
B, where the first known version of the program is found in an example used to illustrate external variables:
3 putchar(a); putchar(b); putchar(c); putchar('!*n');
4 }
5
6 a 'hell';
7 b 'o, w';
8 c 'orld';
The program prints "hello, world!" on the terminal, including a
newline character. The phrase is divided into multiple variables because in B, a character constant is limited to four
ASCII characters. The previous example in the tutorial printed "hi!" on the terminal, so the phrase "hello, world!" was originally introduced as a slightly longer greeting that required several character constants for its expression.
It is also claimed that "hello, world" originated instead with
BCPL (1967). This claim is supported by the archived notes of the inventors of BCPL, Prof. Brian Kernighan at Princeton and Martin Richards at Cambridge.[
unreliable source?]
For modern languages, the hello world program can vary in sophistication. For example, the
Go programming language introduced a multilingual hello world program,
Sun demonstrated a
Java hello world based on
scalable vector graphics,and the
XL programming language features a spinning Earth hello world using 3D graphics.While some languages such as
Python or
Ruby may need only a single statement to print "hello world", a low-level
assembly language may require dozens of commands.