个人粗浅的体会。
函数式编程——无机化学。
面向对象——有机化学。
面向接口(自创概念),包括泛型、元编程和“开放平台”(互用、可移植、整合问题)等:高分子化学。
函数式编程基于Lambda Calculus,本质上是无状态的,句发再复杂或变幻都可以直接对应机器层面,连续体(continuation)这种概念等同于goto。它是计算的基础,编程的源头。
面向对象本质上是有状态的,喜欢大规模组合,像有机反应一样,生成新产物与反应物常常有很多共有的功能团,看起来也相似,而不是无机化学那样脱胎换骨。
面向接口很玄,正如高分子的“高”,内部构造常常靠猜,某种新材料随便加点什么都能得到新效果,但使用起来常常不如传统材料。