对文学编程来说,能得到及时反馈,良好的交互方式都非常不错。但是跟ide之类的相比,工程化方面还是弱了些,比方说:生成可复用的模块化代码、文档检索、代码测试、代码导航、版本控制… 这样如果你使用 repl 或是 notebook,最后生成生产环境代码时,还得在ide上再搞一遍。
今天看了 fast.ai 的一篇博文,感觉这几个方面好像基本上都有不错的进展(至少对python而言)
https://www.fast.ai/2019/12/02/nbdev/
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!
nbdev 可以看作一个代码生成库,看了下文档 ,好像还具有模块化,依赖安装,测试,文档,代码导航等功能。代码模块生成应该是没啥问题,毕竟fastai库就是这么开发的,不知道其它功能现在实现的如何?
还有个比较好的方面是跟git的集成
不是只有脏兮兮的diff json文件了
还有跟微软他们一块搞的 ReviewNB,用来做 jupyter notebook 的 code review
唉,说这么多,其实是想要吐槽 ein 不够给力呀