It looks like you're new here. If you want to get involved, click one of these buttons!
Title: "hello, world!"
Author/s: Brian Kernighan
Language/s: several
Years of development: 1978-
Software/hardware requirements (if applicable): multiple depending on the language/s
main( ) {
printf("hello, world");
}
The use of "hello, world!" as a test message was initially described as a code example in Dennis Ritchie and Brian Kernighan's 1978 book The C Programming Language. This simple program followed an earlier Bell Laboratories' internal memorandum written by Brian Kernighan in 1974, titled Programming in C: A Tutorial (see also Wikipedia, online).
The "hello, world!" program is probably one of the simplest programs to write, and often one of the first basic syntaxes to be learned by students and/or coders in several programming languages (eg. Ballerina, BASIC, Batch file, Bash, C, C++, C#, COBOL, Clojure, Dart, Elixir, Ezhil, Fortran, Go, Haskell, Java, JavaScript, Kotlin, Logo, Lua, mq, Objective-C, OCaml, Pascal, Perl, PHP, PowerShell, Prolog, Python, Ruby, Rust, Standard ML, Swift, TI-BASIC, Zig).
Since 1994, Wolfram Roesler and many people around the globe compiled The Hello World Collection, including 603 "hello, world!" programs in several programming languages and in additional 78 human languages. More recently, Geoff Cox and Duncan Shingleton created hallo welt! (hello world!), shown as a projection at BV Gallery, Linz (Austria) in 2008, and as part of AFTER THE NET, at Peninsula Arts Gallery, Plymouth (UK) in 2009, and at Tecnológico de Monterrey, Toluca (México) in 2010. Cox and Shingleton's brilliant codework plays on a communicative act between programmer and computer, by 'looping more than 100 Hello World programs written in different programming languages, alongside a selection of human languages, [and] combining them into a real-time, multilingual, machine-driven confusion of tongues' (Soon and Cox, 2020).
Discussion Questions
While most of the programming languages are based in English, some experiments to decolonize code can involve trying to use other (non-Western) languages?
What could these new code experiments with non-English languages look like?
Do you know of other examples of "hello, world!" programs in other languages than English?
How could the "hello, world!" bring new possibilities to teaching, learning and developing alternative modes of thinking and living that are non-Western?
How could we creatively re-think the "hello, world!" code as non-binary?
Comments
This is a good experiment, I agree — I suggest writing (or trying to write) Hello World in non-English languages in Exploratory Programming for the Arts and Humanities, in both editions; the prompt is found in 7.2 in the second edition:
Roundabout way to think about @diogo_ph22's great question, I think, but @nickm's prompt reminds me of my brief career as a QA Analyst for a web development/marketing company. The company made websites for major corporations which included many features with text fields (from contact us forms to search functions to having custom text added to generated images of products: put your name on a mug!). Part of my job was to break these forms, basically to find ways to cause unanticipated errors. The first step was always to figure out which typographical symbols were supported, to determine which should be supported and which should be added to a custom apology/error message. Throw an & in there. Throw in a ^, a ), etc. But these tests also included é and ñ and other alphabets. I guess what I am saying is that these kinds of exercises are happening all the time, even daily for companies such as Kraft Foods, but that also I was rarely ever thinking, at the time, about what these exercises stood for. They are about defining who the "user" is or can be. And depending on the kind of website, who is reader, participant, citizen, person, et al. is or can be. If your name had a certain unsupported symbol in it, it couldn't be on a mug! ...or an application.
All of this is implied by @diogo_ph22 and the projects mentioned above, of course. What I find easy to forget is the ubiquity of similar functions.
I have no new creative solution, but as a pedagogical tool I think it would be an interesting exercise to write a Hello, World! function in an environment that DID support other alphabets and symbols but that did not support something many students might take for granted: for instance, the letter "e." Ask a group of native English speakers to have to work around it, to inhabit that subject position, to look at a system that defines them as outside of it. That might lead to some interesting discussions. (I am sure this is done!)
What about hello world for accessiblity. Can we have an audio version of hello world for the visually impaired, a version of hello world (picture?) for people who are dyslexic. I am sort of thinking of @Temkin and piet -https://esoteric.codes/blog/david-morgan-mar
In the Yoruba-based Yorlang, Hello World looks like this:
sọpé "báwo ni ayé";
. I spoke with the creator of Yorlang and others who have designed Indigenous African programming languages for esoteric.codes here; each have a Hello World in the spoken language they've used.Perhaps an esolang where, instead of text-to-speech coding, the code just remains as audio and perhaps all input and output too.
There is a Piet program that functions as a visual quine, where the word "Hello" and a picture of the world make up the image that serves as source code for the program, created by Kelly Boothby. We could go further, with a pictorial expression of "Hello," (perhaps a waving hand?) as part of the image.
But this is all dealing with the source code -- the output of this program is still textual (and in this case, English). But we can write Piet programs that output binary data, and so we could have it output an image. Itself, as a quine? Another pictorial representation of the message?
There are a few ways to think of non-binary here, but for the moment I'm reading this as being about chance or probabalistic languages (rather than, say, non-binary encodings).
(In my language Entropy), we can't be sure "Hello, World!" would print. Data corrupts in a way that "Hello, Xorld!" or "Ielmo, Worle!" might print instead.
But what if we had a chance-based language that worked among many natural languages. Going back to Yorlang, it was created in Nigeria, a country with 525 languages in use. Our program might take all of these languages into account before delivering one version of the message, decided either by chance or probabilistically based on what it determines is the best choice for the user -- or perhaps even building chance composites of these languages with mixed vocabularies.
東芝-パソピア IQ/Toshiba Pasopia IQ MSX CM (1985)
This doesn't answer directly to the critique questions - a commercial for a Toshiba computer in 1985. The commercial featured Kanji character input.
also
Many thanks @onebigear, @Temkin, @meredith, @Zach_Mann and @nickm for your thought-provoking comments, suggestions and further questions! I hope we'll continue this discussion in the (near) future