Do other libraries talk as much about when they are and when they aren't appropriate to use? Do they link to alternatives? Do they link to bad experiences with their own software?
Edit Even the links to "When you should use hypermedia" and "Alternatives" you provided literally work backwards from that predefined conclusion, and there's no time in the world to go through each of them to dissect them, but the post I linked to should provide enough context
"HTML is the only true hypermedia" would be a funny conclusion for me to come to when i included another hypermedia, hyperview, in the book that I wrote on hypermedia:
EDIT: did you take this statement on twitter seriously: "yes, I believe HTML is the Only True Hypermvedia"? I was being sarcastic (making the same point I made above) so maybe this is a language issue? I'll read your blog and respond in a bit...
I think that a large part of the disagreement we seem to have is language related. I do NOT believe that HTML is the only hypertext: my inclusion of HXML as a mobile hypermedia format confirms that I do not believe this. In the tweet linked in your essay I am being sarcastic and pointing out HXML as the counter argument to it, I apologize if that was not clear to you.
Your essay is, as you say, meandering & at times incoherent, so I will try to clarify and address specific issues in it as best I can.
You mention that clients can interpret non-hypermedia files (such as Java classes) contextually and provide actions related to the content. This is of course true and I don't disagree with it. I do NOT believe that a hypermedia system is defined solely due to a hypermedia format (and, again, I do not believe that HTML is the only hypermedia format). Markdown, for example, is a (limited) hypermedia format imposed on top of plain text. When combined with a client that understand Markdown it forms a hypermedia system.
> If your custom non-standard XML DSL is hypermedia, then everything is
This section is very difficult to parse. I did not create HXML, however I do think it qualifies as a hypermedia format due to the presence of hypermedia controls. And I agree that the hypermedia client for HXML is just as important as the format itself in creating a mobile hypermedia system.
I also want to stress that I think you can impose a hypermedia format on top of JSON. You offer some examples and another one I'm familiar with is Siren (https://github.com/kevinswiber/siren). This is analogous to how HTML imposes a hypermedia format on top of SGML, or HXML imposes a hypermedia format on top of XML. As you rightly note, that isn't enough however: you also need a hypermedia client that understands that format and can present non-linear actions to a user.
You seem very focused on the idea that I think only HTML is a hypertext. I want to stress again that do not believe this to be the case, that appears to be a language misunderstanding.
Finally, we have this:
> Hypermedia, as Roy Fielding himself says, is the property of a machine talking to another machine using a media type both understand. The media type aka format itself doesn't matter as long as both machines understand it. Even presentation of controls to the user is a secondary concern and can be performed by the machine as it sees fit. Because, once you've unwrapped the contortionist back into their human shape, hypermedia is a property of the client.
This conclusion is contradictory.
"A machine talking to another machine using a media type both understand" makes the effective use of hypermedia a property of both the client and the server (both machines).
I agree strongly with that conclusion, drawn directly from your own words, which is why I titled my book Hypermedia Systems rather than, say, "HTML is the only hypermedia format".
Do we?
https://htmx.org/essays/when-to-use-hypermedia/
https://htmx.org/essays/#on-the-other-hand
https://htmx.org/essays/alternatives/
Do other libraries talk as much about when they are and when they aren't appropriate to use? Do they link to alternatives? Do they link to bad experiences with their own software?