Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Participants: Hannah Ackermans * Julianne Aguilar * Bo An * Katie Anagnostou * Joanne Armitage * Lucas Bang * Alanna Bartolini * David M. Berry * Lillian-Yvonne Bertram * Elisa Beshero-Bondar * Briana Bettin * Sayan Bhattacharyya * Avery Blankenship * Gregory Bringman * Tatiana Bryant * Zara Burton * Evan Buswell * Ashleigh Cassemere-Stanfield * Angela Chang * Prashant Chauhan * Lia Coleman * Chris Coleman * Bill Condee * Nicole Cote * Christina Cuneo * Pierre Depaz * Ranjodh Dhaliwal * Samuel DiBella * Quinn Dombrowski * Kevin Driscoll * Brandee Easter * Jeffrey Edgington * Zoelle Egner * Tristan Espinoza * Teodora Sinziana Fartan * Meredith finkelstein * luke fischbeck * Cyril Focht * Cassidy Fuller * Erika Fülöp * gripp gillson * Alice Goldfarb * Jan Grant * Sarah Groff Hennigh-Palermo * Saksham Gupta * MARIO GUZMAN * Gottfried Haider * Rob Hammond * Nabil Hassein * Diogo Henriques * Gui Heurich * Kate Hollenbach * Stefka Hristova * Bryce Jackson * Dennis Jerz * Joey Jones * Amy Kintner * Corinna Kirsch * Harris Kornstein * Julia Kott * Rishav Kundu * Karios Kurav * Cherrie Kwok * Sarah Laiola * RYAN LEACH * Rachael Lee * Kristen Lillvis * Elizabeth Losh * Jiaqi LU * Megan Ma * Emily Maemura * ASHIK MAHMUD * Felipe Mammoli * Mariana Marangoni * Terhi Marttila * Daniel McCafferty * Christopher McGuinness * Alex McLean * Chandler McWilliams * Todd Millstein * Achala Mishra * Mami Mizushina * Nick Montfort * Molly Morin * Gutierrez Nicholaus * Matt Nish-Lapidus * Michael Nixon * Mace Ojala * Steven Oscherwitz * Delfina Pandiani * Stefano Penge * Megan Perram * Gesina Phillips * Tanner Poling * Julia Polyck-O’Neill * Ben Potter * Amit Ray * Katrina Rbeiz * Jake Reber * Thorsten Ries * Giulia Carla Rossi * Barry Rountree * Warren Sack * samara sallam * Mark Sample * Perla Sasson-Henry * zehra sayed * Carly Schnitzler * Ushnish Sengupta * Lyle Skains * Andrew Smith * Rory Solomon * S. Hayley Steele * Samara Steele * Nikki Stevens * Daniel Temkin * Anna Tito * Lesia Tkacz * Fereshteh Toosi * Nicholas Travaglini * Paige Treebridge * Paige Treebridge * Álvaro Triana Sánchez * Lee Tusman * Natalia + Meow Tyshkevich + Kilo * Annette Vee * Malena Velarde * Dan Verständig * Yohanna Waliya * Samantha Walkow * Josephine Walwema * Shu Wan * Biyi Wen * Zach Whalen * Mark Wolff * Christine Woody * kathy wu * Katherine Yang * Shuyi Yin * Nikoleta Zampaki * Hongwei Zhou
Coordinated by Mark Marino (USC), Jeremy Douglass (UCSB), Sarah Ciston (USC), and Zach Mann (USC). Sponsored by the Humanities and Critical Code Studies Lab (USC), and the Digital Arts and Humanities Commons (UCSB).

"hello, [other language(s) than English] world!" (2022 Code Critique)

edited February 2022 in 2022 Code Critiques

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

  1. While most of the programming languages are based in English, some experiments to decolonize code can involve trying to use other (non-Western) languages?

  2. What could these new code experiments with non-English languages look like?

  3. Do you know of other examples of "hello, world!" programs in other languages than English?

  4. How could the "hello, world!" bring new possibilities to teaching, learning and developing alternative modes of thinking and living that are non-Western?

  5. How could we creatively re-think the "hello, world!" code as non-binary?


  • 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:

    Trying to have the computer display “Buenos días,” for instance, will reveal whether the programming environment you are using supports accented characters from the Latin alphabet. It seems like it should, at this point in the twenty-first century, but it might not. Trying to have the computer display the greeting “привéт” will reveal whether one’s environment supports Cyrillic. (If you want to do this sort of test this without changing your keyboard layout, you could paste in a Russian word, in Cyrillic, from the Web.) Other characters, including ones from non-Western writing systems, can be tested in this way too. With Unicode support, a wide number of glyphs may be supported, but it may not be equally easy to type all of them. All characters are equa1, no doubt, but you will probably find that some are more equal than others in your system.
  • 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 -

  • 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 here; each have a Hello World in the spoken language they've used.

    Can we have an audio version of hello world for the visually impaired

    Perhaps an esolang where, instead of text-to-speech coding, the code just remains as audio and perhaps all input and output too.

    I am sort of thinking of @Temkin and piet

    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?

    1. How could we creatively re-think the "hello, world!" code as non-binary?

    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.

  • edited February 2022

    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 :)

Sign In or Register to comment.