Literate_Programming_book_cover

熟练使用文学编程(literate programming)是怎样一番体验? - 知乎

然后有人戳了俺…

有关文学化编程

参考:LeoEnvironment

以及相关链接,

有关使用 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

comments powered by Disqus

© Copyright 2014 by Zoom.Quiet
Content licensed under the Creative Commons attribution-noncommercial-sharealike License.
Contact me via , mail ,github or bitbucket . Tip me via gittip . (feed)