4 ms·
I agree that HTMX is in this camp. My primary frustration with HTMX - even more than the CF-inspired syntax - is that it's fundamentally a client-side solution.
by peteforde 3y ago
I agree that HTMX is in this camp. My primary frustration with HTMX - even more than the CF-inspired syntax - is that it's fundamentally a client-side solution. Better than nothing, but if you want to build the next Figma, you need to look towards a toolset where the single source of truth is on the server. StimulusReflex on Rails or Phoenix LiveView on Elixir are a lot closer to a full-stack solution.
Obviously, all of this is highly subjective. When ColdFusion came out, I was primarily working in ASP and its OSS clone, PHP. You'll have to trust me when I say that my opinion on the ugly was formed at the time, and hasn't changed since.
It seems as though folks either like interpolated templates (ASP, PHP, ERb), components (React and etc) or macros (CF, Alpine, HTMX). It could be that one's first true love endures.
- listenallyall 3y agoSuch a weird comment... nobody would ever suggest using HTMX to build a "desktop app" running in the browser like Figma. But since 99% of projects are nothing like Figma, it's typically not an issue. But HTMX practically requires server-side state. The whole point is to make it very easy to frequently update, and receive new content from, a server (HATEOAS), and NOT to maintain state client-side. If you're building a site "where the single source of truth is on the server" then HTMX fits perfectly.
- peteforde 3y agoThe difference I'm referring to is "requires" vs "ships with". As to whether a requirement is typical or not, I am frustrated by local maximum thinking. If your tooling cannot build an ambitious project, then you're not going to build an ambitious project. I actively try to spend my finite time on ambitious projects in general. You don't need LiveView or StimulusReflex to build a landing page, that's true. But if you're building an ambitious real-time web app, the range of complexity where it makes sense to use HTMX instead of a full-stack solution gets smaller very quickly.
- listenallyall 3y agoI think you're either misguided, or just a hater. HTMX can accommodate ambitious, real-time web apps. Its entire purpose is to make interacting with a server (that single source of truth) easy, fast and transparent, as if doing so was simply built in to the HTML spec. What it can't do, is calculate the shape of a bezier curve, and that's why it's not a good choice for building an app like Figma.
- peteforde 3y agoI definitely do not like HTMX, that much is true. Does that make me a hater? I'm reading what you're saying, and it's very clear that you do not understand what frameworks like StimulusReflex and LiveView do for you. There is no fair comparison between HTMX and frameworks that ship with a server-side infrastructure for maintaining a long-lived, persistent connection. I won't mock you if you set aside your assumptions, investigate and have a moment of illumination.
- listenallyall 3y agoHow is it clear that I don't understand those frameworks when I haven't said a word about them? I've commented exclusively on HTMX and its use cases, you're the only one making comparisons.
- peteforde 3y agoIt's because you keep implying HTMX is a good choice, when there are vastly more powerful solutions in play. I know a guy who still insists that MS Access is the best database tool. His identity is fully wrapped up in this being true.
- listenallyall 3y agoYou have very poor reading comprehension. I never claimed HTMX was "the best." But yes, HTMX is a fantastic tool (and language agnostic), and the existence of other frameworks does not diminish its utility. If your only argument is to compare it to 30-year old Access/Jet, you're simply exposing your own lack of credibility and inherent irrelevance.