> Take, for instance, web APIs. It's barely usable nowadays.
Pretty much every app we use, system integration, anything really that has to communicate with third-parties, is driven by web APIs. If you think that they are barely usable, then I don't know what usable means to you.
> We badly need commonly accepted standards and decentralized protocols
Maybe , but there's a bunch of protocols today that make everything work quite nicely:
* authorization/delegation between third-parties: OAuth
* identity: OpenID Connect
* data exchange format: JSON and many other media-types like XML, protobuffers, messagepack etc.
* presentation layer format: HTML5
* data schemas: JSON-Schema, GraphQL, RDF...
Integrating decentralization stacks with these technologies is totally possible, and that's what, e.g. Solid is trying to do: https://solidproject.org/developers/tools/
The desire to "start from scratch" and invent new protocols for "web3" is understandable, as the OP mentions in the blog post... but that's highly unlikely to be the best way to go about it, and inventing new technologies and throwing away all of the experience we've gained over the first few decades of Internet history is bound to fail everytime, IMHO.
> Imagine if you had to write a special browser every time you need to connect to a new website. But this is what already happens with APIs.
Well, browsers only work because they are user agents. If your API required an user agent, it would not need a special client: just assume a user-agent is on the other side and it will work exactly was with any website. However, people seem to think it's possible to automate any API like that: that's patently false. Have you tried to use REST as it's actually meant to, with hypermedia-driven discovery, zero-knowledge clients which only need to be pointed at an URL and nothing else, to implement your common backend-to-backend interactions? Do you think it's even possible to do it?
I am currently working on something on those lines, but when you think a little bit about that, you quickly realize clients need to be written specifically to know what to do with the data they are given in a pretty hard-coded way. Until we have "intelligen" clients that can think like a human , only user-agents can benefit from hypermedia-driven flows, which explains why only browsers (and a few special-purpose user applications that are analogous to web browsers, but for very specific domains) are designed on those lines to this day.