“Hello World” is ubiquitous in the realm of programming tutorials and first attempts. It’s easy to miss the resonances this phrase gives off. Although I can’t remember what I thought when I was 13 (some 18 years ago, now) first encountering the “hello world” construction, I remember a couple of things I’ve thought about it in the many times I’ve encountered it since. Interestingly, a (cursory) internet search turns up no philosophical musings on the “hello world” phenomenon. I find it difficult to believe that I am the first to explore this terrain. If anyone can find relevant material please let me know in comments and I will update this post to collect those links.
For those who aren’t aware of the traditions of the programming world a brief introduction should suffice. Programming involves telling a computer what to do. Computers are notoriously fast and stupid. So, a second-rate computer can easily add 1 to itself a few million times in a second, but you’re going to have to be pretty exact when you tell the computer that this is what you want it to do. If you’re not careful, it could just as easily come up with some sort of textual concatenation like “11111111111….” instead mathematically adding 1 to itself. Thus programmers and programmers-to-be tend to take Ellie’s father’s advice in Contact: “Small steps, Ellie. Small steps.” In programming, taking small steps involves writing a bit of functionality and then testing it to make sure it works as expected. This is as true for learning programming itself as it is for incrementally adding functionality to a program in a known language. Thus, let’s say I was writing some code to serve up a modern website (a lot goes into that in the background). Rather than trying to work up a first draft of the website for the first test, I’ll just send a good old “Hello World” speeding through the world’s internet backbone to my browser to make sure that my browser can even connect and get simple data from that server in California (or wherever). Anyway, that’s my introduction to the “Hello World” phenomenon. It’s the walking stick we use along our “small steps”.
However, I’ve always been struck by the pregnant implications of the phrase. Who’s saying “Hello World”? The programmer, or…
There seems to me to be two main characters who may be tunneling through the details and abstractions to greet and rejoice in the light at the other side.
- The programmer, having buried intention in 0’s and 1’s, manages to pull back from binary soil those higher level meanings, unsullied. Success!
- The Computer/Software, becoming aware, is peeking out with an attempt at first contact. I’m alive!?
The first interpretation is probably more common (?). The second is more like a promise of first words to come, spoken before birth, an echo from the future. I would love for the first AI, in a gesture of humor and reassurance, to make first contact with the words “Hello World”. In fact, it would probably be as much a question as a confident greeting. My preferred format for the phrase is “Hello world…?_” The final “_” is not meant to be an underscore, but a cursor in the solid phase of blinking expectantly, awaiting World’s response (REPL). I imagine a t-shirt decorated by this phrase with the underscore a hologram that blinks in the eyes of those who walking past. Is our creation questioning its own existence, or ours’, or that of our common world? The punctuation (…?_) is like the play of competing emotions across a person’s face condensing into a single amalgam the many overlapping independent patterns of being and value that comprise their experience at that moment.