"Hello, World!" program
A "Hello, World!" program is generally a simple
History
While small test programs have 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 1978 book The C Programming Language,[2] with likely earlier use in BCPL. The example program from the book prints "hello, world", and was inherited from a 1974 Bell Laboratories internal memorandum by Brian Kernighan, Programming in C: A Tutorial:[3]
main( ) {
printf("hello, world");
}
In the above example, the main( )
The C-language version was preceded by Kernighan's own 1972 A Tutorial Introduction to the Language B,[4] where the first known version of the program is found in an example used to illustrate external variables:
main( ) {
extern a, b, c;
putchar(a); putchar(b); putchar(c); putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';
The program above 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, and the phrase hello, world! was introduced as a slightly longer greeting that required several character constants for its expression.
The Jargon File reports that "hello, world" instead originated in 1967 with the language BCPL.[5] Outside computing, use of the exact phrase began over a decade prior; it was the catchphrase of New York radio disc jockey William B. Williams beginning in the 1950s.[6]
Variations
"Hello, World!" programs vary in complexity between different languages. In some languages, particularly
The phrase "Hello, World!" has seen various deviations in casing and punctuation, such as the capitalization of the leading H and W, and the presence of the comma or exclamation mark. Some devices limit the format to specific variations, such as all-capitalized versions on systems that support only capital letters, while some
Some languages change the functionality of the "Hello, World!" program while maintaining the spirit of demonstrating a simple example.
The
Variations of the "Hello, World!" program that produce a
Time to Hello World
"Time to hello world" (TTHW) is the time it takes to author a "Hello, World!" program in a given programming language. This is one measure of a programming language's ease of use; since the program is meant as an introduction for people unfamiliar with the language, a more complex "Hello, World!" program may indicate that the programming language is less approachable.
Wikipedia articles containing "Hello, World!" programs
- ABAP
- Ada
- Aldor
- ALGOL
- ALGOL 60
- AmbientTalk
- Amiga E
- Apache Click
- Apache Jelly
- Apache Wicket
- AppJar
- AppleScript
- Applesoft BASIC
- Arc
- Atari Assembler Editor
- AutoLISP
- AviSynth
- AWK
- BASIC
- Basic Assembly Language
- Ballerina
- BCPL
- Beatnik
- Befunge
- BETA
- Blitz BASIC
- Brainfuck
- C
- Caché ObjectScript
- Cairo
- C/AL
- Carbon
- Casio BASIC
- Charm
- CherryPy
- Clean
- Clipper
- C++
- C#
- COBOL
- Cobra
- Common Intermediate Language
- Crystal
- Cython
- Dart
- Darwin
- Data General Nova
- Deno
- DOORS Extension Language
- Easy Programming Language
- eC
- Эль-76
- Elixir
- Enyo
- Extensible Embeddable Language
- எழில்
- F#
- FastAPI
- Fjölnir
- Flask
- Flix
- Forth
- FORTRAN
- Fortress
- FreeBASIC
- Go
- Godot
- Google Gadgets
- GNU Smalltalk
- Harbour
- Haskell
- Hollywood
- HTML
- HTML Application
- IBM Open Class
- Idris
- INTERCAL
- Internet Foundation Classes
- Io
- IRAF
- J
- JADE
- Jam.py
- Java
- JavaFX Script
- JavaScript
- JFace
- JUDO
- K
- KERNAL
- Kivy
- K-Meleon
- LibreLogo
- Lisp
- LiveScript
- LOLCODE
- Lua
- MAC/65
- MACRO-10
- MACRO-11
- MAD
- Magik
- Malbolge
- MATLAB
- Mercury
- MicroPython
- Microsoft Small Basic
- mIRC scripting language
- MMIX
- Mockito
- Modula-3
- Mojo
- Monad
- MUMPS
- MXML
- Nemerle
- Netwide Assembler
- Newspeak
- Nim
- NWScript
- OmniMark
- Opa
- OpenEdge Advanced Business Language
- Open Programming Language
- Oriel
- ParaSail
- Parrot assembly language
- Parrot intermediate representation
- Pascal
- PCASTL
- PDP-8
- Perl
- Perl module
- PHP
- Plack
- Plua
- Plus
- PostScript
- PowerBASIC
- Prolog
- PureBasic
- Pure Data
- PureScript
- PyGTK
- Python
- Q
- QB64
- QuickBASIC
- Rack
- Racket
- Raku
- React
- React Native
- Rebol
- Red
- Refal
- RGtk2
- Ring
- Robot Framework
- Ruby
- Rust
- SARL
- Scala
- Scilab
- Scratch
- Sed
- Self
- Shakespeare
- Simula
- SmallBASIC
- Smalltalk
- Standard ML
- Standard Widget Toolkit
- Swift
- TeX
- TI-990
- TI‑BASIC
- Tornado
- Turbo Pascal
- Turing
- UCBLogo
- UEFI
- Umple
- Unit.js
- Unlambda
- V
- Vala
- Visual Basic
- Visual IRC
- web2py
- Web Server Gateway Interface
- Whitespace
- Wt
- XBLite
- XHarbour
- Xojo
- XULJet
- Zig
See also
- "99 Bottles of Beer" as used in computer science
- Bad Apple!! § Use as a graphical and audio test (graphic equivalent to "Hello, World!" for old hardware)
- Foobar
- Java Pet Store
- Just another Perl hacker
- Outline of computer science
- TPK algorithm
References
- ISBN 9781118887820.
- ISBN 0-13-110163-3.
- ^ Kernighan, Brian (1974). "Programming in C: A Tutorial" (PDF). Bell Labs. Retrieved 9 January 2019.
- ^ "The Programming Language B". Bell Labs.
- ^ "BCPL". Jargon File.
- ^ "William B. Williams, Radio Personality, Dies". The New York Times. 4 August 1986.
- ^ "C++ Programming/Examples/Hello world". Wikibooks. Retrieved 16 March 2022.
- ^ "Malbolge". Esolang. esolangs-wiki. Retrieved 28 October 2016.
- ^ A Tutorial for the Go Programming Language. Archived 26 July 2010 at the Wayback Machine The Go Programming Language. Retrieved 26 July 2011.
- ^ Silva, Mike (11 September 2013). "Introduction to Microcontrollers - Hello World". EmbeddedRelated.com. Retrieved 19 May 2015.
- ^ George, Ligo (8 May 2013). "Blinking LED using Atmega32 Microcontroller and Atmel Studio". electroSome. Retrieved 19 May 2015.
- ^ PT, Ranjeeth. "2. AVR Microcontrollers in Linux HOWTO". The Linux Documentation Project. Retrieved 19 May 2015.
- ^ Andersson, Sven-Åke (2 April 2012). "3.2 The first Altera FPGA design". Raidió Teilifís Éireann. Archived from the original on 21 May 2015. Retrieved 19 May 2015.
- ^ Fabio, Adam (6 April 2014). "CPLD Tutorial: Learn programmable logic the easy way". Hackaday. Retrieved 19 May 2015.
- ^ "Hello". GNU Project. Free Software Foundation. Archived from the original on 29 May 2014. Retrieved 7 July 2017.
- ^ Jolif, Christophe (January 2003). "Bringing SVG Power to Java Applications". Sun Developer Network.
- ^ de Dinechin, Christophe (24 July 2010). "Hello world!". Grenouille Bouillie.
- ^ "Teaching the Nintendo Generation to Program" (PDF). bfoit.org. Archived from the original (PDF) on 5 May 2016. Retrieved 27 December 2015.
- ISBN 978-1-78728-823-2. Retrieved 4 December 2019.
- ^ Wiegers, Harold (28 June 2018). "The importance of "Time to First Hello, World!" an efficient API program".
- ISBN 9781492026877. Retrieved 19 February 2020.
External links
- The Hello World Collection
- "Hello world/Text". Rosetta Code.
- "GitHub – leachim6/hello-world: Hello world in every computer language. Thanks to everyone who contributes to this, make sure to see CONTRIBUTING.md for contribution instructions!". GitHub. 30 October 2021.
- "Unsung Heroes of IT / Part One: Brian Kernighan". TheUnsungHeroesOfIT.com. Archived from the original on 26 March 2016. Retrieved 23 August 2014.