April 27, 2021

I came across the Wandering Geek phlog's rant about unformatted text
and gopher protocol the other day.

gopher://gopher.unixlore.net/0/glog/gopher-annoyances.md

The point was generally made that gopher is not the web, and we
should keep it that way.  I agree with that point.

One item I take issue with, though, is the Geek's assertion that all
text in gopher should be hard formatted to no longer than 70
character lines for the apparent sole purpose being so that the
writer's aging computer and gopher browser won't "barf."

Annoyances can cut both ways. I believe strongly that the 70-80
character examples mentioned in the gopher protocol specs were just
that: examples. I will argue here that line formatting is not part of
the official gopher protocol, and that we are free to leave
formatting to 'well tempered' gopher client software.


First, many older gopher browsers already wrap text lines so that the
user will have an experience better suited to their screen.  These
days, mobile gopher browsing is an actual thing. Hard formatted text
makes for jagged mishapen display, which is difficult and annoying to
read.

Even the venerable old Lynx text browser has no trouble wrapping text
in gopher. Since the creators of gopher protocol saw fit to leave
most formatting issues to the browser developers, I don't have a
problem with text lines longer than 70 characters.

Ah ha, the Wandering Geek might say, wagging his finger in my face.
What about section 3.9 of gopher protocol, "User display strings and
server selector strings." Doesn't the protocol clearly state that
"user display string should be kept under 70 characters in length."

Indeed it does, with the writer specifically indicating "SHOULD"
rather than "MUST." The reason a line "should" be formatted is
because "longer lines may not fit across some screens." The writer
clearly intended this as a recommendation, not an incontestible part
of gopher protocol. In the context of the date of publication,
"should" would meet most user experience cases and was suggested as
an illustrative example; but because the authors were well aware that
screen width would most certainly change at some point, they stopped
short of saying lines "must" be 70 characters.

Additionally in section 3.9, the writer suggests "User display
strings are intended to be displayed on a line on a typical screen
for a user's viewing pleasure."  70 character strings are not very
typical these days, are they?  That's the reason they did not specify
that text line length "SHALL" be 70 characters.

Display strings are not text files. They are the portion of selectors
that are displayed.

The most obvious evidence for there being no 80 character mandate in
Gopher protocol is also in Section 3.9:  "Clients may truncate to a
length convenient to them."

In otherwords, if a selector string or a text file line is too long,
the client should just wrap it or cut it off. Any decent gopher
client will simply wrap text. Gopher clients have a great deal of
power, and they should use it wisely to give the user the best
experience.

The authors of gopher protocol, being wise men, most certainly
understood the screens would change over time, and so they suggested
that we format for a 'typical screen'. Indeed, they were concerned
enough to single out a "user's viewing pleasure" as a consideration
in formatting text.

The idea of 70 character line lengths is better placed as a directive
to gopher browsers, rather than to format every text document in the
world to a hard line length.

And just how do I infer this?

From Section 4.0, "Simplicity is intentional."  Here the internet
Gopher philosphy was clearly stated: a. Intelligence is held by the
server, and b. the well tempered server ought to send "text".
"Should this text include tabs, formfeeds, frufru? Probably not, but
rude servers will probably send them any way."

I read this as a license, indeed as an instruction, to remove hard
line formatting of text files. To me, hard line formatting is
'frufru' that forces a particular line length on every viewer of a
text file, despite the size of their screen, inevitably leading to a
poor experience. The authors did not want that.

Instead, Gopher's fathers intended intelligence (text file) to be
held by the server, while the client would provide "access" to the
document, whatever the type of the document.  Imagine, if most
screens in the world were 720x480, they may have suggested 720x480
pixel formatting of video,  but -- just as they suggested 70
character lines -- they would not mandate it, because what was
important to them was user experience.

Going back to the Note in RFC1436:

[url: https://tools.ietf.org/html/rfc1436]

In the note that suggests a 70 character displayable line, the clear
reason stated for this is that "longer lines may not fit across some
screens."

Being formatted correctly to the user's screen is important to the
writer. Gopher's authors were concerned with user experience, that
the text should fit the screen.  This suggestion is given more as a
suggestion and guidance appropriate to this moment in March 1993.  It
was never suggested that 70 characters should be the only permitted
line length. Certainly, they could have done this, but chose not to.

The writer's main concern is with a) the user experience on a typical
screen, and b) formatting in the gopher browser, and also that c)
documents, including text documents, should not contain extraneous
formatting that would interfer with the user's experince, while
conceding that many servers will probably send files with 'frufru'
formatting anyway. Therefor, the "well-tempered client should do
something reasonable with funny characters received in text; filter
them out, leave them in, whatever."

So now in 2021, one of the most convenient and best gopher
experiences is mobile browsing.  Yet some people are calling for
every doc in gopherspace to have hard formatting that jeopardizes the
experience of short width screens, as well as screens with widths
much longer than 80 characters.

I suggest we remain true to the authors primary focus on the user's
exprience, and their call in 4.c to build "well-tempered" clients
that will deliver this experience.

Clearly, they intended for content formatting to occur in the client,
and for the client to do something "reasonable" with it. A
"Well-tempered" client will simply wrap text to fit the screen and
give the user a better experience.

This is why I have no problem offering users, espcieally mobile
users, the 'best' experience that gopher can provide by allowing
their gopher clients to manage text file content without frufru
formatting interference coming from the Magical.fish server.
Although you will occasionally encounter text files here that have
some hard formatting,  the content we generate will primarily be
longer text lines which any well-tempered client should reasonably be
able to deal with.

Just as the authors intended.

If you don't like how text files display on your screen, then take it
up with the developer of your gopher browser.  Or find a better one.
Most of them can wrap text just fine.

-fish

From: <gopher://magical.fish/0/phlog/thoughts-on-text-formatting>