gRPC: The Bad Parts
41–50 of 230 posts
Re: gRPC: The Bad Parts
#42Something I didn’t see listed was the lack of a package manager for protos. For example if I want to import some common set of structs into my protos, there isn’t a standardized or wide spread way to do this. Historically I have had to resort to either copying the structs over or importing multiple protoc generated modules in my code (not in my protos). If there was a ‘go get’ or ‘pip install’ equivalent for protos,…
Re: gRPC: The Bad Parts
#43My biggest complaint with gRPC is proto3 making all nested type fields optional while making primitives always present with default values. gRPC is contract based so it makes no sense to me that you can't require a field. This is especially painful from an ergonomics viewpoint. You have to null check every field with a non primitive type.
The problem went away with all optional fields so it was decided the headache wasn't worth it.
Re: gRPC: The Bad Parts
#44Re: gRPC: The Bad Parts
#45Lolwut. This is what was always said about ASN.1 and the reason that this wheel has to be reinvented periodically.
Re: gRPC: The Bad Parts
#46I remember being surprised at how hard it was to read the source code for grpc Java. There's an incredible amount of indirection at every turn. This made it extremely hard to get answers to questions that were undocumented. It's a shame because I know Google can put out easy to read code (see: the go standard library).
Re: gRPC: The Bad Parts
#47Re: gRPC: The Bad Parts
#48My biggest complaint with gRPC is proto3 making all nested type fields optional while making primitives always present with default values. gRPC is contract based so it makes no sense to me that you can't require a field. This is especially painful from an ergonomics viewpoint. You have to null check every field with a non primitive type.
Required/validation is for application.
Re: gRPC: The Bad Parts
#49And a lot of these features arguably have a poor cost/benefit tradeoff for anyone who isn't trying to solve Google problems. Or they introduce painful constraints such as not being consumable from client-side code in the browser.
I keep wishing for an alternative project that only specifies a simpler, more compatible, easier-to-grok subset of gRPC's feature set. There's almost zero overlap between the features that I love about gRPC, and the features that make it difficult to advocate for adopting it at work.
Re: gRPC: The Bad Parts
#50I don't want to sound flippant, but if you don't want to learn new things, don't use new tools :D