Thrilled to discover nbdev from & . It's an attempt to solve a big problem with computational notebooks like Jupyter: you explore problems with a notebook, but usually need to "switch" to a more powerful tool for "real" impls:
Conversation
nbdev tries to solve this problem by giving you
- automatically turning notebooks into publishable Python modules
- bidirectional sync with plaintext .py for IDE usage
- fixes for other "real" project needs: tests, continuous integration, documentation export, conflict resolution
1
2
19
While nbdev seems focused on helping individual developers avoid the "switch" when implementing their own projects, I think layers like this could help solve a big problem with "executable books": the huge barrier for *readers* to build on embedded code to do anything real.
1
9
The fast.ai docs get at something pretty exciting, then. Like many notebooks, it contains narrative content which explains computational material and lets readers explore. But the executable book is *also* the implementation of a published production-level library
1
14
The narrative in those docs is a bit limited: it's more documentation than prose. "Deep Learning for Coders" is the expository text from the same authors, but it isn't made available in an executable context AFAICT. I think that could be really powerful!
1
4
(For more on these themes and on dreams of executable books, see numinous.productions/ttft/#executab)
2
3
22
My wishlist for exec. books:
– author did their "real thinking" in the authoring computational environment
– reading environment invites + supports meaningful experimentation/exploration
– book elements transparently and usefully reusable by author and readers in derivative works
4
16
Imagine if creating a derivative work was as easy as importing one notebook from another, or even importing it into normal non-notebook code... ;)
1
Replying to
I didn't realize the latter was supported from RunKit—very cool! Are you aware of any serious "executable books" published using RunKit?
Replying to
Depends what “serious” means — the goal is precisely to bring notebook style development to normal programming:
1. Tons of bugs filed using RunKit notebooks (no more “works on my computer”, always reproducible forever since packages frozen in time):
1
2. A huge amount of “notebooks” embedded in docs all over the web using RunKit embeds — interactive programming “as a service”. Why ask users to imagine code behavior when they can run it on a real Linux server in the docs:
expressjs.com/en/starter/hel
Docs: runkit.com/docs/embed
2
Show replies

