TCP is binary. TLS is binary. QUIC is binary. Casual developers are not locked out of them.
If a developer is casual, they won't care about the binary details. They will just call a function and get a JSON blob out of it. I think the insides can be binary and the API can be JSON and we can have both.