Monday, March 4th, 2019

    Imagine there's no "i" (it's easy if you try)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Solderpunk yesterday published his phost[1]  about  something  between
Gopher  and Web.  At  first it  was not  exactly  clear, whether  he's
proposing a new  Gopher protocol version or  something completely new,
which brought me to start typing this phost. As he then explained that
he was  more was  talking about  a new  protocol, not  an incompatible
Gopher modernization, my  post lost most of its relevancy  as a reply.
I'm however still publishing it as a standalone thought.

I like the Gopher exactly the way it is. I have this relationship with
many old  things -  I use  old computers,  old transceivers,  old cell
phones, old Palm PDAs, I even listen  to old music, read old books and
watch old  movies. I don't enjoy  any of this _because_  it's old, but
_despite_ that. I didn't find anything  better among the new stuff, if
I did, it would be quite a lot easier to stick with what's still fresh
and supported.

There is a whole bunch of network protocols I never stopped to use (or
started to use  them again as soon  as they were again a  bit alive) -
telnet,  finger,  FTP,  HotLine,  KDX  and  of  course  Gopher.  These
protocols are old  and I remember times when every  single of them was
"doomed  to die",  just  because  there was  some  modern fancy  stuff
supposed to  replace it. And  they're still here, not  because they're
old, but because they're simple, stable and compatible.

It's near to impossible to browse any modern web page from plain Amiga
600, an i386 laptop, old Psion  5mx handheld computer etc. Browsers on
these platforms  are stuck in early  2000's (at best) with  no support
for  JavaScript, CSS  beyond  1.0  and HTML  after  4.01. They  ignore
anything newer or even crash while  trying not to ignore it. Two years
ago  I moved  my Czech  blog from  Tumblr to  my own  server, where  I
created it  as a single Perl  script with HTML/CSS templates.  I tried
really hard to make it readable from any 1995+ machine able to connect
to the  Internet. It took a  lot of time and  I did it, but  still the
page does not look the same on  all platforms, it just can be accessed
from them  without errors. And  that's just  the HTML/CSS side  of the
problem - add  HTTPS to the equation and you'll  have problems even in
something as modern as Windows 2000.

But you can query graph.no  via finger and/or browse gopherspace from
any of them, with the original  tools that were distributed with them,
just like you could do it twenty  five years ago. You'll still get the
nice plaintext  output, that  these machines  can process  and display
even with  the limited computing power,  they have. I do  this all the
time[2].  Any serious change  in the protocol  would break this state,
exactly the same way as  numerous changes in HTML/CSS and introduction
of HTTPS did with web.

One tiny  illustration: Gopher  users already significantly changed it
and the only thing needed was non-standardized menu item "i".

Gopher was originally  meant to be uniform system of  menus, that were
supposed to look exactly the same,  no matter on which server you were
and their purpose was to point  you to the file-oriented content, much
like regular file system.  Before Gopher Internet consisted of several
hundred servers. These servers offered shell accounts, mail, FTP, etc.
but there was no way to get from one to another or at least to get the
information, that there is  some other server,  if  anyone didn't tell
you the  address and login info.  Gopher changed this, you  could leap
from server  to server  by just going  through menus,  returning back,
opening and  downloading files as  you pleased. I remember  that there
was a  client for Windows 3.1,  which displayed Gopherspace as  a tree
and you opened menu  items by clicking (+) next to  them. You could do
this almost  forever, because menus contained  many different servers,
paths split, crossed, circled, etc.

But as soon as  WWW started to take of this began  to look too simple.
That's why  people started to use  "i" menu item on  their servers and
clients started to display "i" menu item  as a plain text. It made the
gophermaps/gophermenus to  look more  like simple  plain-text webpages
and the  illusion of never  ending hierarchy  was gone. Now  there are
even gopherholes serving most of the content in the form of map.

I'm  deliberately not  putting this  on "bad"-"good" scale, it  simply
happened and  it happened long  time ago. But  as RFC 1439  says, that
unknown menu  items can be  either displayed  or ignored, back  in the
mid-90's there  were many clients  simply ignoring the "i"  menu item.
Most were updated,  some were not. And that's just  one menu item, but
imagine that there was  no client for you, that can  display it - what
would you see on most of today's gopherholes?

Fortunately when  it happened in  time, when  both gopher and  what we
today  consider "retro"  computing  platforms were  still  in use  and
relevant for many. The situation today is different, any change to the
protocol  will render  any old  client unusable  and nobody  will ever
repair it. That's why I will always oppose any changes to the protocol
residing  on  port  70.  On the  other  way,  I'm  all  in  for a  new
gopher-inspired protocol, that will  combine it's simplicity with what
we learned since then. But it won't stop me from using the Gopher.

[1] gopher://zaibatsu.circumlunar.space/0/%7esolderpunk/phlog/ponderin
    g-whats-inbetween-gopher-and-the-web.txt
[2] http://screenshots.i-logout.cz/Gopher/