Hello World

From Citizendium
Jump to navigation Jump to search
This article is a stub and thus not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
Code [?]
 
This editable Main Article is under development and subject to a disclaimer.

A Hello World computer program, as first introduced in the book The C Programming Language, is a very short program that typically just prints a word or two of output to a console. Such a program is often one of the first programs that a programmer writes when learning a programming language, as it provides a cursory introduction to the language's syntax and output.

Hello World as a first program

In teaching a new language, there arises a need for a minimal, 'first phrase' to introduce students to the new language. In natural language, this is often "Hello, my name is John" or a variation thereof. The equivalent in computing is the program that says, prints, or displays "Hello, World!" or something else to that effect. Such programs, regardless of the actual wording, are called "Hello World" programs. The program is usually not meant to display the features or design of a language, since printing simple strings is seldom the main focus of a language. Instead, the example aims to give some 'feel' for the language, its basic syntax and the minimal structure of a program. Despite the apparent simpleness of the example, such programs vary greatly in their design from language to language.

Kernighan & Ritchie's Hello World

Brian Kernighan and Dennis Ritchie's book The C Programming Language was the first book to use Hello World. The example, essentially as it appeared in the later, ANSI C standard-conformant, edition of the book was as follows:

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Hello, World!\n");
    return 0;
}

Limitations of Hello World examples

In some languages, it is not a particularly useful way to demonstrate the key benefit of using that particular language. Functional programming languages like Haskell, OCaml, F# and the Lisp family often substitute a mathematical problem like calculation of factorials in place of Hello World examples.

Consider a language like Clojure, a Lisp-derived dynamic language on the Java platform. Learning how to write Hello World is of less interest to a Clojure programmer than learning how to do a task that is not trivially easy to accomplish in Java, the language many Clojure programmers are initially familiar with.

Similarly, languages designed primarily for running concurrent, high-performance services (like Erlang, Scala etc.) are not best served by showing Hello World examples, and so many prefer to show how to construct concurrently operating, multi-threaded services like HTTP servers.

Browser-based JavaScript is another example of a language not best served by Hello World examples: these are often implemented using document.write, which is not considered a good technique anymore.


External links

The Hello World Collection in more than 300 programming languages