Raymond, you have mastered a magnificent balance of technical expertise and clear/concise communication. Love your talks and conferences man, I’ve learned so much!
Hmm, its so easy to use Hy to convert those doctests into temporary static types so that you can use mypy. The algorithm is simple, when you see a list in a doctest it stands for a Sequence, when you see a set its an UnorderedSequence, when you see an integer it stands for a Number, when you see a float it stands for a float, when you see a str it stands for a str, when you see an Object it stands for Object (if you set the __astype__ attr in Object and it uses that type instead of the object), when you see a dict it stands for dict. What do you guys think? Also mypy should have IDE intergration where it tells you what type it thinks something is.
cutting and pasting from the interactive prompt to the docstring is all well and good unless you've spent an entire afternoon trying to get an up-to-date (YouCompleteMe-compatible) build of Vim installed, and configuring the makefile to turn on "paste from system clipboard" has entirely defeated you
It's not reimplementing. You implement constraints over them. The example in the talk was a quadratic equation solver. The code finds the equation roots, but the testing plugs those roots back in and sees that they output near-zero. I have a different example: if you're implementing an encode -> decode pair of functions, then you can test that decode(encode(x)) == x. Or you can test that no matter what input you get, your function does not crash (by simply calling it). It's implementing "constraints", not re-implementing the code.