News for hackers. Stuff that matters.
Re:The S stands for Simple by blasdel on Tuesday December 15, 2009 @07:14AM (#996319)
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.

Re:The S stands for Simple by antonovka2 on Tuesday December 15, 2009 @12:45PM (#996958)
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.

Re:The S stands for Simple by blasdel on Tuesday December 15, 2009 @04:38PM (#997501)
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.
Re:The S stands for Simple by antonovka2 on Tuesday December 15, 2009 @09:17PM (#997952)
They're not "blobs" if they are also protobuf/thrift messages themselves.
Re:The S stands for Simple by blasdel on Wednesday December 16, 2009 @01:36AM (#998246)
That's certainly cleverer, but it's still a nested user-implemented unsound type-system.