双刃剑

“序列化”还是“串行化”?“刀”还是“单刃剑”?

青润发了一篇很有意思文章:专业词汇需要严谨的分析——Serializable到底应该是串行还是序列,较真的精神是让人非常佩服的,我也赞同Serialization应该翻译成“序列化”的观点,理由与清润的类似“串行是一个固定顺序过程的展示,这个固定顺序过程是公认的已知的,不应该是自行设计的”。不过,我更有兴趣的是,serialization为什么应该翻译成“序列化”?又为什么被错误翻译成“串行化”?在我看来,这个问题,凸现了翻译中的困境。 回到Serialization的问题,前不久我也翻译了一篇关于Serialization的文章:发掘Java Serialization API中的秘密,本来serialize想当然就是“序列化”,专有名词嘛,中间却遇到一个词非常难翻译:flatten。原文是这样的: 靠对象的序列化(serialization),你就能把对象flatten,用各种神奇的方式重用。 一直以来,我都觉得“序列化”是一个专用词,指把对象转换成二进制数据的过程。但是,flatten的意思分明是“打扁”嘛,难道把对象“打扁”到磁盘上?再看下面的句子就明了了: the object can be flattened into bytes and subsequently inflated in the future 原来,flatten的意思就是:不管之前的对象有多大,多神奇,它总可以“还原”成一个个的字节排列成的“普通”字节流——就好像一栋大楼,不论多高多漂亮,最后总是能“拆散”成基本最原始的建筑材料,整齐地码好。…

15 years ago