Manifesto

A declaration of principles for epistemic computing

The Problem

Modern science runs on software. Climate models, drug simulations, brain imaging pipelines—all depend on millions of lines of code. Yet most programming languages were designed for business logic, not scientific reasoning.

The result? A silent crisis of reproducibility. Numbers flow through computations with no record of where they came from. Uncertainty vanishes the moment a measurement enters a variable. Confidence intervals are afterthoughts, calculated separately from the computations they describe.

"The first principle is that you must not fool yourself—and you are the easiest person to fool." — Richard Feynman

Our Principles

1. Uncertainty is not optional

Every measurement has uncertainty. Every model parameter has confidence bounds. Every prediction should carry its epistemic payload. A programming language for science must make uncertainty a first-class citizen, not an afterthought.

2. Provenance is non-negotiable

When a number appears in a result, you should be able to trace it back to its origins. Which sensors contributed? What transformations were applied? Provenance isn't metadata—it's essential scientific information.

3. Effects should be explicit

Functions that read from sensors behave differently from pure calculations. Functions that mutate state are different from those that don't. The type system should distinguish them, making side effects visible and controllable.

4. Units prevent disasters

The Mars Climate Orbiter was lost because of a unit conversion error. Patients have received incorrect drug doses for the same reason. A scientific programming language must track units of measure and prevent dimensional errors at compile time.

5. Confidence gates decisions

Not all data is equally trustworthy. Sometimes the right action is to wait for better data rather than act on uncertain information. Confidence-gated control flow makes this reasoning explicit and verifiable.

The Vision

We envision a future where scientific software is:

  • Honest: Uncertainty is always visible
  • Traceable: Every result can be audited
  • Safe: Unit errors caught at compile time
  • Explicit: Side effects are marked in types
  • Reproducible: Same inputs always give same outputs

Sounio is our attempt to build that future. It's not just another programming language—it's a new way of encoding scientific knowledge in software.

The Name

Sounio (Σούνιο) is named after Cape Sounion, the southern tip of Attica, Greece. There, the ancient Temple of Poseidon has watched over the Aegean Sea for 2,500 years. Sailors approaching Athens would see its columns on the horizon—a landmark of knowledge and civilization.

Like those ancient Greek philosophers who first formalized logic and mathematics, we seek to bring rigor to the encoding of knowledge. Like the temple that has endured millennia, we aim to build software that is built to last.

"Σούνιο — Where knowledge meets computation"