Much like how a stopped watch is right twice a day, it seems that, in the world of technology, if you just stay around long enough, the methods you knew long ago become the way to do things once again.
Since the early days of networked computing, technology has been a pendulum swing, back and forth between server-side and client-side processing, with the past decade dominated by client-side JavaScript.
Now, for those of you who remember creating web pages with those old backend languages, you might regard the idea of returning to them once again as heresy. This is not an argument to return to the methods wherein backend languages need to recreate full web pages with every single update, as was the case with those PHP applications of yesteryear.
Rather, this new crop consists of tools like Phoenix, a framework for the programming language Elixir, and a feature called LiveView, which renders UI elements on the backend before sending them to the browser. Other tools that take a similar approach are Laravel Livewire and StimulusReflex.
Perhaps what we’re seeing is not so much a pendulum swing, but a state of equilibrium where computing happens on both client and server in equal measure depending on the needs of the user. This point is one we’ve seen increasingly lately in the world of frontend (or backend as frontend, as it were) development.
For example, when we recently looked at htmx as an alternative to JavaScript single-page applications (SPAs), both htmx creator Carson Gross and Svelte framework creator Rich Harris ended on a similar note of the idea of “transitional apps,” wherein not one approach would be relied upon entirely.
Both WebAssembly and htmx were among the top two approaches seen as missing from the landscape, with both seemingly offering alternatives to the recent domination of JavaScript and its ubiquitous front-end frameworks.