It's been asked a few times, here are some links to get you started:

* https://news.ycombinator.com/item?id=36370684

* https://news.ycombinator.com/item?id=30752540

* https://news.ycombinator.com/item?id=9896369 (Python specific)

Thank you!