Let's create!
TLDR: Let's create some tools, as a way to learn more about the topics involved
- “What I cannot create, I do not understand.”
— Richard Feynman - “Everything is vague to a degree you do not realize till you have tried to make it precise.”
— Bertrand Russell - 🎶“You can build a mountain,
if you do it brick by brick.”🎶
— Soundtrack for Lego Island
There are some extremely complex types of tools in this world, including:
Dear reader, let us try to create each of these things from a blank slate! In so doing, we will fail. But we will succeed in much learning.
We choose to do these things not because they are easy, but because we wish they were easy; and discovering how complex they are is part of the journey.
We will never get these megaprojects "completed", but we can keep taking on one slice of functionality at a time.
Other projects on the eventual roadmap include:
- Creating a Python interpreter in Zig
- Creating a terminal
- Creating a Postgres client library in Zig, with automatically-generated Zig structs based on your schema and queries
- Creating tooling for WASM-based web app servers
- Creating a sheet music editor
- Creating a utility for archives (
.zip,.warc, etc) - Designing a compression codec (competing with DEFLATE, LZMA, bzip2, etc)