Skip to content

Naming

NameRoleNotes
TyphonProject namePhonetic kinship with Python. The mythology lines up (Typhon is the serpent-monster of Hesiod, sometimes treated as the father of Python).
tycThe binaryThree letters, fast to type. Stands loosely for “Typhon compiler” by way of tsc (TypeScript compiler) and gcc.
.tySource file extensionThe shortest possible, distinct from .py.
.dtyStub file extension”D” for “definition”. Matches the .dy / .dts pattern of other stub formats.
typhon.tomlProject configConventional <name>.toml shape, alongside pyproject.toml rather than replacing it.
typhon_runtimeGenerated helper moduleThe single Python-side name we own. Underscore form is conventional Python.
tyc::*Diagnostic codesNamespaced by the binary’s name; stable across releases.

What we considered

A few alternatives that didn’t make it:

  • stricter — too generic, conflicts with established libraries.
  • pyx — .pyx is Cython’s extension.
  • spy — taken.
  • pytypeon — too long, lacks resonance.

PyPI namespace

The project ships as Typhon. Before committing, search PyPI for active “typhon” packages — a couple of dormant ones exist; none clash with documentation or import names we care about. We do not publish a typhon PyPI package (the runtime helpers are generated in-project).

Why not “Python++”

Two reasons:

  1. It’s not a superset. Some patterns require escape hatches; the language is stricter than Python, not a strict superset.
  2. Naming convention. Languages named “<base>++” tend to age poorly (C++ is the exception).

Where next