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.
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?
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...
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.