Hypothesis, a history

3 thoughts
last posted May 16, 2016, 4:22 p.m.
get stream as: markdown or atom

Hypothesis has approximately three discrete stages in its life so far:

  1. Silly little prototype.
  2. Fuck it, lets make this a real thing.
  3. Post-Conjecture implementation.

The origin story of Hypothesis was really that I just wanted to learn Python and needed to come up with a project to hack on in it. For some reason property based testing had been on my mind recently (I'd previously used ScalaCheck a fair bit), I looked around and the available Python options seemed... lackluster (I've since found paycheck which actually predates Hypothesis and is pretty good), so it seemed like an interesting choice of project.

It really shows in early Hypothesis that my progression had gone Scala -> Ruby -> Python.


Hypothesis 1.3 is probably the first version of Hypothesis recognisable as its modern incarnation. Previously it had a really weird API based on using values to describe types. So e.g. the value [float] described a list of floats.

This was cute but turned out to be a terrible idea. Describing things with simple function calls turns out to be far superior to doing cute but highly inflexible things like this.