Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

My SPy Book

This is a collection of notes about SPy, a new programming language created by Antonio Cuni.

About these notes

These notes are written by Pierre Augier, a CNRS researcher in fluid mechanics at LEGI (Grenoble, France). They represent an independent evaluation of SPy, unaffiliated with the SPy project or Anaconda, who funds Antonio Cuni’s work on the language.

The goal of this book is to better understand the future of Python for scientific computing, and the role SPy could play in it. A specific motivation is the long-term sustainability of FluidDyn, a collection of open-source Python packages for computational fluid dynamics research that I created and maintain. I also maintain PyFFTW and am one of the founding members of the Python CNRS working group and the py-edu-fr project.

Why SPy matters

I believe SPy is one of the most important recent ideas for the long-term sustainability of Python — and I want to be transparent about why.

Python and its ecosystem have deep structural issues that cannot be addressed by working on CPython alone. Meaningful improvements require changes both to CPython and to the broader ecosystem. I presented these ideas at PyConFr 2025.

SPy has the potential to become a better Cython, a better Pythran, and a better RPython. Unlike those tools, SPy is a true independent language with a clean compilation pipeline, a good typing system, an interpreter, and a debugger. Beyond that, a mature SPy could:

SPy therefore has the potential to become a clean and comprehensive answer to most of Python’s structural issues. In my humble opinion, SPy is the companion static language that Python needs.

Why look at SPy now?

SPy recently reached an interesting milestone. It is still in alpha, but it can already be tried by standard Python developers to do real things. SPy is starting to look like Python in many respects, with support for dicts, lists, tuples, for/while loops, and classes (actually structs). It now also supports simple I/O operations, program arguments, and return values. Moreover, part of SPy’s own development can now be written in SPy itself, using relatively simple, idiomatic code. This is therefore a good time to get interested in SPy — and of course to star the project on GitHub (learn why it matters).

Contents

The first note, SPy: a vision for its impact on the Python community, is a position piece on the broader impact a mature SPy could have on the Python ecosystem — I encourage Python enthusiasts to read it and to contribute to building a stronger SPy together.

The remaining notes cover SPy’s architecture and internals, the role of key technologies such as WebAssembly, and comparisons with other languages including C++, Mojo, and Rust.