Hacker News new | ask | show | jobs
by antonovka2 6024 days ago
I hope not. Between Protobuf and Thrift, I don't see the point of adopting a less efficient, even more niche NIH serialization format and RPC protocol.
2 comments

Might be different if there were already numerous libraries that supported it but honestly if the extent of it is support in four languages (plus a few more that support the serializer) it's probably not worth wasting the effort unless it differentiates itself substantially from the existing solutions.
Both protobuf and Thrift are designed exclusively around simple static type-checking with type-erasure. Neither support heterogeneous collections, much less discriminated unions or GADTs.

There are plenty of untaken vertices in the serialization-format hypercube.

Heterogeneous collections, discriminated unions, and GADTs can be implemented easily in either thrift or protobuf by leveraging inclusion of custom type-tagged messages/data.

However, while the encodings are absolutely sufficient to represent these data structures -- if you so choose -- my experience dictates that keeping serialized messages typed and as simple as possible is advantageous from the perspective of long-term maintenance and interoperability.

Of course you can implement custom type-tagged blobs, but that's not using thrift or protobufs -- it's your own nebulous SOAP-style bullshit.
They're not "blobs" if they are also protobuf/thrift messages themselves.
That's certainly cleverer, but it's still a nested user-implemented unsound type-system.