Jupyter is great for interactive computing, letting you test, experiment, and iterate easily. But what then? How do you turn the results of your journey into code that others can use, or into a publication?
This is where nbdev and fastdoc come in. nbdev turns your notebook into a complete packaged python library, and fastdoc turns it into a publication quality book.
Nbdev is a system for something that we call exploratory programming. Exploratory programming is based on the observation that most of us spend most of our time as coders exploring and experimenting. We believe that the very process of exploration is valuable in itself, and that this process should be saved so that other programmers (including yourself in six months time) can see what happened and learn by example. Think of it as something like a scientist’s journal. You can use it to show the things that you tried, what worked and what didn’t, and what you did to develop your understanding of the system within which you are working. During this exploration, you will realize that some parts of this understanding are critical for the system to work. Therefore, the exploration should include the addition of tests and assertions to ensure this behavior.
With Nbdev and fastdoc, exploratory programming can be used to create complete books and software projects.