jupyter 文学编程 use Jupyter Notebooks for everything


#1

对文学编程来说,能得到及时反馈,良好的交互方式都非常不错。但是跟ide之类的相比,工程化方面还是弱了些,比方说:生成可复用的模块化代码、文档检索、代码测试、代码导航、版本控制… 这样如果你使用 repl 或是 notebook,最后生成生产环境代码时,还得在ide上再搞一遍。

今天看了 fast.ai 的一篇博文,感觉这几个方面好像基本上都有不错的进展(至少对python而言)

nbdev is a library that allows you to fully develop a library in Jupyter Notebooks, putting all your code, tests and documentation in one place. That is: you now have a true literate programming environment, as envisioned by Donald Knuth back in 1983!

https://nbdev.fast.ai/

nbdev 可以看作一个代码生成库,看了下文档 ,好像还具有模块化,依赖安装,测试,文档,代码导航等功能。代码模块生成应该是没啥问题,毕竟fastai库就是这么开发的,不知道其它功能现在实现的如何?

还有个比较好的方面是跟git的集成

不是只有脏兮兮的diff json文件了

还有跟微软他们一块搞的 ReviewNB,用来做 jupyter notebook 的 code review

唉,说这么多,其实是想要吐槽 ein 不够给力呀


#2

我现在用Emacs Jupyter了,感觉比ein好用得多

比网页版的notebook损失了动画和交互,只能输出静态图片,但是好处是可以用org-mode