I’m not a developer by trade, and I don’t have a formal CS background. But I do write a fair amount of code, and I have managed to pick up some skills along the way. Most of what I write is related to data analysis or modeling or the like—back-end type stuff, as opposed to web front end.
Still, I periodically want a quick and simple web app to do something. Often it is just to help with some local task or dev-like thing, and I figure a web interface would be really handy for the UI.
This typically happens to me every year or so, and every time it does I find that there’s a new crop of front end tools that everyone is using. The latest web framework I just started getting a handle on last time has fallen by the wayside in favor of something new, and I’m faced with coming down yet another learning curve.
And every time I dive into a project like this, after a day or two my reaction is why is this so !@#$ hard?1
This is in notable contrast to a number of other domains where the tools I’ve been using for years or even decades—shell scripting, Python, LaTeX, R, networking tools, and so on—are usable every time I need them (and the challenge is more about refreshing my memory than learning a whole new skill).
Is it really the case that web technologies are improving so rapidly that it all needs to be new every time I happen to look?
In this last go-around I happened to learn about htmx. Carson Gross initially won me over with his appeal to take HTML seriously, but what kept me around was a gut feeling that this is a technology that could really last.
I’ve been using it now for several months instead of whatever the JS-based framework du jour exists, and I’m very happy with it.2
That is all.
Footnotes
-
The critic will rightfully point out that many of these frameworks are solving for needs that are more complex than mine. That said, I find even ‘straightforward’ JS tools like JQuery have a complexity that is off-putting. ↩
-
I’m using htmx with Flask and Python. I’m also very happy with that whole combination, but that’s a topic for another day. ↩