寓言
商会旗语和航海通行规约,两本不同的书
东海沿岸有一片繁忙港口。南港大商会在二十年前定了一套旗语——红白旗报船名,黄蓝旗报货物,绿旗请求靠岸。商会的船只在南港进出自如,旗手挥得行云流水,码头工人看一眼就知道怎么接。
北港来了一个航商,他读过一本航海通行规约。规约写得很厚,规定任何船只进入任何港口时,应该报身份、载货类型、船员人数、请求意图和紧急状态,但不规定用什么旗、什么颜色、什么手势。商船到了南港,按规约用通用文字报了身份,南港旗手愣住——他们只认红白旗。
商会的人先解释,旗语不仅仅是颜色,它规定了不同货类的排列次序、靠岸优先级和交接确认方式。规约没有这些。北港的航商反过来问:如果船去了另一个只用法语报文的海港,旗语跟谁对接?旗手沉默了。
两边的争论升级过。有人说旗语就是标准,因为南港用得最多;有人说规约才是标准,因为它不绑任何港口。一个跑远洋的老船长在码头上发了一句话:这不叫标准之争,你们一个是这港口的语言教材,一个是所有语言都必须覆盖的目录。
老船长画了一张表。旗语解决的是两个智能体互相看见时该说什么;规约解决的是两个智能体即使没见过面也该知道如何互相介绍。旗语的好处是具体——交换的参数、确认码、回执格式都定好了;规约的好处是抽象——跨生态时不用重写整个协议层。
最麻烦的情况出现在混合船队。商会的船和北港的船一起出海,需要在海上互通货物变更信息。商会船先发旗语,北港船没挂相应旗帜;北港船按规约发了报文,商会船的系统不支持报文格式。最后两艘船中间多了一艘传递船,用人工翻译。
后来港口做了一个转译层,把旗语转成规约格式,再把规约格式解码给北港船。这个转译层成了整个港口的技术债——每次旗语修订,转译规则就要调整;每次规约加新字段,转发船就要补逻辑。老船长说,你们选了最快的路,但没选最长的路。