@@ 0,0 1,51 @@
title = "Gemini Protocol"
[Gemini](https://gemini.circumlunar.space/) is a lightweight internet protocol for something simpler than the web.
[Drew DeVault](https://drewdevault.com/2020/11/01/What-is-Gemini-anyway.html) has been chattering about it quite a bit lately; I decided to [put up a server](gemini://stma.is).
From his blog:
> Some people argue that what we should have is “the web, but less of it”, i.e.
> a “sane” subset of web standards.
> I don’t agree (for one, I don’t think there is a “sane” subset of those standards), but I’ll save that for another blog post.
> Gemini is a new medium, and it’s different from the web.
> Anyone who checking it out should be prepared for that and open to working within its constraints.
> Limitations breed creativity!
I ...think I am one of "those people".
*However*, it's missing a few things.
1. Gemini links are always on a separate line, and there doesn't seem to be any way to link *within* a document.
Internal links are necessary for longform content from a user interface perspective.
Sure, you can put every paragraph on a new page (reminds me of GNU and RedHat documentation), but that drives me nuts.
I could live with the "external links must be on a separate line" rule if we had internal links in-text — that's basically a footnote[^1] — but breaking the links apart from the text doesn't even live up to the [Mother of All Demos](https://www.youtube.com/playlist?list=PLCGFadV4FqU3DS0I_7yzGN2_S0QNqLzJC) vision.
1. Gemini doesn't have any way to express *emphasis*... Markdown has **two**.
1. Gemini code blocks ("preformatted text lines") must be blocks... nothing inline (and no syntax highlighting in the [clients](https://gemini.circumlunar.space/clients.html) I've tried, though I don't know why they couldn't).
1. Gemini lists must be unordered.
This list, by comparison, is ordered *by decreasing importance*, which is still fine with an unordered list but the numbers can be helpful sometimes.
* Also, Gemini has no nested lists.
I appreciate that they won't go deeper than three levels of headings, and I think a similar limitation works here.
But I need nesting.
1. Gemini has no horizontal rules.
[^1]: Like this! Even a footnote puts the next document two clicks (and possibly two screen redraws) away from the link text instead of just one, but it's better than having no visual connection at all!
All of these issues ignore the elephant in the room, which is that we might want to download (or even display) images, audio, video, virtual reality, or ...whatever they come up with next.
I believe Gemini would be a more complete protocol if I could link to documents of that type for the user to do with what they pleased.
I suppose this is possible using `https://` links now, but that means an extra client is involved.
Probably a web browser.
I do agree that Gemini makes it easier to build a *user agent* instead of a [vendor agent](https://drewdevault.com/2020/08/13/Web-browsers-need-to-stop.html).
I think the Gemini writers do themselves a disservice when they [say this](https://gemini.circumlunar.space/docs/faq.html):
> #### 1.4 Do you really think you can replace the web?
> Not for a minute!
I think they could replace the web — or at least make a go at true [hypermedia](https://youtu.be/M5PgQS3ZBWA?t=925).
If the web becomes a default medium for delivering network applications (and let's face it, it ~~will~~ did, since Unix failed to appropriately abstract network computing[^2]), why not go all the way and build the original idea of a document sharing/linking/reading system?!
[^2]: Someone please send me the source of this idea — I read it the other day and can't 1) get it out of my head, or 2) find where I read it!