Hacker News new | ask | show | jobs
by jahewson 893 days ago
I used protobufs for a short while and came to the realization that they’re just Go’s opinionated idioms forced on other languages via awkward SDKs. Particularly did not like having to use codegen, rely on Google’s annotations for basic functionality or deal with field masks that are a sort of poor man’s GraphQL.

I get it, Google made trade offs that work for them, and I agree with their position - but for someone at a smaller company working in a non-Go/Java/C programming language it was just a ton of friction for no benefit.

3 comments

protobufs have been around a lot longer than Go
Annotations are somewhat cursed agree. The code generation part does not have to be painful though.

In fact, the tooling in Go isn't even an example of the easiest way to do it and requires you to do more steps than for example .NET where getting server boilerplate, fully working client or just generated POCO contracts from .proto boils down to

    dotnet add package Grpc.Tools
    <Protobuf Include="MyApiContracts.proto" /> (in .csproj)
Are you old enough to remember SOAP? Is this drawing any “history repeats” sentiments for you?