Explicit intent
Name what’s missing and why. Holes carry their description everywhere — in your editor, at runtime, and in your logs.
General-purpose programming languages aren’t optimized for the tight feedback loops that prototyping requires. You’re forced to choose between working code and incomplete code — but Holey lets you have both.
A hole is a first-class placeholder: explicit, trackable, executable, and evolvable. Unlike a // TODO comment that silently disappears, or a throw new Error() that crashes unexpectedly, hole() makes incompleteness visible at every stage of development.
Explicit intent
Name what’s missing and why. Holes carry their description everywhere — in your editor, at runtime, and in your logs.
Always executable
Programs with holes still run. Provide a temporary implementation or let Holey handle it — the choice is yours.
Tracked automatically
Holes surface as diagnostics in your editor, creating a living checklist of what still needs to be done.
Evolvable
Start with a hole, refine it into a real implementation. Holey grows with your code.