16,599
edits
Ajay Kumar (talk | contribs) (Updated the article) Tags: Reverted Mobile edit Mobile web edit |
Ajay Kumar (talk | contribs) (Updated the article) Tags: Manual revert Mobile edit Mobile web edit |
||
Line 1: | Line 1: | ||
{{ | |||
Use dmy dates|date=March 2022 | {{Use dmy dates|date=March 2022}} | ||
Short description|Traditional beginners' computer program | {{Short description|Traditional beginners' computer program}} | ||
Redirect|Hello World|other uses|Hello World (disambiguation) | {{Redirect|Hello World|other uses|Hello World (disambiguation)}} | ||
[[File: Hello World Brian Kernighan 1974.jpg|thumb|"Hello, World!" program by [[Brian Kernighan]] (1978)]] | [[File: Hello World Brian Kernighan 1974.jpg|thumb|"Hello, World!" program by [[Brian Kernighan]] (1978)]] | ||
A '''"Hello, World!" program''' is generally a [[computer program]] that ignores any input, and outputs or displays a message similar to "Hello, World!". A small piece of code in most [[general-purpose programming language]]s, this program is used to illustrate a language's basic [[Syntax (programming languages)|syntax]]. "Hello, World!" programs are often the first a student learns to write in a given language,<ref>cite book|author=James A Langbridge|url=https://books.google.com/books?id=y51NAgAAQBAJ&pg=PA74 | A '''"Hello, World!" program''' is generally a [[computer program]] that ignores any input, and outputs or displays a message similar to "Hello, World!". A small piece of code in most [[general-purpose programming language]]s, this program is used to illustrate a language's basic [[Syntax (programming languages)|syntax]]. "Hello, World!" programs are often the first a student learns to write in a given language,<ref>{{cite book|author=James A Langbridge|url=https://books.google.com/books?id=y51NAgAAQBAJ&pg=PA74 | ||
| title=Professional Embedded ARM Development|date = 3 December 2013|isbn = 9781118887820</ref> and they can also be used as a [[sanity check]] to ensure computer software intended to compile or run [[source code]] is correctly installed, and that its operator understands how to use it. | | title=Professional Embedded ARM Development|date = 3 December 2013|isbn = 9781118887820}}</ref> and they can also be used as a [[sanity check]] to ensure computer software intended to compile or run [[source code]] is correctly installed, and that its operator understands how to use it. | ||
==History== | ==History== | ||
While small test programs have existed since the development of programmable [[computer]]s, 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]]'',<ref>cite book | last = Kernighan | first = Brian W. | author-link = Brian W. Kernighan | author2 = Ritchie, Dennis M. | title = The C Programming Language | edition = 1st | publisher = [[Prentice Hall]] | date = 1978 | location = [[Englewood Cliffs, NJ]] | isbn = 0-13-110163-3 | author-link2 = Dennis M. Ritchie | url-access = registration | url = https://archive.org/details/cprogramminglang00kern </ref> with likely earlier use in BCPL (as below). The example program in that book prints "samp|hello, world", and was inherited from a 1974 [[Bell Labs|Bell Laboratories]] internal memorandum by [[Brian Kernighan]], ''Programming in C: A Tutorial'':<ref name="ctut">cite web|url=https://www.bell-labs.com/usr/dmr/www/ctut.pdf|title=Programming in C: A Tutorial|last=Kernighan|first=Brian|year=1974|publisher=Bell Labs|access-date=9 January 2019</ref> | While small test programs have existed since the development of programmable [[computer]]s, 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]]'',<ref>{{cite book | last = Kernighan | first = Brian W. | author-link = Brian W. Kernighan | author2 = Ritchie, Dennis M. | title = The C Programming Language | edition = 1st | publisher = [[Prentice Hall]] | date = 1978 | location = [[Englewood Cliffs, NJ]] | isbn = 0-13-110163-3 | author-link2 = Dennis M. Ritchie | url-access = registration | url = https://archive.org/details/cprogramminglang00kern }}</ref> with likely earlier use in BCPL (as below). The example program in that book prints "{{samp|hello, world}}", and was inherited from a 1974 [[Bell Labs|Bell Laboratories]] internal memorandum by [[Brian Kernighan]], ''Programming in C: A Tutorial'':<ref name="ctut">{{cite web|url=https://www.bell-labs.com/usr/dmr/www/ctut.pdf|title=Programming in C: A Tutorial|last=Kernighan|first=Brian|year=1974|publisher=Bell Labs|access-date=9 January 2019}}</ref> | ||
<!-- | <!-- | ||
************************************** | ************************************** | ||
Line 26: | Line 26: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
In the above example, the samp|main( ) [[subroutine|function]] defines where the program [[Entry point|should start executing]]. The function body consists of a single [[Statement (computer science)|statement]], a call to the samp|printf function, which stands for "''print f''ormatted". This function will cause the program to output whatever is passed to it as the [[Parameter (computer programming)|parameter]], in this case the [[String (computer science)|string]] samp|hello, world. | In the above example, the {{samp|main( )}} [[subroutine|function]] defines where the program [[Entry point|should start executing]]. The function body consists of a single [[Statement (computer science)|statement]], a call to the {{samp|printf}} function, which stands for "''print f''ormatted". This function will cause the program to output whatever is passed to it as the [[Parameter (computer programming)|parameter]], in this case the [[String (computer science)|string]] {{samp|hello, world}}. | ||
The C language version was preceded by Kernighan's own 1972 ''A Tutorial Introduction to the Language [[B (programming language)|B]]'',<ref name="langb">cite web| url = https://www.bell-labs.com/usr/dmr/www/bintro.html| title = The Programming Language B|publisher=Bell Labs</ref> where the first known version of the program is found in an example used to illustrate external variables: | The C language version was preceded by Kernighan's own 1972 ''A Tutorial Introduction to the Language [[B (programming language)|B]]'',<ref name="langb">{{cite web| url = https://www.bell-labs.com/usr/dmr/www/bintro.html| title = The Programming Language B|publisher=Bell Labs}}</ref> where the first known version of the program is found in an example used to illustrate external variables: | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
Line 41: | Line 41: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The program prints ''samp|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 ''samp|hi!'' on the terminal, and the phrase ''samp|hello, world!'' was introduced as a slightly longer greeting that required several character constants for its expression. | The program prints ''{{samp|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 ''{{samp|hi!}}'' on the terminal, and the phrase ''{{samp|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 with [[BCPL]] (1967).<ref>cite web |url=http://www.catb.org/jargon/html/B/BCPL.html |title=BCPL |work=[[Jargon File]]</ref> Use of the phrase outside computing began over a decade before that; it was the [[catchphrase]] of New York radio disc jockey [[William B. Williams (DJ)|William B. Williams]] beginning in the 1950s.<ref name=nytobit>cite web| url = https://select.nytimes.com/search/restricted/article?res=F50714FF3E5B0C778CDDA10894DE484D81| title = William B. Williams, Radio Personality, Dies |work=The New York Times |date=4 August 1986</ref> | The [[Jargon File]] reports that "hello, world" instead originated with [[BCPL]] (1967).<ref>{{cite web |url=http://www.catb.org/jargon/html/B/BCPL.html |title=BCPL |work=[[Jargon File]]}}</ref> Use of the phrase outside computing began over a decade before that; it was the [[catchphrase]] of New York radio disc jockey [[William B. Williams (DJ)|William B. Williams]] beginning in the 1950s.<ref name=nytobit>{{cite web| url = https://select.nytimes.com/search/restricted/article?res=F50714FF3E5B0C778CDDA10894DE484D81| title = William B. Williams, Radio Personality, Dies |work=The New York Times |date=4 August 1986}}</ref> | ||
==Variations== | ==Variations== | ||
[[Image:PSP-Homebrew.jpeg|thumb|A "Hello, World!" program running on Sony's [[PlayStation Portable homebrew|PlayStation Portable]] as a [[proof of concept]]]] | [[Image:PSP-Homebrew.jpeg|thumb|A "Hello, World!" program running on Sony's [[PlayStation Portable homebrew|PlayStation Portable]] as a [[proof of concept]]]] | ||
"Hello, World!" programs vary in complexity between different languages. In some languages, particularly [[scripting language]]s, the "Hello, World!" program can be written as a single statement, while in others (particularly many [[Low-level programming language|low-level languages]]) there can be many more statements required. For example, in [[Python (programming language)|Python]], to print the string ''samp|Hello, World!'' followed by a newline, one only needs to write <syntaxhighlight lang="python" inline>print("Hello, World!")</syntaxhighlight>. In contrast, the equivalent code in [[C++]]<ref>cite web|url=https://en.wikibooks.org/wiki/C%2B%2B_Programming/Examples/Hello_world |title=C++ Programming/Examples/Hello world |publisher=[[Wikibooks]] | accessdate=16 March 2022</ref> requires the import of the [[input/output]] [[Library (computing)|software library]], the manual declaration of an [[entry point]], and the explicit instruction that the output string should be sent to the [[Standard output|standard output stream]]. | "Hello, World!" programs vary in complexity between different languages. In some languages, particularly [[scripting language]]s, the "Hello, World!" program can be written as a single statement, while in others (particularly many [[Low-level programming language|low-level languages]]) there can be many more statements required. For example, in [[Python (programming language)|Python]], to print the string ''{{samp|Hello, World!}}'' followed by a newline, one only needs to write <syntaxhighlight lang="python" inline>print("Hello, World!")</syntaxhighlight>. In contrast, the equivalent code in [[C++]]<ref>{{cite web|url=https://en.wikibooks.org/wiki/C%2B%2B_Programming/Examples/Hello_world |title=C++ Programming/Examples/Hello world |publisher=[[Wikibooks]] | accessdate=16 March 2022}}</ref> requires the import of the [[input/output]] [[Library (computing)|software library]], the manual declaration of an [[entry point]], and the explicit instruction that the output string should be sent to the [[Standard output|standard output stream]]. | ||
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 and/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 [[esoteric programming language]]s may have to print a slightly modified string. For example, the first non-trivial [[Malbolge]] program printed "Hello world", this having been determined to be [[Principle of good enough|good enough]].<ref>cite web|title=Malbolge|url=https://esolangs.org/wiki/Malbolge|website=Esolang|publisher=esolangs-wiki|access-date=28 October 2016</ref> Other human languages have been used as the output; for example, a tutorial for the [[Go programming language]] outputted both English and Chinese or Japanese characters, demonstrating the programming language's built-in [[Unicode]] support.<ref>[http://golang.org/doc/go_tutorial.html#tmp_20 A Tutorial for the Go Programming Language.] webarchive |url=https://web.archive.org/web/20100726052120/http://golang.org/doc/go_tutorial.html#tmp_20 |date=26 July 2010 | 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 and/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 [[esoteric programming language]]s may have to print a slightly modified string. For example, the first non-trivial [[Malbolge]] program printed "Hello world", this having been determined to be [[Principle of good enough|good enough]].<ref>{{cite web|title=Malbolge|url=https://esolangs.org/wiki/Malbolge|website=Esolang|publisher=esolangs-wiki|access-date=28 October 2016}}</ref> Other human languages have been used as the output; for example, a tutorial for the [[Go programming language]] outputted both English and Chinese or Japanese characters, demonstrating the programming language's built-in [[Unicode]] support.<ref>[http://golang.org/doc/go_tutorial.html#tmp_20 A Tutorial for the Go Programming Language.] {{webarchive |url=https://web.archive.org/web/20100726052120/http://golang.org/doc/go_tutorial.html#tmp_20 |date=26 July 2010 }} The Go Programming Language. Retrieved 26 July 2011.</ref> Another notable example is the [[Rust (programming language)|Rust programming language]], whose management system automatically inserts a "Hello, World" program when creating new projects. | ||
[[File:HelloWorld Maktivism ComputerProgramming LEDs.jpg|thumb|A "Hello, World!" message being displayed through long-exposure [[light painting]] with a moving strip of [[Light Emitting Diode|LEDs]]]] | [[File:HelloWorld Maktivism ComputerProgramming LEDs.jpg|thumb|A "Hello, World!" message being displayed through long-exposure [[light painting]] with a moving strip of [[Light Emitting Diode|LEDs]]]] | ||
Some languages change the functionality of the "Hello, World!" program while maintaining the spirit of demonstrating a simple example. [[Functional programming]] languages, such as [[Lisp (programming language)|Lisp]], [[ML (programming language)|ML]], and [[Haskell (programming language)|Haskell]], tend to substitute a [[factorial]] program for "Hello, World!", as functional programming emphasizes recursive techniques, whereas the original examples emphasize I/O, which violates the spirit of pure functional programming by producing [[Side effect (computer science)|side effects]]. Languages otherwise capable of printing "Hello, World!" (Assembly, C, [[VHDL]]) may also be used in [[embedded system]]s, where text output is either difficult (requiring additional components or communication with another computer) or nonexistent. For devices such as [[microcontroller]]s, [[field-programmable gate arrays]], and [[Complex programmable logic device|CPLDs]], "Hello, World!" may thus be substituted with a blinking [[Light-emitting diode|LED]], which demonstrates timing and interaction between components.<ref>cite web|last1=Silva|first1=Mike|title=Introduction to Microcontrollers - Hello World|url=http://www.embeddedrelated.com/showarticle/460.php|website=EmbeddedRelated.com|access-date=19 May 2015|date=11 September 2013</ref><ref>cite web|last1=George|first1=Ligo|title=Blinking LED using Atmega32 Microcontroller and Atmel Studio|url=https://electrosome.com/blinking-led-atmega32-avr-microcontroller/|website=electroSome|date=8 May 2013|access-date=19 May 2015</ref><ref>cite web|last1=PT|first1=Ranjeeth|title=2. AVR Microcontrollers in Linux HOWTO|url=http://www.tldp.org/HOWTO/Avr-Microcontrollers-in-Linux-Howto/x207.html|website=The Linux Documentation Project|access-date=19 May 2015</ref><ref>cite web|last1=Andersson|first1=Sven-Åke|title=3.2 The first Altera FPGA design|url=http://www.rte.se/blog/blogg-modesty-corex/first-altera-fpga-design/3.2|publisher=Raidió Teilifís Éireann|access-date=19 May 2015|date=2 April 2012|archive-url=https://web.archive.org/web/20150521222132/http://www.rte.se/blog/blogg-modesty-corex/first-altera-fpga-design/3.2|archive-date=21 May 2015|url-status=dead</ref><ref>cite web|last1=Fabio|first1=Adam|title=CPLD Tutorial: Learn programmable logic the easy way|url=http://hackaday.com/2014/04/06/cpld-tutorial-learn-programmable-logic-the-easy-way/|website=Hackaday|access-date=19 May 2015|date=6 April 2014</ref> | Some languages change the functionality of the "Hello, World!" program while maintaining the spirit of demonstrating a simple example. [[Functional programming]] languages, such as [[Lisp (programming language)|Lisp]], [[ML (programming language)|ML]], and [[Haskell (programming language)|Haskell]], tend to substitute a [[factorial]] program for "Hello, World!", as functional programming emphasizes recursive techniques, whereas the original examples emphasize I/O, which violates the spirit of pure functional programming by producing [[Side effect (computer science)|side effects]]. Languages otherwise capable of printing "Hello, World!" (Assembly, C, [[VHDL]]) may also be used in [[embedded system]]s, where text output is either difficult (requiring additional components or communication with another computer) or nonexistent. For devices such as [[microcontroller]]s, [[field-programmable gate arrays]], and [[Complex programmable logic device|CPLDs]], "Hello, World!" may thus be substituted with a blinking [[Light-emitting diode|LED]], which demonstrates timing and interaction between components.<ref>{{cite web|last1=Silva|first1=Mike|title=Introduction to Microcontrollers - Hello World|url=http://www.embeddedrelated.com/showarticle/460.php|website=EmbeddedRelated.com|access-date=19 May 2015|date=11 September 2013}}</ref><ref>{{cite web|last1=George|first1=Ligo|title=Blinking LED using Atmega32 Microcontroller and Atmel Studio|url=https://electrosome.com/blinking-led-atmega32-avr-microcontroller/|website=electroSome|date=8 May 2013|access-date=19 May 2015}}</ref><ref>{{cite web|last1=PT|first1=Ranjeeth|title=2. AVR Microcontrollers in Linux HOWTO|url=http://www.tldp.org/HOWTO/Avr-Microcontrollers-in-Linux-Howto/x207.html|website=The Linux Documentation Project|access-date=19 May 2015}}</ref><ref>{{cite web|last1=Andersson|first1=Sven-Åke|title=3.2 The first Altera FPGA design|url=http://www.rte.se/blog/blogg-modesty-corex/first-altera-fpga-design/3.2|publisher=Raidió Teilifís Éireann|access-date=19 May 2015|date=2 April 2012|archive-url=https://web.archive.org/web/20150521222132/http://www.rte.se/blog/blogg-modesty-corex/first-altera-fpga-design/3.2|archive-date=21 May 2015|url-status=dead}}</ref><ref>{{cite web|last1=Fabio|first1=Adam|title=CPLD Tutorial: Learn programmable logic the easy way|url=http://hackaday.com/2014/04/06/cpld-tutorial-learn-programmable-logic-the-easy-way/|website=Hackaday|access-date=19 May 2015|date=6 April 2014}}</ref> | ||
The [[Debian]] and [[Ubuntu (operating system)|Ubuntu]] [[Linux distribution]]s provide the "Hello, World!" program through their [[Package manager|software package manager]] systems, which can be invoked with the command ''samp|hello''. It serves as a [[sanity check]] and a simple example of installing a software package. For developers, it provides an example of creating a [[.deb]] package, either traditionally or using ''debhelper'', and the version of samp|hello used, [[GNU Hello]], serves as an example of writing a [[GNU]] program.<ref>cite web|title=Hello - GNU Project - Free Software Foundation|url=https://www.gnu.org/software/hello/|website=gnu.org|publisher=GNU Project|access-date=7 July 2017|archive-url=https://archive.today/20140529011826/http://www.gnu.org/software/hello/|archive-date=29 May 2014|url-status=dead</ref> | The [[Debian]] and [[Ubuntu (operating system)|Ubuntu]] [[Linux distribution]]s provide the "Hello, World!" program through their [[Package manager|software package manager]] systems, which can be invoked with the command ''{{samp|hello}}''. It serves as a [[sanity check]] and a simple example of installing a software package. For developers, it provides an example of creating a [[.deb]] package, either traditionally or using ''debhelper'', and the version of {{samp|hello}} used, [[GNU Hello]], serves as an example of writing a [[GNU]] program.<ref>{{cite web|title=Hello - GNU Project - Free Software Foundation|url=https://www.gnu.org/software/hello/|website=gnu.org|publisher=GNU Project|access-date=7 July 2017|archive-url=https://archive.today/20140529011826/http://www.gnu.org/software/hello/|archive-date=29 May 2014|url-status=dead}}</ref> | ||
Variations of the "Hello, World!" program that produce a [[computer graphics|graphical output]] (as opposed to text output) have also been shown. [[Sun Microsystems|Sun]] demonstrated a "Hello, World!" program in [[Java (programming language)|Java]] based on [[scalable vector graphics]],<ref>cite news|last=Jolif|first=Christophe|title=Bringing SVG Power to Java Applications|newspaper=Sun Developer Network|date=January 2003</ref> and the [[XL (programming language)|XL]] programming language features a spinning Earth "Hello, World!" using [[3D computer graphics]].<ref>cite web|last=de Dinechin|first=Christophe|title=Hello world!|url=http://grenouillebouillie.wordpress.com/2010/07/24/hello-world/|publisher=Grenouille Bouillie|date=24 July 2010</ref> Mark Guzdial and Elliot Soloway have suggested that the "hello, world" test message may be outdated now that graphics and sound can be manipulated as easily as text.<ref>cite web|url=http://www.bfoit.org/itp/Soloway/CACM_Nintendo_Generation.pdf|title=Teaching the Nintendo Generation to Program|website=bfoit.org|access-date=27 December 2015|archive-url=https://web.archive.org/web/20160505190520/http://www.bfoit.org/itp/Soloway/CACM_Nintendo_Generation.pdf|archive-date=5 May 2016|url-status=dead</ref> | Variations of the "Hello, World!" program that produce a [[computer graphics|graphical output]] (as opposed to text output) have also been shown. [[Sun Microsystems|Sun]] demonstrated a "Hello, World!" program in [[Java (programming language)|Java]] based on [[scalable vector graphics]],<ref>{{cite news|last=Jolif|first=Christophe|title=Bringing SVG Power to Java Applications|newspaper=Sun Developer Network|date=January 2003}}</ref> and the [[XL (programming language)|XL]] programming language features a spinning Earth "Hello, World!" using [[3D computer graphics]].<ref>{{cite web|last=de Dinechin|first=Christophe|title=Hello world!|url=http://grenouillebouillie.wordpress.com/2010/07/24/hello-world/|publisher=Grenouille Bouillie|date=24 July 2010}}</ref> Mark Guzdial and Elliot Soloway have suggested that the "hello, world" test message may be outdated now that graphics and sound can be manipulated as easily as text.<ref>{{cite web|url=http://www.bfoit.org/itp/Soloway/CACM_Nintendo_Generation.pdf|title=Teaching the Nintendo Generation to Program|website=bfoit.org|access-date=27 December 2015|archive-url=https://web.archive.org/web/20160505190520/http://www.bfoit.org/itp/Soloway/CACM_Nintendo_Generation.pdf|archive-date=5 May 2016|url-status=dead}}</ref> | ||
==Time to Hello World== | ==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.<ref name="ODwyer">cite book |last1=O'Dwyer |first1=Arthur |title=Mastering the C++17 STL: Make full use of the standard library components in C++17 |date=September 2017 |publisher=[[Packt Publishing Ltd]] | isbn=978-1-78728-823-2 |page=251 |url=https://books.google.com/books?id=zJlGDwAAQBAJ&q=%22TTHW%22&pg=PA251 |access-date=4 December 2019 |language=en</ref> The concept has been extended beyond programming languages to [[Application programming interface|APIs]], as a measure of how simple it is for a new developer to get a basic example working; a shorter time indicates an easier API for developers to adopt.<ref>cite web |last1=Wiegers |first1=Harold |title=The importance of "Time to First Hello, World!" an efficient API program |date=28 June 2018 |url=https://apifriends.com/api-management/api-program-time-first-hello-world/</ref><ref>cite book |last1=Jin |first1=Brenda |last2=Sahni |first2=Saurabh |last3=Shevat |first3=Amir |title=Designing Web APIs: Building APIs That Developers Love |url=https://books.google.com/books?id=Dg1rDwAAQBAJ&q=%22time%20to%20hello%20world%22&pg=PT150 |date=29 August 2018 |publisher=O'Reilly Media |isbn=9781492026877 |access-date=19 February 2020</ref> | "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.<ref name="ODwyer">{{cite book |last1=O'Dwyer |first1=Arthur |title=Mastering the C++17 STL: Make full use of the standard library components in C++17 |date=September 2017 |publisher=[[Packt Publishing Ltd]] | isbn=978-1-78728-823-2 |page=251 |url=https://books.google.com/books?id=zJlGDwAAQBAJ&q=%22TTHW%22&pg=PA251 |access-date=4 December 2019 |language=en}}</ref> The concept has been extended beyond programming languages to [[Application programming interface|APIs]], as a measure of how simple it is for a new developer to get a basic example working; a shorter time indicates an easier API for developers to adopt.<ref>{{cite web |last1=Wiegers |first1=Harold |title=The importance of "Time to First Hello, World!" an efficient API program |date=28 June 2018 |url=https://apifriends.com/api-management/api-program-time-first-hello-world/}}</ref><ref>{{cite book |last1=Jin |first1=Brenda |last2=Sahni |first2=Saurabh |last3=Shevat |first3=Amir |title=Designing Web APIs: Building APIs That Developers Love |url=https://books.google.com/books?id=Dg1rDwAAQBAJ&q=%22time%20to%20hello%20world%22&pg=PT150 |date=29 August 2018 |publisher=O'Reilly Media |isbn=9781492026877 |access-date=19 February 2020}}</ref> | ||
==Examples== | ==Examples== | ||
Line 80: | Line 80: | ||
===[[ALGOL 60]]=== | ===[[ALGOL 60]]=== | ||
sxhl|2=m2|1= BEGIN DISPLAY("Hello, World!") END. | {{sxhl|2=m2|1= BEGIN DISPLAY("Hello, World!") END.}} | ||
===[[BASIC]]=== | ===[[BASIC]]=== | ||
Line 114: | Line 114: | ||
;C++23 | ;C++23 | ||
Also allowed in C++23 (and faster):<ref>Cite web |title=C++23: “Hello World!” with Modern C++23 « Marc Gregoire’s Blog |url=https://www.nuonsoft.com/blog/2023/01/14/hello-world-with-modern-c23/ |access-date=2023-05-04</ref> | Also allowed in C++23 (and faster):<ref>{{Cite web |title=C++23: “Hello World!” with Modern C++23 « Marc Gregoire’s Blog |url=https://www.nuonsoft.com/blog/2023/01/14/hello-world-with-modern-c23/ |access-date=2023-05-04}}</ref> | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
Line 138: | Line 138: | ||
} | } | ||
</syntaxhighlight>or, using top-level statements (starting in C# 9):<ref>Cite web |title=Top-level statements - programs without Main methods |url=https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/program-structure/top-level-statements |access-date=2022-09-08 |website=Microsoft Docs |language=en-us</ref><syntaxhighlight lang="c#"> | </syntaxhighlight>or, using top-level statements (starting in C# 9):<ref>{{Cite web |title=Top-level statements - programs without Main methods |url=https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/program-structure/top-level-statements |access-date=2022-09-08 |website=Microsoft Docs |language=en-us}}</ref><syntaxhighlight lang="c#"> | ||
using System; | using System; | ||
Line 228: | Line 228: | ||
==See also== | ==See also== | ||
Portal|Computer programming | {{Portal|Computer programming}} | ||
*[[99 Bottles of Beer#References in computer science|"99 Bottles of Beer" as used in computer science]] | *[[99 Bottles of Beer#References in computer science|"99 Bottles of Beer" as used in computer science]] | ||
*slink|Bad Apple!!|Use as a graphical and audio test (graphic equivalent to "Hello, World!" for old hardware) | *{{slink|Bad Apple!!|Use as a graphical and audio test}} (graphic equivalent to "Hello, World!" for old hardware) | ||
*slink|C (programming language)|"Hello, world" example | *{{slink|C (programming language)|"Hello, world" example}} | ||
*[[Foobar]] | *[[Foobar]] | ||
*[[Java BluePrints|Java Pet Store]] | *[[Java BluePrints|Java Pet Store]] | ||
Line 239: | Line 239: | ||
==References== | ==References== | ||
reflist|30em | {{reflist|30em}} | ||
==External links== | ==External links== | ||
*[http://helloworldcollection.de The Hello World Collection] | *[http://helloworldcollection.de The Hello World Collection] | ||
*cite web |title=Hello world/Text |url=http://rosettacode.org/wiki/Hello_world/Text | work=[[Rosetta Code]] | *{{cite web |title=Hello world/Text |url=http://rosettacode.org/wiki/Hello_world/Text | work=[[Rosetta Code]] }} | ||
*cite web |title=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!|website=[[GitHub]] | date=30 October 2021|url=https://github.com/leachim6/hello-world | *{{cite web |title=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!|website=[[GitHub]] | date=30 October 2021|url=https://github.com/leachim6/hello-world}} | ||
*cite web |title=Unsung Heroes of IT / Part One: Brian Kernighan |url=http://theunsungheroesofit.com/helloworld/ |work=TheUnsungHeroesOfIT.com |access-date=23 August 2014 |archive-url=https://web.archive.org/web/20160326193543/http://theunsungheroesofit.com/helloworld/ |archive-date=26 March 2016 |url-status=dead | *{{cite web |title=Unsung Heroes of IT / Part One: Brian Kernighan |url=http://theunsungheroesofit.com/helloworld/ |work=TheUnsungHeroesOfIT.com |access-date=23 August 2014 |archive-url=https://web.archive.org/web/20160326193543/http://theunsungheroesofit.com/helloworld/ |archive-date=26 March 2016 |url-status=dead }} | ||
Standard test item | {{Standard test item}} | ||
DEFAULTSORT:Hello World Program | {{DEFAULTSORT:Hello World Program}} | ||
[[Category:Test items in computer languages]] | [[Category:Test items in computer languages]] | ||
[[Category:Computer programming folklore]] | [[Category:Computer programming folklore]] | ||
[[Category:Articles with example code]] | [[Category:Articles with example code]] |