Protobuffers可能是错的

18-10-11 banq
         


有人质疑谷歌鼎鼎大名的Protobuffers,它是一种快速序列化协议,主要是从学术角度质疑其类型设计教条,很多设计只是为了让其工作而设计,没有深刻哲学背景考虑,当然这个观点引起很多争论。

'我认为protobuf被设计为快速序列化,并且通过不太复杂的组装或C或Go来实现低占用空间。所有的权衡都是正确的。'

'快速序列化,并且有优于protobufs:
* cap'n proto https://capnproto.org/

* flatbuffers https://google.github.io/flatbuffers/

* hdf5(用于机器学习/数值分析/财务)https://support.hdfgroup.org/HDF5/

有许多设计选择似乎与Google运营的规模和复杂性直接相关,并且牺牲了安全性,清晰度和语言集成。
Protobuf生成的代码的完全尴尬特别成问题。我用TypeScript代码生成器得到了相当不错的结果,但是Go生成器非常糟糕。没有办法编写一个客户端或服务器直接使用Protobuf结构作为一流的数据类型

         

1