The Zen of SymPy

Leonid Kovalev edited this page Dec 30, 2017 · 7 revisions
Clone this wiki locally

We all know about the Zen of Python (if you're not familiar with is, go and type import this in an interactive Python session right now). I saw that Travis Oliphant, the inventor of NumPy, wrote a "Zen of NumPy" on his blog. So I thought I'd give a shot at writing a "Zen of SymPy". This is still a work in progress. Feel free to add, modify, reorder, or delete items from it. Some of these perhaps apply more to developing SymPy than using it.

Unevaluated is better than evaluated.
The user interface matters.
Printing matters.
Pure Python can be fast enough.
If it's too slow, it's (probably) your fault.
Documentation matters.
Correctness is more important than speed.
Push it in now and improve upon it later.
Coverage by testing matters.
Smart tests are better than random tests.
But random tests sometimes find what your smartest test missed.
The Python way is probably the right way.
Community is more important than code.