On text reflow. It's not about bullets!

Hi Solderpunk,

  Thanks for taking the time for exposing things in full.
  
  I did due diligence before posting here. I read all materials at
gopher://zaibatsu.circumlunar.space:70/1/~solderpunk/gemini as well as
enkiv2's and John Olmo's pieces.  Also nearly all of this list's
archived emails.

  That is to say, I believe I have a good grasp on the philosophy
behind Gemini and the principles that have guided it's evolution.  Let
me spell it clearly: To those principles I violently agree!
  
  I'll be cherry-picking topics below were actual disagreement exists.

On Tue, Nov 26, 2019 at 19:06:30 +0000, solderpunk wrote:

> But I am concerned, and consistently have been all throughout
> Gemini's development, about making sure we don't provide a toehold
> for extensibility to creep in.

  Sorry to say, that ship already sailed the moment => was
specified. The most you can do is to make some hard requirements in
the specification.

  In all honesty, it sailed even before that, when mime types were
adopted. What's to prevent some Gemini server to serve text/html with
external js indeed? What's to prevent certain clients from rendering
such content as a web browser does?

I'm not trying to open a new discussion here. We all know this is just
an matter of balance.


> I am firmly of the belief that open-endedness and extensibility are
> nothing but poison for a project which wants to remain small and
> simple and to strongly enforce certain ideals.

  Agreed, but... A standard that falls short of its intended purpose
in life is just calling for the very same kind of de-facto
standardization you so well describe for http.


> Thus, my big concern about using == as a start-of-line marker to
> indicate verbatim text (and let me be very clear that I recognise
> and appreciate the beauty of using this common notation for equality
> to mean "present exactly this"!)

  == possesses a certain beauty and elegance about it, doesn't it? :-)
At any rate which actual marker is adopted is of no consequence. Let's
call it the 'verbatim marker' from here on.


> [...] is that it might soe the seed of the idea that the text/gemini
> syntax is one where features are defined by two character markers
> where the first character is =.  If => is special and == is special
> then if we ever decide to add explicit representation of bullets
> everybody will have to agree it is obvious and consistent that this
> be done with =* and by this point the war is lost.  =$ and =# and =?
> are all fair game.  Someday somebody will propose that [...]

  I get it, really. Let me try to convey why I state this does not apply
to the verbatim marker: it is an unavoidable requirement.

  In fact there's two unavoidable requirements at stake here.

  1 - There must exist an option for the client for reflowing text. I
      won't elaborate much here. There's simply no way verbatim
      formatted text will look good simultaneously on big desktop
      screens and small smartphone displays. Doing that according to
      an RFC backed set of precise rules is nothing but 'the right
      thing' (TM).   

  2 - In the presence of 1, some way to specify verbatim formatted
      text lines MUST exist for the Gemini author.
      
  Number 1 will always be an option for the client, be it in the spec
or not. So better handle it in an unambiguous way to avoid a myriad
of, client chosen, different ways.

  The capitalized MUST in 2 reflects the fact that it's a fundamental,
intrinsic, requirement for any text content distribution
platform.  There're sure many more use cases. I mentioned Python source
and mathematical formulas.

  It might be an inconvenience having C source code garbled, but it
will compile anyway, and can be automatically reformatted.  That is
not the case with Python code, with its syntactically relevant use of
white space.

  Take a Python snippet, reflow it, and you just lost its semantics.
It won't run.  It cannot be automatically reformatted. Depending on
code complexity, even manual reformatting might be impossible.  Simply
put, information has been irremediably lost at this point.
  
  Now take a simple polynomial expression.  Exact same situation
arises when the reader cannot discern which numerator goes with which
denominator.

  In short, I object this is just a desirable feature of the
text/gemini format, as you state elsewhere in your reply.

  Admittedly this could be subsumed in a more general markup facility
if the markup du jour was to be adopted, with all its nice to have
text styling and structuring features. Fact remains verbatim
formatted text must be available regardless.

  If not specified, someone will implement this sooner than latter, in
a not controlled way. It might get generally liked, hence adopted.
Back at square one then.

  Or someone will start experimenting on how to abuse with => markers
in order to somehow achieve this kind of thing.  Coincidentally, the
spec is not yet finalized and this has already begun with some
result. Check
gemini://gemi.dev/gemini-mailing-list/messages/000019.gmi in this
very same list.

  What's to be expected once the spec is set on stone?


> This is precisely the reason that when the question came up as to
> how we should best implement something like Gopher's item type 7 in
> a system without item types, I rejected the notion (even though it
> seems to make perfect sense) that we use =? instead of => for search
> points (I *think* this was julienxx's idea?).

  That, I believe, would have been just a case of bad tool for the job
that was very appropriately handled IMHO.


> [...] and I admit that Gemini is slightly more naturally immune to
> this than HTML is - Gemini clients are by design very simple, which
> means many people will write them, which means there is less likely
> to evolve a situation where a small number of highly influential
> clients [...]

  Also worth of consideration: general user population will likely be
composed of disgruntled former web users in one hand and former gopher
users on the other. I don't expect any of these groups to be
interested in such an outcome. Both had the web option available
before gemini; both opted out.


> This principle of not inviting future extension has informed a
> number of decisions about the Gemini protocol.

  As stated above, I fully agree with this approach. Anyway, sometimes
you must handle the smaller evil in order to avoid the big one.


> [on the use of syntactic white space]

  I don't think I need to expand on how an atrociously bad choice
white space would be. This very same email would be rendered in a
mixture of formatted and reflowed paragraphs :-)


> frustrating that is.  I do certainly agree with both of your
> premises, that some solution to widely varying screen sizes and some
> way to embed unreflowd text, are very highly desirable.

  I beg to disagree on the "desirable" bit, you know :-P

  I personally would settle with any solution not involving stealth
white space markers. Client driven text reflow cannot be ruled out, so
verbatim formatted text must be in the spec in some form or another.

>> If you happen to have endured my prose all the way down here, many
>> thanks for your attention. You're a remarkably forgiving reader.
> Don't worry, I have been working hard for months to scare anybody
> without a very high tolerance for verbosity far away from anything
> to do with Gemini. :)

Well, I'd say both of us seem to lean a bit on the loquacious side...

Best regards,
Andram

---

Previous in thread (2 of 9): 🗣️ solderpunk (solderpunk (a) SDF.ORG)

Next in thread (4 of 9): 🗣️ Brian Evans (b__m__e (a) mailfence.com)

View entire thread.