Hello World: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Alex Bravo
No edit summary
imported>Meg Taylor
No edit summary
(34 intermediate revisions by 16 users not shown)
Line 1: Line 1:
The '''Hello World''' program is probably the most widely recreated piece of software ever as it is used by many programming languages books and articles as a cursory introduction into a language's [[syntax]]. It was introduced in the book ''The C Programming Language'' and is often one of the first programs that a [[programmer]] writes when learning a [[programming language]], as it introduces the [[programmer]] to the constructs that he/she will be dealing with in the particular language at hand, familiarizing him with [[variable (programming)|variables]] and output.
{{subpages}}


== See also ==
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.


[[99 Bottles of Beer]]
== 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 [[factorial]]s 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.
 
 
<!-- == See also == -->


== External links==
== External links==


[http://www.roesler-ac.de/wolfram/hello.htm The Hello World Collection] (more than 300 programming languages)
[http://www.roesler-ac.de/wolfram/hello.htm The Hello World Collection] in more than 300 programming languages
 
[[Category:CZ Live]]
[[Category:Computers Workgroup]]

Revision as of 10:02, 16 July 2013

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