Frustration at the Web

blog computing web ramble 2022-05-02 12:37

I've had a tumultous relationship with being a webdev and it seems to be a significant burden for me right now. I've been thinking a lot about the web in general lately, especially given I've just put most my unedited thoughts online in the form of a website. My usage of the web is starkly different to the imaginary "average" web user. I disable Javascript on all my personal machines and block ads on our home network, I use none of the commericial social media websites, I host my own matrix server through which I begrudingly interact with proprietary networks (slack, discord), I use RSS feeds to cultivate my media diet (when I'm not endlessly scrolling orange-site ). I have been doing this for years, well before I became an engineer in the Web industry.

For a long time I rationalized all of this through the lens of "the web sucks", blissfully unaware that all the technologies I was using were still web technologies. Charitably, I could interpret my own rationalization as "the modern commerical web sucks". This remains true, though there are modern elements of the web that are certifiably dope. HTML has come a long way since the release of HTML5 and the death of Flash. The IndieWeb spec is really cool. Federated networks are poppin' off right now. Even the release of fairly recent p2p networks (though arguably not "fully web") like Dat and SSB excite me. The modern rebirth of Gopher has been amusing to see.
I have little patience for the commercial web though. I stay away from web3, the whole crypto rush and it's offspring, "Metaverse" and it's ilk.

Despite this, I spend most my time tinkering with terminals and text in Neovim, standing up services deployed through Nix, and generally playing with live coding. If I were to pick a platform for which to develop it would have to be Linux, but I have no interest in making GUI apps. I spend all my time in terminals, and have developed terminal applications but none with a TUI. Most of my development centers around services, explicitly around avoiding commercial web services. I have refused to even learn javascript because I was so blinded by disdain for it's commercial appartus.

I often come across "hit-pieces" on javascript, and developers, and even just the experience of browsing the modern web is undeniably annoying, my little comfy corner not totally withstanding. I get swept up in the "aesthetics" of web technology; JS's well known developer memes around types and equality, it's general slowness compared to other interpreted languages, the exceedingly grevious control Google's iron fist exhibits on the culture surrounding the web. Even "lesser" issues around browser incompatibility and mobile experience, huge amounts of bloat in order to make these applications, make rounds in these circles and all of these ideas culminate in those notion of what acceptable software looks like. Taken to it's extreme we end up with suckless software which I too dipped my hands in. No longer do I evangalize this kind of software. Having to compile C code to modify the way my terminal looks is not a more pleasing experience of software. Not to mention secure C code cannot be written.

It's not just a dislike or fear of creating for developers, but some vague notion of aesthetic purity I seem to be chasing. Why am I set back by the outcome of technology hitting the real world? None of the platforms on which software can be built hold up to my happy place. Not mobile (iOS & Android are gross, KaiOS is web technology, I can't run Sailfish), not desktop (I could feasibly write KDE or Gnome but neither of those are interesting), not web.

So what do I want my software to work on? What can I reasonably hold up as a compass for guiding me. Necessity compels me to work on industrial / enterprise software for now, but asides from that what do I wish to build? I think the major gripe I have with computers of late has been the inability to answer this question: What are computers for?

Having only just completed reading Beyond Civilization I'm motivated by it's ideals. Finding out ways to make a living outside of being just an "engineer". I find I have few skills useful to those outside of Enterprise™ solutions. Knowing how to configure K8s servers is nice on my resume, and ostensibly a "high complexity" rabbit hole of the sort I tend to enjoy, but it doesn't have much use outside of The Industry.

I suppose this entire piece is an exercise in me trying to understand what drives my interest in specific technologies. I recently identified that highly configurable, over-engineered niche tools (nixOS, bspwm, neovim, SuperCollider to namedrop a few) that still fall in line with my zealotry are the types of things I gravitate towards. "High complexity" stacks with lots of head banging are my favorite, and I'm trying to loop the world of web development with it. Even if the corporate web is grossly malign, not all of the web needs to be that way. In fact, the only way to make it so, is for each of us to take our little corner and turn it into what we want. I suppose despite all the propaganda I frequently read against it, I keep coming back to the web: It's about the ▐▕▝▚▘▙▚, not necessarily the technology. Though that won't stop me from using Clojure to write Node, so I can build a TUI in React for my tasty little terminal. I'm not even joking about that.