The blog is live. 🎉
There is exactly one acceptable title for a first post, and the fact that every engineer reading this knew what it would be before they clicked is the whole point. Two words, no explanation required, understood in every language on earth — including the ones with semicolons.
So let’s talk about where it came from, because the real story is much funnier than the tradition suggests.
>/ the first one ever
The earliest known “hello, world” is from Brian Kernighan’s A Tutorial Introduction to the Language B, 1972, Bell Labs. It looks like this:
main( ) {
extrn a, b, c;
putchar(a); putchar(b); putchar(c); putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';
Read it again. The greeting is chopped into 'hell', 'o, w' and 'orld' —
not for style, but because a character constant in B could hold four ASCII
characters and no more. There was no string type to reach for.
Which means the canonical first program of our entire profession is, structurally, a workaround for a compiler limitation. We have been shipping around constraints since literally the first example in the first tutorial. Nothing has changed. This is the most honest thing about the craft that has ever been written down.
The detail that finishes it: the example immediately before it in that same
tutorial printed hi!. Kernighan wanted a slightly longer greeting to show off
external variables — and that is the entire reason the phrase exists. hi! fit
in one constant. hello, world! did not. Our profession’s founding text is a
demo that needed more test data.
>/ the lineage
The version most people picture came later — a 1974 Bell Labs internal memo, Programming in C: A Tutorial:
main( ) {
printf("hello, world");
}
That is the one the 1978 K&R book inherited and made canonical. Note it
carefully, because people are strange about this and they are right to be:
lowercase h, comma, no exclamation mark. Every Hello, World! you have ever
seen in a framework’s starter template is a later embellishment. The Jargon File
also claims BCPL got there first in 1967, which remains contested.
And the phrase itself predates all of it. It was the catchphrase of a New York radio DJ, William B. Williams, in the 1950s. Computing borrowed it.
>/ it was never about the language
Here is the part worth keeping, and it is why we picked it as a title rather than just a joke.
Hello world does not test the language. Nobody has ever learned anything about C
from printf. It is a sanity check that the compiler is installed, the toolchain
is wired up, the output actually reaches a screen — and that the person driving
it understands how to use it.
That last clause is the one that earns its keep. The program verifies the operator, not just the machine. It is the cheapest possible end-to-end test: the smallest change you can make that proves every layer between your keyboard and the real world is connected. Source, compiler, linker, libc, a syscall, a tty, a font, photons. Two words, and every one of those has to cooperate.
Which is a pretty good description of shipping anything.
>/ hello world in the wild
The tradition mutates to fit whatever it lands on, and the mutations are great:
- On a microcontroller or an FPGA there is often no screen, so hello world is a blinking LED — it proves timing and wiring instead of text.
- In graphics it is the “Hello Triangle”, because getting one triangle onto the screen means the entire pipeline came up.
- In Haskell and Lisp, tutorials often reach for factorial instead, on the grounds that printing something is a side effect and we’ll have none of that, thank you.
- Debian and Ubuntu ship an actual
hellopackage. You canapt install hello. It exists to prove the package manager works.
>/ time to hello world
There is a real metric named after it — TTHW, time to hello world: how long it takes to get the thing to say the thing. It’s used as a rough proxy for how approachable a language or an API is, and it is a genuinely good one.
The record holder, and this is my favourite fact in computing: the first publicly known hello world in Malbolge — a language designed from the ground up to be as hostile as possible — took two years to appear. No human wrote it. It was produced by a search program written in Common Lisp.
And it printed HEllO WORld.
Two years, and the casing came out wrong. Frame it.
>/ ours
So: hello, world. 👋
Tellship builds custom commerce systems to spec and ships them with the source in your hands. You describe the outcome; we ship the system. This blog is where the things we learn doing that get written down — carrier pricing rules that don’t behave the way the docs imply, a migration that needed a different shape than the one we planned, a decision we reversed and the number that made us reverse it.
Working notes, not announcements. If a post doesn’t tell you something you could act on, it shouldn’t be here.
That’s the smoke test. Every layer connected, output reaching a screen.
It compiles. 🚀