OOL 的问题不在于 OO。

  • 文章是对 reboler Ratio 在关于对象创建的结论的文章中的一些评论的回应,该话题值得单独成文。
  • 作者在 20 世纪 80 年代初就开始涉足 OOL,曾在惠普参与 Smalltalk 的 alpha 测试,同时也在使用 MIT Lisp 机器编程。
  • 十多年来,作者是 OOL 的坚定信徒,在苹果 ATG 与来自施乐 Smalltalk 团队的人合作,推动软件设计中的 OO 更强模型,抵制 C++的引入。
  • OO 的纯粹形式是将行为与状态(函数与数据)相关联,起初看似不错,因为现实世界对象有特定动作,但实际上这是个错误模型,比如笔的书写和绘制动作并非笔本身的,OOL 不是完整的解决方案,对象的很多行为来自外部。
  • 十年后,作者得出 OOL 不是答案,更多是因为在实际应用中使代码更复杂难以创建、维护和改进,使用纯 OOL 会降低生产力,但使用 OO 概念则能使编程模型更清晰易理解。
  • 在当今编程世界,作者是异端,OOL 已根深蒂固于几乎所有现代软件中,但很少有详细成本分析支持其节省成本的说法。
  • Joe Armstrong 曾说 OOL 有隐含环境的问题,作者认为问题更深,OOL 在尝试封装行为时就会出现问题,导致类定义出现裂缝和分裂,而隐含环境(如 REBOL 中的上下文)是好的,是语言的基石。
  • 在 REBOL 中,对象是关于解释的上下文,希望环境围绕表达式,提高编程效率,作者认为 REBOL 不是传统意义上的 OOL,而是 OOP 实践的变体,更倾向于语言导向编程。
  • 还应链接 Eric S. Raymond 的旧文Unix 和面向对象语言
阅读 8
0 条评论