问候。我现在一直在看文学编程,我确实喜欢它背后的想法:你基本上写了一篇关于你的代码的小论文,并写下尽可能多的设计决策,代码可能围绕模块,内部工作由设计决策、潜在扩展产生的模块、假设和结论,所有这些都可以使用 tex 以一种很好的方式写下来。当然,第一点:它是文档。它必须保持最新,但这不应该那么糟糕,因为你的改变应该有一个理由,你可以把它写下来。
但是,文学编程如何在更大程度上扩展?总的来说,文学编程仍然只是文本。当然,文本是人类可读的,但仍然是文本,因此很难遵循大型系统。例如,我修改了编译器的大部分以使用 >> 和一些魔法将编译步骤链接在一起,因为一些 "x.register_follower(y); y.register_follower(z); y.register_follower(a);... " 变得非常笨拙,将其更改为 x >> y >> z >> a 使它变得更好一些,即使这也处于临界点。
那么,文学编程如何扩展到更大的系统?有人尝试这样做吗?
我的想法是使用 LP 来指定使用事件流相互通信的组件,并使用 graphviz 的子集将所有这些链接在一起。这将是 LP 的一个相当自然的扩展,因为您可以从网络中提取文档——数据流图——并且还可以很好地从中生成代码。你怎么看呢?
——特萨。