Polyglot Hello World ππ
This repo is my attempt to do something mildly unhinged but deeply satisfying: run Hello World in as many programming languages as possible, using a single, repeatable framework.
I fell down this rabbit hole after stumbling across the Hello World collection around the internet (see: http://helloworldcollection.de). One thing led to another, and I decided I didnβt just want to read these snippets β I wanted to execute every single one.
So here we are.
What this is (high level)
This project is a language-agnostic execution framework:
- One language definition file
- One code generator
- One command
- βHello Worldβ being invoked back at you
All isolated. All reproducible. All Dockerized.
What platforms does this work on?
If you can run Docker, youβre good.
- β macOS (Intel + Apple Silicon)
- β Linux
- β Windows (via Docker Desktop / WSL2)
The host OS doesnβt matter. Everything runs inside containers. Your system stays clean. Your sanity mostly intact.
How it works (the moving pieces)
Hereβs the architecture, from boring to fun:
βββββββββββββββββββ
β languages.tsv β β single source of truth containing language commands, Docker install and other relevant information
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ
β scaffold.cpp β β generates Dockerfiles, scripts, folders
ββββββββββ¬βββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββ
β language-specific Docker containersβ
ββββββββββ¬ββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββ
β run_all.sh β β one command to execute all languages
βββββββββββββββββββ
1. languages.tsv
A TSV file that does all the heavy lifting.
Each row defines:
- The language
- The base Docker image
- How to install whatβs needed
- How to compile / interpret
- Language specific script to run
Hello World
Add a row β get a new language.
2. scaffold.cpp
This is the factory.
It:
- Reads the TSV
- Creates a directory per language
- Writes Dockerfiles
- Writes run scripts
- Writes language-specific "hello world" script
- Keeps everything consistent
3. run_all.sh
The fun part.
This script loops through every generated directory and executes the program inside its container.
Result:
Hello World (C)
Hello World (Rust)
Hello World (COBOL)
Hello World (β¦why does this exist)
Over. And over. And over.
Why Docker?
Because the alternative is suffering.
Docker gives us:
- Isolation
- Reproducibility
- Zero dependency hell
- The ability to run Shakespeare without ruining your weekend
Which brings me toβ¦
π The Shakespeare Bounty
Yes. That Shakespeare.
The Shakespeare Programming Language technically supports Hello World.
Practically? It has defeated me.
π° Bounty: Eternal gratitude + public credit + bragging rights
If you can:
- Produce a working Shakespeare
Hello World - Integrate it cleanly into this framework
You win.
PRs welcome. Mockery optional.
Contributing
Contributions are very welcome.
Ways to help:
- Add new languages
- Improve existing definitions
- Clean up output formatting
- Fix the things Iβm pretending are βfeaturesβ
- Open an issue.
Roadmap / ToβDos
β Completed
- Core architecture
- TSV-driven language definitions
- Docker-based execution per language
- Single-command execution (
run_all.sh) - 50 languages supported
- Improve terminal output formatting (grouping, colors, etc.)
π§ In Progress / Planned
- Expand to 100+ languages
- Expand to 200+ languages
- Expand to 300+ languages (because why not)
- Generalize the framework so it can deploy any mix of programs, not just Hello World
- Better error reporting when a language inevitably breaks
- Optional parallel execution (for maximum chaos)
Final thoughts
This project is equal parts:
- Curiosity
- Engineering
- Self-inflicted pain
If youβve ever wondered βdoes this language actually work?β β now you can find out with a single command.
If you add something weird, wonderful, or cursed: thank you.
And if you solve Shakespeare⦠we need to talk.
β Joel
