Handling a serialization scheme "generically" is the "wrong thing to optimize"?
Sounds like the #1 thing anybody would want from it...
Handling a serialization scheme "generically" is the "wrong thing to optimize"?
Sounds like the #1 thing anybody would want from it...
Tools like protobuf and thrift were designed to facilitate schema evolution since interfaces in these ecosystems evolve quickly and independently. Generics undermine this by creating strict dependencies on a few types, making it difficult to evolve a single type without breaking things.
Poorly implemented generics would undermine one of the design goals of this project. In addition, there aren't nearly as many opportunities for generics in an IDL as in a programming language, so what would the upside even be?
a) total SLOC for that logic is much, much less than SLOC for code that works with _specific_ protocol buffers
b) "consumers" of protocol buffers as a tool/technology mostly don't worry about what's going on under the hood of the generic serialization, etc. code
So it will often make sense to to make that core generic logic even significantly more complicated if it means making the stuff that everyone has to write over and over again even a little bit easier.