知识卡片

CORBA错失统一RPC良机败于设计过度复杂

普通读书笔记卡

内容

CORBA本来握有统一RPC领域的最好机会:它是国际标准组织牵头制定的规范,同时 支持跨系统、跨语言(末代3.0版本支持C/C++/Java/Python等主流语言,还覆盖 Lisp/Smalltalk/COBOL等非主流语言),当时唯一能与之抗衡的只有受限于操作 系统的微软DCOM。但CORBA最终没能统一RPC,败因不是生态弱,而是设计本身 过度复杂:写一个核心概念”对象请求代理”(ORB)大概要200行代码,其中约170 行是纯粹无用的模板代码;同时规范制定者逐渐脱离工程实践,导致各厂商对同 一份规范的实现互不兼容——一个号称”支持众多异构语言”的标准,实现层面却 连自己的多个实现都无法互通,这是对它自身卖点最大的讽刺。这揭示了一个可 迁移的教训:一个标准/协议要真正统一某个领域,光有权威背书和理论完备性 不够,实现成本和规范的可操作性同样是决定性因素——过度复杂的规范会在 “落地一致性”这个环节反噬掉理论上的优势。

参考来源

- 位置:《凤凰架构:构建可靠的大型分布式系统》第2章"访问远程服务"2.1.4节 "统一的RPC"(源文件:_epub-src对应OEBPS/Text/chapter17.xhtml) - 结论依据:原文引用CORBA首席科学家Michi Henning对"200行代码170行废话"的 批评,并指出规范专家脱离实际导致各家实现互不兼容,最终与DCOM一同被扫进 历史博物馆,直接支撑"设计过度复杂导致CORBA错失统一良机"这一结论。 - 原始内容:写一个对象请求代理(ORB,这是CORBA中的核心概念)大概要200行 代码,其中大概有170行都是纯粹无用的废话……为CORBA制定规范的专家逐渐脱离 实际,使得CORBA规范晦涩难懂,各家语言的厂商都有自己的解读,导致CORBA 实现互不兼容。