Grey
全部学习内容汇总: GitHub - GreyZhang/g_org: my learning trip for org-mode
1837_emacs中使用org-mode管理代码功能简述
使用org-mode可以支持文学式编程,让代码以及文档合二为一。设计的过程中,不再是考虑“我们要设计一个XX功能的计算机”的问题,而是转换为“我们希望计算机做什么”的思考模式。
相比于传统的设计模式,文学式编程更容易理清需求以及设计的思路以及设计理念。并且,可以让代码以符合人类思维的方式存在于org-mode的文档当中。即使初始的设计可能会多花一些时间,但是随着时间的进行,文学式编程在可维护度上的优势应该是可想而知的。
org-mode与代码管理
从网络上的一些介绍资料看,使用org-mode应该是完全可以体验到完整的文学式编程理念的。之前,我也用过这个尝试过简单的demo,也从这里面生成果代码以及文档。至少,从工具链支持的功能上看得出来路子还是能够走得通。
org-mode中的代码管理是比较复杂的,如果是文学式编程的话恐怕也只能算是org-mode功能的一个子集。因此,我只是算是通过之前的尝试窥豹一斑,但是依然没有掌握完整的使用方式。
如果有人已经熟悉了其他的文学式编程的工具以及体验,我相信切换使用org-mode应该是很容易的。毕竟,自己期待的框架已经有一个预期,画竹之前已经成竹在胸。但是我只是知道这个编程模式有优越之处,但是没有实战的操作经验。因此,在工具以及工作流的摸索上都得做出一些全新的尝试。
这么考虑,看看org-mode的文档已经是很值得去考虑的一条路了。
实际探索体验以及效果
找到了一个org-mode管理代码的一个综合介绍链接: Features Overview (The Org Manual)
内容不多,但是有一些启发性。按照不通的内容点拆分成两块整理一下。
代码的管理支持编译、执行、提取、导出等不同的操作。这些之前我还是做过尝试的,至少是在提取以及导出上做过尝试。这些基本的操作应该基本上是可以满足我对初期文学式编程体验尝试的需求的。
这里给出来了更多的描述,做一个条目化的整理如下:
- 如果是进行代码的编译,在org-mode中是支持通过配置指定编译器的。
- 编译器的生成以及执行结果等,都可以嵌入到org-mode文档当中。
- 除了代码相关的内容,还支持图片以及影音格式的文件嵌入。
- 编译出现的警告也能够跟原始的代码产生直接的链接关系。
- 支持多语言混合,并且代码块、代码块的运行结果等各种数据之间可以引用或者交互作用。
- 上面的这种混合模式,在org-mode中被称为 Org Babel 的功能。这种功能,不仅是支持了文学式编程,而且还扩展了可重现研究的支持。
小结
从上面的总结看,其实给予org-mode不仅仅可以实现开发以及编辑,而且可以集成整个工作流的全部环节。而影音等导入链接等功能,其实算是一个网页类交互的一个体现,这样的呈现方式能够给人非常友好的交互。
这里面的功能,已经超出了文学编程预期的功能。而且扩展了更多的可能性,比如在此基础上增加了对于运行测试等研究类的结果的追踪。而可重现研究的支持,就是基于这样的功能。这样的功能,呈现给大家的不仅仅是一个文档与代码能够做到完美的一致。而且支持支持了整个研究过程以及演绎分析过程的重现。
基于上面的信息的整理以及思考,看起来后续的文学式编程、可重现研究以及org babel,都应该是日后需要研究的主题。