The Python Family of Languages

May 3, 2023

Python is everywhere. A list of supersets, subsets, major implementations, and transpiled languages that borrow from Python.

Python “Supersets”

Cython: Superset of Python that lets you write C extensions. Python-like syntax, static typing, and direct C API access.

Hy: A Lisp dialect that embedded in Python. Transforms Lisp code into a Python AST.

Mojo: A new Python superset that seems to integrate with Cython and provide more extensions to target accelerators.

Stackless Python: A modified version of the Python interpreter that supports lightweight concurrency that avoids adding a new frame to the call stack for every function.

Python “Subsets”

RPython: A subset of Python used to write the PyPy interpreter. Statically typed and has some restrictions. It can be translated to C.

Skylark (Starlark): A dialect of Python used as the configuration language for the Bazel build system. Syntactically a subset of both Python 2 and Python 3.

Pythran: Ahead-of-time compiler for a subset of Python with a focus on scientific computing.

Numba: JIT compiler for a subset of Python and NumPy code.

MicroPython: A subset that aims to efficiently implement Python 3 for microcontrollers and other constrained environments.

CircuitPython: A fork of MicroPython geared at educational use cases (e.g., RaspberryPi, Adafruit).

TorchScript: A subset of Python used to create serializable and optimizable models from PyTorch code.

Python Implemented in Other Languages

Jython: Implements Python in Java, running on the JVM. Mainly used to embed Python in Java as a scripting language.

GraalPy: Like Jython, but targets the GraalVM.

IronPython: Implements Python in .NET.

RustPython: Implements Python in Rust.

Languages that compile to Python

Coconut: A functional programming language that compiles to Python. Any valid Python code is valid Coconut code.

MakrellPy: a general-purpose, functional programming language with two-way Python interoperability, metaprogramming support and simple syntax.

Languages that compile Python to something else

Brython: Python 3 adapted to HTML5 and the DOM. Use Python inside script tags. Converts Python into JavaScript.