Subject: "internal" designation [was: bug#24627: 24.5; (thing-at-point 'list) ...]

From: Drew Adams <[email-masked]>
Date: Tue, 11 Oct 2016 10:16:30 -0700 (PDT)

>  (defun thing-at-point-bounds-of-list-at-point ()
>    "Return the bounds of the list at point.
> -[Internal function used by `bounds-of-thing-at-point'.]"
> +\[Internal function used by `bounds-of-thing-at-point'.\]"

FWIW:

I object to such an "internal" designation being in that doc string.

What's the point of that?  What makes this function particularly
"internal"?  Seems like a gratuitous characterization (at best).
That the function is used by `bounds-of-thing-at-point' is obvious,
and anyway that fact does not belong in its doc string.

IMHO, there is too much of this trying to wall off this or that as
beomg in some sense "internal" (with no explanation, including no
code comment, as to what makes it internal).

The definition typically given for this characterization is that the
thing so designated is _liable to change_.  Big deal - lots of stuff
is liable to change.  Saying that doesn't help anyone.  How liable?
Why liable?

And when such a thing does change, it is likely that other things, not
designated as "internal" also change, including user-visible behavior.

IOW, the thing walled off is often not really internal at all - the
code is not just one implementation of a given (stable, non-internal)
interface.  Typically, there is nothing special or tentative about
the code.

Emacs and Emacs Lisp are things that invite users to dig into and
change them.  Emacs is not your typical software use and development.
(Likewise, free software, BTW: there is no solid separation between
user and developer.)

For Emacs, this "internal" designation is generally a useless crutch,
IMO.  And my impression is that recently (the last several years) its
use has been spread much more.  In the more distant past it was very
rarely resorted to, if at all.  And I don't think anyone suffered
from its lack of use.  No one needed to be warned that this or that
might change.

My sense is that this has been used more and more simply as a way of
warding off users from offering suggestions about the thing that is
so "protected", whether it be requesting better doc or something else.

My estimation of the "internal" label contagion is this: from useless
to nefarious.  It seems unemacsy, trying to put an unnecessary wall
between Emacs development and Emacs users.  There should be little or
no reason for Emacs to tell users "don't use this".

Removing the "internal" nonsense for this function would be a start...