all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* PSA: please stop using weird symbol prefixes
@ 2015-05-11  6:18 Paul Rankin
  0 siblings, 0 replies; 2+ messages in thread
From: Paul Rankin @ 2015-05-11  6:18 UTC (permalink / raw)
  To: help-gnu-emacs

Lately I've seen a lot of seemingly random mode symbol prefixes, e.g. a mode called `foobar-mode` will use `fb:next-item` and elsewhere `fblatex:export-new` or perhaps `foobar/end-of-tree` etc. etc.

1. This approach grates against the Elisp coding conventions...

> • You should choose a short word to distinguish your program from
>   other Lisp programs.  The names of all global symbols in your
>   program, that is the names of variables, constants, and functions,
>   should begin with that chosen prefix.  Separate the prefix from the
>   rest of the name with a hyphen, ‘-’.  This practice helps avoid
>   name conflicts, since all global variables in Emacs Lisp share the
>   same name space, and all functions share another name space(1).
>   Use two hyphens to separate prefix and name if the symbol is not
>   meant to be used by other packages.

-- from (info "(elisp) Coding Conventions")

2. It breaks `custom-unlispify-tag-names` which is used to display customize pages without the mode prefix.

3. It breaks autocompletion, at least in the mini-buffer, where the user expects <space> translated to hyphen to work as a universal delimiter.

4. Most importantly, it breaks user expectation long established by code that properly follows the conventions that symbols ought to take the form PREFIX-some-symbol.




^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: PSA: please stop using weird symbol prefixes
       [not found] <mailman.2751.1431333428.904.help-gnu-emacs@gnu.org>
@ 2015-05-11 21:17 ` Emanuel Berg
  0 siblings, 0 replies; 2+ messages in thread
From: Emanuel Berg @ 2015-05-11 21:17 UTC (permalink / raw)
  To: help-gnu-emacs

Paul Rankin <hello@paulwrankin.com> writes:

> Lately I've seen a lot of seemingly random mode
> symbol prefixes, e.g. a mode called `foobar-mode`
> will use `fb:next-item` and elsewhere
> `fblatex:export-new` or perhaps `foobar/end-of-tree`
> etc. etc.

I think the foobar practice should be avoided even in
abstract "examples" because

1) It is often so that the examples get worse by this
   habit - instead of real-world examples that might
   take a couple of minutes to make up/find, but are
   better in most cases, as they provide the example
   with some context, which makes the principle easier
   to understand, but also in the bargain shows some
   (other) aspect of the system and how the principle
   is typically put to use. (This is the same method
   the good old school grammar books used. There were
   a lot of abstract reasoning with word classes and
   phrase analysis but then came examples with
   specific phrases and you'd realize the theory but
   also learn them phrases at the same time!)

2) If you do the foobar stuff in examples too much,
   that will eat its way to real use soon enough.
   The people who write it, or read it, or Google it,
   it doesn't matter, one way or another it is always
   like that.

What to name things in programming is a big part of
what makes for good code and bad. People may disagree
what is a good name and what is not as good.
But follow the simple principle that everything should
be named after its functionality and/or unique
properties (in the context) and it won't get that bad.
If it works, and everything is named according to this
principle (even badly so to some people) I don't think
anyone will have a case "the style is bad". A single
foobar tho is instant DQ.

> This approach grates against the Elisp coding
> conventions [...] It breaks
> `custom-unlispify-tag-names` ... autocompletion ...
> ... user expectation long established by code that
> properly follows the conventions that symbols ought
> to take the form PREFIX-some-symbol.

Most important it makes SENSE for things to be named
sensibly. Without that there is chaos. And not chaos
as in the jungle which actually is chaos only to the
untrained eye lacking the fine touch to decipher the
(sub)systems - it is chaos as in the mad dreams of
winter vomiting disease.

-- 
underground experts united
http://user.it.uu.se/~embe8573


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-05-11 21:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-11  6:18 PSA: please stop using weird symbol prefixes Paul Rankin
     [not found] <mailman.2751.1431333428.904.help-gnu-emacs@gnu.org>
2015-05-11 21:17 ` Emanuel Berg

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.