熟练使用文学编程(literate programming)是怎样一番体验? - 知乎
然后有人戳了俺...
有关文学化编程¶
以及相关链接,
有关使用 Leo 进行文学化编程, 参考: - 幻灯: 啄木鸟/CPUG 会课06年度第九次 (built by S5) ; 131101-leo-china - 录音: cpug_2006_07_30_01.ogg + Index of /CPyUG/100716-Leo-LiterateProgramming {gen. by gen4idx.py v13.4.18} - 录像: Leo 创始人 令德华的演讲 - PyConChina2013-Leo-final-v2
俺知道 文学化编程是在 2005 年,开始使用 Leo 尝试进行 文学化编程则是到了 2006 年, 之后,一直尽可能的使用 Leo 作为主要的编辑/编程环境; 其它包含 Emacs/Vim 中都有 文学化编程扩展, 不过, 俺一直没有用起来,所以,俺的体验比较偏激; 在 Leo 中俺进行过各种语言的编程包含:
- php
- css/js
- xslt
- python
- golang
- ...
总体上¶
对比各种 IDE 或是 subl 中的编程体验, 简单的说:
随心小累
随心¶
- 目录/文件/模块/函式/代码块/片段/配置/测试数据.... 一切都在一个界面中可以快速编辑
- 保存到哪儿也只是一行声明的事儿
- 所有代码的 提纲结构, 就是我对程序的理解, 完全无视所有语法结构,可以任意随手设定
- 无论何时回到思考场景,上次对程序的思考进展都以 提纲节点树的形式存在着
- 同时, "混出" 的代码又完全干净, 标准的代码文本, 不影响任何环境中的运行
小累¶
- Leo 是 纯 Python 编写的编辑环境, 加载/迁移都有点小麻烦
- 而且没有很多现代 IDE 的各种自动化功能, 就连语法颜色也无法 0配置的完美表达各种语法单元
- 最累的是和团队其它成员协同时, 其它人都是线性编辑环境,只有俺是多维表述的 文学化编程
- 所以, 有代码修订合并时,俺都要手工合并差异,以免破坏了俺的程序表述结构.
是也乎¶
其实,无论俺怎么分析/回答/解释, 都无法替代大家自行去体验, 文学化编程, 是真正的将思维对应到代码内在结构上, 而不是语法结构, 这对程序员而言,是种极大的解放.
Changlog¶
- 141209 受邀回答
Comments