对象尚未失败

主要观点:

  • 对象编程取得成功,有大量开发者使用 Java、C#等对象编程语言,其主要优势是能鼓励状态的抽象和封装,是现实世界实体的良好模型。
  • 过程式编程注重程序流程,数据声明分散,需仔细文档化;对象编程将数据与相关代码集群,需仔细文档化方法和接口,但数据结构可更智能。
  • 三十年前后编程方式变化,对象编程部分价值在于添加新方法接口难但创建新对象类型易,过程式编程则相反。
  • 如今实践中,引入新通用对象类型比新通用方法更常见,这是对象编程成功的原因之一,也减少了程序维护的工作量。
  • 过程式和函数式编程的弱点在于其观点假设输入到输出的过程,在高度交互分布式环境中失败,而对象编程起源于模拟交互实体行为,已成为主导模型。
  • 对象编程未解决所有问题,但不能因未解决所有问题就说其失败,它像钱一样重要。
  • 理想主义者可能对当前对象编程艺术状态失望,C++虽号称提供对象模型但实际并非如此。

关键信息:

  • 2002 年北美开发者调查数据显示多数开发者使用 Java、C#等,且数量预计明年增加。
  • 1975 年 Fred Brooks 和 1997 年 Eric Raymond 的相关言论及对其在不同语言中的解读。
  • Scheme 语言尝试用简单术语阐述对象编程,后 Scheme 和 Common Lisp 增加对象编程设施。
  • 作者 20 多年前关于对象编程价值的观点及与过程式编程的对比。
  • 现在对象编程在处理大量计算机连接形成的网络环境等方面的优势及不足。

重要细节:

  • Evans Data Corporation 的 2002 年北美开发者调查具体数据,如超过一半开发者使用 Java,约 1/7 使用 C#等。
  • Fred Brooks 在《The Mythical Man-Month》中关于流程图和表格的言论及 Eric Raymond 的相关 paraphrase 及其在不同语言中的应用。
  • 作者在《Lambda: The Ultimate Declarative》中对对象编程价值的阐述,包括添加新方法和新对象类型的难易程度。
  • 说明对象编程未解决的问题,如未提供多态类型抽象和语法抽象,以及过程式编程仍有其用武之地。
  • 对 C++的批判,指出其实际数据模型与 C 相同,对象模型存在漏洞。
阅读 13
0 条评论