主要观点:
- “面向对象(OO)”概念定义不清晰,不同人对其有不同理解和定义。
- 列举了与“对象”和“OO”相关的一系列特征或属性,如封装、保护、多态等。
- 指出 C/C++ 人士和 Lisp 人士对 OO 的看法不同,前者视其为从无一等函数世界的解放,后者视其为限制。
- 强调在讨论 OO 之前需先达成定义共识,否则易引发争论。
- 以 Simula 67 类模式为例说明常见的 OO 形式,同时指出 OO 是个动态目标,OO 狂热者会随意选择子集来试图说服他人。
- 对不同语言(如 Java、Lisp 等)的 OO 特性进行分析和比较。
关键信息:
- 详细阐述了 9 个与 OO 相关的特征,如封装(隐藏类型实现)、保护(防止客户端检测实现)等。
- 提及不同语言(如 Java 有{1,2,3,7,8,9}特性,Lisp 有{4,5}等)的 OO 表现。
- 介绍了不同人对 OO 的定义,如 Abelson 和 Sussman 认为 Lisp 是 OO 等。
- 讲述了与 e-lang 列表上关于反 OO 讨论的相关内容及自己的观点。
- 对 Scott McKay 的回应,澄清自己观点及指出术语情况的糟糕。
重要细节:
- 说明在某些语言中“调用”可柯里化,关键到方法的映射有时可在编译时完成,这会影响 C++及相关语言中 OO 的讨论。
- 提到自己在不同场合对 OO 的看法及实践,如在 Scheme 实现中使用 Simula 式的 OO 技术等。
- 指出只有有 Lisp 和学术背景的人才会认真对待 Lisp 和 Actors 的定义。
- Paul Graham 放置了此消息的第一部分链接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。