Protocol Buffers: An Amateur Disaster?
This article criticizes the design flaws of Protocol Buffers (protobuf), arguing that its type system is poor, its design is ad-hoc, and that it leads to a series of problems that permeate the code. The many restrictions of protobuf stem from its poor solutions to already-solved problems, lacking compositionality. Examples include the inability to repeat oneof fields, and various map field limitations. The article also criticizes protobuf's claims of hassle-free backwards and forwards compatibility, and how it pollutes codebases, making code difficult to write and maintain. The author argues that protobuf is only suitable for large companies like Google, not for most companies, and advises developers to abandon the use of protobuf.