Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The thing about Gemini is that it reads like someone who thinks Gopher sounds neat but has only ever dealt with HTTP and HTML/Markdown... so they took HTTP GET, chopped a digit off the response codes, and called it a new protocol, then tacked on an intentionally-broken Markdown implementation (more broken than the original Markdown, I mean).

Interesting note: the first line of a Gemini response is a MIME type. It's usually `text/gemini` but there's no reason it can't be `text/html`, `application/javascript`, or anything else. A while back I did a little poking in some Gemini server code and made it do precisely that: serve HTML files which I accessed via elinks. Of course once you're serving HTML over Gemini you might ask, exactly what advantage am I getting by putting it over a purposefully-broken subset of HTTP, and I would say that's a damn good question.

In 2024 I wrote 'The modern Web and all its crappiness didn't come about because there's something inherently wicked in HTML and HTTP, it came about because people built things on top of the basic foundation, extending (sometimes poorly) and expanding. The more people play with Gemini, the more they'll want to "extend" it... and the closer they'll bring it to HTTP, because it follows the exact same fundamental model once you strip off the extraneous document format specification' and I stand by it.



> The more people play with Gemini, the more they'll want to "extend" it... and the closer they'll bring it to HTTP

Then it's not Gemini. Interestingly this is why it was decided for Gemini not to have a protocol version. To prevent extension.


2019: Gemini introduced

2022-ish: Titan created (based on existed of https://web.archive.org/web/20220126075826/https://transjovi...).

The spec for Titan (https://portal.mozz.us/gemini/transjovian.org/titan/page/The...?) appears to be an implementation of PUT for Gemini, but since Gemini doesn't have verbs (GET is implied) it does it by creating a whole new "protocol" titan://

So you're right, they didn't extend the Gemini protocol, they created an entirely new protocol which many clients, servers, and libraries now implement because the functionality was desirable.

Wonder what they'll call the protocol that implements DELETE... maybe Deorbit?

Edit: oh there's also Spartan (2022), another protocol which is Gemini but if there are bytes after the request line, it's an implicit PUT: https://raw.githubusercontent.com/michael-lazar/spartan/refs...


Your use of "they" here is misleading. Many, if not most, people in the Gemini community see no need for Titan. The existence of a new protocol doesn’t imply that Gemini is somehow lacking. A Gemini client that doesn’t support Titan is still a fully-featured Gemini client.

Additionally, your description of Spartan is simply incorrect. There are several significant differences between it and Gemini - the most obvious being that Spartan doesn’t use TLS at all!


You're right, I mischaracterized Spartan. Although it is very similar to Gemini, it's not compatible because the author decided even 2-digit response codes were foolish luxury, and as you mentioned there's the TLS thing. Of course, we still call it HTTP even when it transits a TLS connection, but that's not The Gemini Way so...

True minimalists will, of course, use the Mercury protocol: https://raw.githubusercontent.com/floren/mercury/master/SPEC




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: