This is an article that will collect my opinions concerning Gopher experiences and practices, primarily those I dislike, with regards to conventions I've encountered and whatnot. I'll update this article as I have more to write of and feel the want.
Firstly is the presence of the ``i'' item type, the informative type. This type differs from every other Gopher item type, in that it doesn't denote a resource and is intended solely for display, and this alone complicates Gopher menu interaction in requiring a special case. Execerbating this issue is how some Gopher holes omit fields from this item type, as they're entirely meaningless, although this isn't so bad if one already wants to handle malformed entries. The restrictions of a system are important, as they show the limits of misuse; I've seen files composed entirely out of this item type, sans as few as a single entry, and this is the limit to the abuse. This isn't only ugly, but is also wasteful in information sent and time used processing it. When I first saw this, I was bewildered, and that bewilderment gave way to disgust. The most egregious use of this item type are those that are blank and so serve only as presentation control, for clear reasons.
Related to this dislike is a convention I follow and quite like for my Gopher hole. If I have an article that requires other resources, such as images or program files or even different versions of the article, the article is represented as a menu in which each entry is present, including the actual article. A good and recent example is my 2019-06-23 article, which features program and metadata resources followed by several different versions of the article. I find it odd that, in telling others of this approach, I've been met with remarks on how clever it is. I'd expected this to be a basic approach, as it rather quickly came to mind when I was first learning of Gopher and considering how to represent my articles and whatnot.
Secondly is the ``URL:'' convention for Gopher selectors referring to HTML files. This isn't necessarily as bad as the ``i'' item type, as there's clear behavior for clients that don't treat it specially and it's also rather discrete; however, it's still poor. It's trivial to imagine a menu entry that links to two different resources, based on whether this convention is used or not, to the benefit or detriment of either. Further, it goes rather directly against the standard document, which specifically states that selector strings should carry no special meaning; due to this, it robs people of the ability to begin their selectors with ``URL:'', if they want it to work correctly in these clients. One can argue that's no issue, but it can go further if tolerated. It would be easy for people to deem selectors starting with anything to have any special meaning; therein lies the issue.
My suggestion is to avoid linking to HTML files, in general, without good reason; I link to some purely because I already have several other versions of an article available; using the ``h'' item type for this is rather fine, despite being nonstandard, since it can be expected to behave reasonably, although I wonder how many clients are prepared to accept either the text transfer method or direct method for HTML files. As HTML can be validated after download and has a designated item type, I treat it as a direct download with no modifications, as with the ``I'' item type.
Thirdly is this ``caps.txt'' selector convention. There's positives to having constant resources that can be used for certain things, similar to the empty selector being the prime menu, but this convention lacks pleasant aesthetics, I feel. Firstly is the selector itself; why should it represent with a common file naming; a better selector would be ``capabilities'', as it would avoid unnecessary abbreviations and wouldn't prefer any particular method of communicating storage. Secondly it is a format marked by POSIX and so is rather ugly; it contains comment facilities; Gopher menus support no comments; it is a ``key=value'' format; Gopher has no such format; it is merely a transferral of an ad-hoc format from POSIX to Gopher. Further, it has unnecessary facilities for treating selectors as POSIX filenames, to a great detail; there's absolutely no need for this; if a Gopher hole administrator were to cooperate and provide this ``caps.txt'' resource, one could just as easily optimize selectors and other such things serverside, instead. It has other frivolous details, as well. In brief, it seems to go against the spirit of Gopher, I feel. Another selector I've seen suggested is ``robots.txt'' and I oppose this on the grounds that all WWW nonsense should be kept out of Gopher.