💾 Archived View for inconsistentuniverse.space › gemlog › 2021-12-26-protocols.gmi captured on 2023-07-10 at 13:31:39. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-01-08)
-=-=-=-=-=-=-
A spider, a gopher, and a pair of twins walked into a bar. The bartender said "This setup for a joke about internet protocols is stretched beyond any possible hope of working. Good day to you." and promptly poofed out of existence.
I've been using gemini for a bit over a year now as you no doubt know since to read this at all you're either connecting to my gemini server directly through a gembrowser or a web proxy one stepped removed from it. I've found it to be a solid setup for doing technical writing and musings. I like the simplicity of it, how fast pages load, and there's just enough interactivity for people to do some pretty fun things without it being full on invasive. People have put together games, simple comment systems, things like that fairly easily. Rather than cookies, you're identified by TLS client certificates you make. It also doesn't hurt that the broader gemini ecosystem is built around a very syntactically simple kind of hypertext that still lets you have links, pre-formatted text, lists, and a few other small conveniences.
Spellbinding, an interactive word puzzle served over Gemini
All that being said, I've also been branching out into gopher as well.
Why, though? What's the point of gopher if I'm using gemini? I've been thinking a lot about that and I suppose the answer is that I believe in using the tool that fits the job as closely as possible. My gopher content is basically a daily diary and informal thoughts, with some small dithered images served as well as a record of little things from my life. This makes sense for gopher because I don't need hypertext for this kind of thing. Plain text files talking about my life will do the job just fine. The very structured menu system of gopher seems almost perfect for organizing chronologic entries of photos and text. It's simple, lightweight, and loads faster than I can even wrap my head around given how much I've gotten used to the commercial web.
No you can't really do something Spellbinding over gopher but that's also not the point of a phlog, is it? Why use a system that has interactivity if I literally would never need it for the kind of content I'm serving?
To explain a bit further about where my thoughts here are coming from: I have a background in programming languages theory. There's a school of thought in PL that points out that you don't *need* full on general recursion and the possibility of programs that go into bad loops for most of the code you're going to write. You can rely on very structured recursion that provably terminates or productive co-recursion that never gets "stuck" because it always responds to new input in some finite time (a server is a prime example of this). Part of the idea here is that building tools to help you code---to help you generate code, to analyze code, to prove properties about it---gets harder the more powerful the programming language you're using becomes. Once you're in full on Turing-complete land you're going to slam against Halting Problem-like issues with most introspection about your code.
So to me the connection is that I think we can make better systems if we only use as much power as is necessary for our tasks. We don't need to have the full power of a web browser with its own general recursive programming language that executes arbitrary code on every page. Are you serving static rigidly organized information? Use gopher. Do you need something just a little more freeform in the kinds of content it can server? Maybe the ability to identify users in some way? You can probably just use gemini. Are you actually intending to deliver an audiovisual application across the internet or do actual financial transactions without any kind of installation of new software? Sure, then you need the modern web as your platform. But how often are we actually doing those things? How necessary are they, really?
I've argued in the past that moving towards simpler protocols is going to be useful just in terms of improving the feasibility of development of competing servers and clients, which in turn improves our overall choice and autonomy.
Short essay on reducing complexity on the internet
But part of my argument is also that any excess room you leave open beyond what's actually needed for the task is going to be filled by malicious actors: capitalism abhors a vaccuum. We saw this with the rise of commercial blogging in the 00s: part of the reason why it took off the way it did is that websites could easily serve ads. If gopher had stayed popular through til this point and we'd had a bunch of people starting to host their own phlogs I don't think it would have ever exploded the same way, with people treating phlogging as a career, because there wouldn't have been any room for ads and the kinds of extraction we actually got.
And here's where I take a turn I didn't actually intend to set out to make: an argument against web3.
So I've made arguments against NFTs from a "this is going to bring microtransactions to your everyday life" perspective here
but there's a much broader problem with Ethereum and other such cryptocurrency systems. To start, let me allow a proponent of them to speak for himself
cdixon's Why Web 3 Matters thread
If you read the above you'll notice that this is a person who is arguing for moving computation, generally, from individual computers to this distributed system of computation, held on a public ledger.
Why? What reasons do we actually have for that? Now he says that it's to help fight centralization but there's more to decentralizing the web than just not running on AWS. I think trying to lock people into one model of computation is absolutely part of the problem. Do we want to be serving all our content and providing our services through a platform that allows not just arbitrary computation but arbitrary computation about a proposed currency?
If the room for exploitation was large with 'web 2.0' surely you can see that web 3 is manifold worse. You can claim you're putting the power in people's hands but what happens when your every action online starts being monetized via smart contracts, your ability to access basic services controlled by checking what rights live in your wallet?
His explicit claim is that web 3 will be a cooperative development because everyone will have a vested interest in the growth of the currency and the platform and that sounds reasonable for a few seconds until you realize the same argument could be made for the health of any nation's economy. It's a kind of nationless-patriotism, replacing chauvinism based on state with chauvinism based on platform. "WAGMI"---we're all gonna make it---is really just another way of saying what's good for General Motors is good for our country.
In short, I think we should be deeply distrustful of web 3 the same way people were distrustful of web 2.0 and the dangers of allowing ads, cookies, and information scavenging. We need to wholesale reject being pushed into frameworks that allow for more extraction, more coercion, and instead accept a kind of protocol pluralism: we need to have a larger number of tools at our disposal, ones we can easily tinker with, in order to build a proper healthy ecology of the internet, one that can actually adapt and defend itself against the Alphabets and Amazons of the world trying to accumulate power.
Oh, and if you just want to run a blog maybe use gopher instead.