← Back to context

Comment by monooso

6 hours ago

> Hypermedia is what to web apps what XML is to programming languages.

I have no idea what this means. The World Wide Web itself is quite literally hypermedia.

The fact that a lot of front-end frameworks appear hell bent on ignoring this fact doesn't make it any less true.

> Again, the reason we have finally stabilised on JSX is because you can't really "Declare" away HTML or sophisticated data and event management...

You may have stabilised on JSX, "we" have not. React is one way of building web applications. It's appropriate for a certain subset of highly interactive SPAs, and completely inappropriate for many other things.

> You may have stabilised on JSX, "we" have not.

Just about any reputable sources puts the combined market share of React, Vue, Angular 2+, and Solid well above 80%.

So I am not sure what "we" you are talking about.

  • > Just about any reputable sources puts the combined market share of React, Vue, Angular 2+, and Solid well above 80%.

    I have no idea if that's accurate, but let's assume for a moment that it is.

    - Vue supports JSX, but it is not the default.

    - Angular does not support JSX.

    - Svelte, which you neglected to mention, does not support JSX.

    - Solid does indeed use JSX, as of course does React.

    So two out of the five main SPA frameworks don't even support JSX, and another doesn't typically use it.

    As I said, you may have stabilised on JSX, "we" have not.

> I have no idea what this means. The World Wide Web itself is quite literally hypermedia.

I think he's saying that the Web is hypermedia plus Javascript, rather than just hypermedia. Which means, from the standpoint of the power of hierarchy, that it's Javascript, which also happens to use some hypermedia. Even if you use only a tiny bit of a Turing-complete language, Turing-completeness defines what your system actually can do.

This makes the Web fundamentally awkward, because most of the behavior is defined by the hypermedia part, and users have inconsistent expectations for what happens when you break the illusion.

HTMX works by extending the illusion. JSX works by breaking the illusion earlier rather than later.