The web delivered on Java’s broken promise: a truly compatible platform that enables applications to run on any operating system, without any need for the developer to get their hands dirty with OS-specific quirks. Write once, run anywhere.
This was a fucking mistake.
Don’t get me wrong: HTML and CSS are the way to design a user interface. Combine that with a framework like SvelteKit to get rid of the boilerplate, and you can write a slick UI with your brain turned off.
The problem is: it’s the web. You know, that thing you use to exchange hypertext documents over the internet. The web wasn’t made to be an application platform; it was made to share information. Everything on the web requires a server to host it, and that makes sense when your goal is to make information available for people around the world on request, but it seems nobody cared about the fact that a web app has this requirement for no fucking reason.
Today, I needed an application to let me create a GPX file so I could load a custom route and waypoints onto a GPS unit. The only desktop application I could find relating to GPX files was one that could read and plot the routes and points from an existing GPX file, but it had no capability to edit or create new files.
Then I found gpx.studio, a SvelteKit web app that does exactly what I needed. And you know what? It works great, looks beautiful, and it’s even free software, so I can look at the source code and host my own instance if I want to. I’m grateful to the developers for making it.
But why in the name of fuck does this need to be hosted on a server to begin with?! Sure, it benefits from an internet connection to get map overlays, but that doesn’t require the app itself to be hosted. There’s not even a database backend for you to save and share your routes through it. It’s actually a PWA, so you can even install it as an offline app in Chrome (and a few others). This is a local application in all aspects except the web technology it’s built upon.
I ask again: why?
Well, I already said it earlier: HTML and CSS are so well-suited to UI design that nobody could stand putting up with traditional GUI programming anymore. Some GUI toolkit developers made the logical decision to make their own markup languages for their systems to compete, and this was a good move, but the damage had already been done.
Developers who learned their craft in the age of Web 2.0 either never learned or forgot to consider the needs of the user (even if the user is themselves!). Why do things the right way when you can do them the easy way instead? The ease and speed of web app development spoiled developers into considering only the aspects of developing the software and ignoring the aspects of running the software.
This disregard for the user continued to wreak havoc even for those who have the means of hosting web applications. Enter: Docker. I swear, the number of otherwise well-made applications that have no installation instructions at all because “you can just install the premade Docker image” is atrocious.
Not everyone has Docker. Not everyone uses an operating system that can run Docker. Not everyone who does have Docker wants to run the application on the system you used in your image. Not everyone wants to trust the application developer to publish new Docker images whenever there’s an important security update to that underlying system. If you can’t even be fucked to write instructions on how to install your software from scratch, why the hell should I trust you to care about the continued security maintenance of my server? Do you even remember how to install your software from scratch yourself?
I beg you, dear developer: the next time you want to make an application, consider whether web technology is actually necessary for the function of the app, or if you are just being lazy. Why should your app require a dedicated server to run, instead of being installed on the user’s own hardware?
And for the love of whatever god abandoned us for us to have ended up here, if you think bundling a behemoth like Chrome into your app so that you can have the worst of both worlds absolves you of your sins, I’m coming over to whoop your ass personally.