From: Matt Armstrong <matt@rfc20.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: rms@gnu.org, gerd.moellmann@gmail.com, emacs-devel@gnu.org
Subject: Re: Help sought understanding shorthands wrt modules/packages
Date: Tue, 22 Nov 2022 16:55:18 -0800 [thread overview]
Message-ID: <87y1s2a3rd.fsf@rfc20.org> (raw)
In-Reply-To: <831qpu25hx.fsf@gnu.org>
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Matt Armstrong <matt@rfc20.org>
>> Cc: emacs-devel@gnu.org
>> Date: Tue, 22 Nov 2022 10:01:33 -0800
>>
>> I think there is another drawback of Emacs' prefix based namespace
>> convention: that of longer local (private, non-public, unexported, etc.)
>> names.
>
> Why is that a drawback? (It's a serious question.)
Thanks for asking.
I have to admit that my answer boils down to familiarity. I'd like
programming in Emacs Lisp to feel more like the other programming
languages I'm more familiar with.
When I have written Emacs Lisp packages the package name prefixes have
been a bit of a chore to deal with. I'm happier programming in
languages where the namespace context is a property of a scope, usually
a file level context. This way, the "current" namespace need not be
re-stated throughout a package's code every time a name is mentioned.
This is a different concern than how code references names names from
other packages. If I'm writing code that uses something from some other
package, I'm fine stating that other package's name, especially if the
language lets me abbreviate longer package names (usually for the local
file/scope).
I believe the general dislike for having to re-state the associated
package within the package code itself is one reason why people write
packages like https://elpa.gnu.org/packages/nameless.html.
My guess is that avoiding this kind of repetitive verbosity, at least
for the common cases, is what many people want to get out of "Emacs
Packages/Modules". That is just a guess, though. I can't really tell
what benefits people actually want when they "it'd be great if Emacs had
CL style packages."
I have to say that, personally, CL style packages didn't "cut it" for me
either. They did make it easier to have package-private names that were
boilerplate free, but they didn't make it obvious which of my symbols
were exported and which weren't. That was a property of not of the
symbol name, not of its `defun/defvar', but of whether it appeared in
some export list somewhere else, often in a different file. I didn't
think that was particularly great, either.
next prev parent reply other threads:[~2022-11-23 0:55 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-30 6:45 Help sought understanding shorthands wrt modules/packages Gerd Möllmann
2022-10-30 8:38 ` tomas
2022-10-30 8:54 ` Eli Zaretskii
2022-10-30 9:14 ` tomas
2022-10-30 10:26 ` Gerd Möllmann
2022-10-30 10:52 ` Eli Zaretskii
2022-10-30 11:24 ` Is there a need for a module system Gerd Möllmann
2022-10-30 11:38 ` Eli Zaretskii
2022-10-30 14:03 ` Gerd Möllmann
2022-10-30 10:40 ` Help sought understanding shorthands wrt modules/packages Eli Zaretskii
2022-10-30 11:06 ` tomas
2022-10-30 11:19 ` Eli Zaretskii
2022-10-30 12:50 ` Stefan Monnier
2022-10-30 13:48 ` Gerd Möllmann
2022-10-30 14:25 ` Stefan Monnier
2022-10-31 6:31 ` Gerd Möllmann
2022-10-30 20:16 ` Helmut Eller
2022-10-31 6:27 ` Gerd Möllmann
2022-10-31 12:13 ` Juanma Barranquero
2022-10-31 12:57 ` Gerd Möllmann
2022-10-31 13:38 ` Juanma Barranquero
2022-10-31 19:53 ` Stefan Monnier
2022-11-11 4:35 ` Richard Stallman
2022-11-11 9:33 ` Gerd Möllmann
2022-11-13 4:17 ` Richard Stallman
2022-11-13 6:41 ` Gerd Möllmann
2022-11-03 3:17 ` Richard Stallman
2022-11-03 5:33 ` Gerd Möllmann
2022-11-03 3:17 ` Richard Stallman
2022-11-03 8:12 ` Michael Albinus
2022-11-03 3:17 ` Richard Stallman
2022-11-03 8:46 ` Eli Zaretskii
2022-11-05 16:49 ` Richard Stallman
2022-11-05 17:04 ` Eli Zaretskii
2022-11-07 7:47 ` Richard Stallman
2022-11-07 12:52 ` Eli Zaretskii
2022-11-08 6:19 ` Gerd Möllmann
2022-11-08 9:54 ` João Távora
2022-11-08 10:35 ` Gerd Möllmann
2022-11-08 15:40 ` João Távora
2022-11-08 15:47 ` Stefan Kangas
2022-11-08 22:43 ` João Távora
2022-11-09 6:57 ` Gerd Möllmann
2022-11-09 7:23 ` Gerd Möllmann
2022-11-11 4:34 ` Richard Stallman
2022-11-11 9:25 ` Gerd Möllmann
2022-11-12 3:35 ` Richard Stallman
2022-11-19 22:51 ` [External] : " Drew Adams
2022-11-20 7:18 ` Eli Zaretskii
2022-11-20 18:55 ` [External] : " Drew Adams
2022-11-20 19:02 ` Eli Zaretskii
2022-11-22 12:14 ` [External] : " Richard Stallman
2022-11-22 14:22 ` Eli Zaretskii
2022-11-20 8:08 ` Gerd Möllmann
2022-11-12 3:35 ` Richard Stallman
2022-11-22 19:37 ` Matt Armstrong
2022-11-23 7:33 ` Juanma Barranquero
2022-11-26 23:32 ` Richard Stallman
2022-11-27 9:05 ` Juanma Barranquero
2022-11-30 23:55 ` Richard Stallman
2022-11-23 7:42 ` Gerd Möllmann
2022-12-14 22:21 ` Richard Stallman
2022-12-15 6:47 ` Eli Zaretskii
2022-12-17 14:53 ` Richard Stallman
2022-11-22 18:01 ` Matt Armstrong
2022-11-22 18:44 ` Eli Zaretskii
2022-11-23 0:55 ` Matt Armstrong [this message]
2022-11-23 7:49 ` Gerd Möllmann
2022-11-23 12:18 ` Eli Zaretskii
2022-11-11 4:35 ` Richard Stallman
2022-11-11 9:35 ` Gerd Möllmann
2022-11-11 12:09 ` João Távora
2022-11-11 13:01 ` Gerd Möllmann
2022-11-11 14:23 ` João Távora
2022-11-11 15:12 ` Gerd Möllmann
2022-11-12 9:17 ` João Távora
2022-11-12 13:00 ` Gerd Möllmann
2022-11-12 3:35 ` Richard Stallman
2022-11-05 21:47 ` Eduardo Ochs
2022-11-06 9:05 ` Michael Albinus
2022-11-06 11:19 ` João Távora
2022-11-11 4:35 ` Richard Stallman
2022-11-11 10:09 ` João Távora
2022-11-12 3:35 ` Richard Stallman
2022-11-12 10:11 ` João Távora
2022-11-12 14:36 ` Dmitry Gutov
2022-11-12 15:20 ` João Távora
2022-11-12 17:32 ` Dmitry Gutov
2022-11-12 18:45 ` João Távora
2022-11-14 1:03 ` Dmitry Gutov
2022-11-14 6:33 ` João Távora
2022-11-14 11:41 ` Dmitry Gutov
2022-11-14 13:41 ` João Távora
2022-11-14 3:13 ` Richard Stallman
2022-11-11 4:35 ` Richard Stallman
2022-11-11 8:53 ` Michael Albinus
2022-11-11 4:35 ` Richard Stallman
2022-11-11 7:10 ` Helmut Eller
2022-11-01 3:11 ` Ag Ibragimov
2022-11-02 20:11 ` João Távora
2022-11-03 5:12 ` Gerd Möllmann
2022-11-03 20:04 ` A short defense of shorthands.el (but CL packages are still better) (Was: Help sought understanding shorthands wrt modules/packages) João Távora
2022-11-04 3:28 ` Richard Stallman
2022-11-05 1:09 ` A short defense of shorthands.el (but CL packages are still better) João Távora
2022-11-07 7:44 ` Richard Stallman
2022-11-07 10:18 ` João Távora
2022-11-08 5:02 ` Richard Stallman
2022-11-08 5:18 ` João Távora
2022-11-05 3:13 ` Help sought understanding shorthands wrt modules/packages Richard Stallman
2022-11-06 11:31 ` João Távora
2022-11-08 0:27 ` Matt Armstrong
2022-11-08 4:52 ` João Távora
2022-11-08 5:34 ` Gerd Möllmann
2022-11-09 4:03 ` Richard Stallman
2022-11-09 5:42 ` Yuri Khan
2022-11-09 5:48 ` tomas
2022-11-09 6:02 ` Matt Armstrong
2022-11-09 7:15 ` Juanma Barranquero
2022-11-09 8:34 ` Gerd Möllmann
2022-11-09 10:07 ` Helmut Eller
2022-11-09 18:22 ` Matt Armstrong
2022-11-09 4:03 ` Richard Stallman
2022-11-09 5:13 ` Matt Armstrong
-- strict thread matches above, loose matches on Subject: below --
2022-11-07 21:20 Payas Relekar
2022-11-08 9:40 ` João Távora
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y1s2a3rd.fsf@rfc20.org \
--to=matt@rfc20.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=gerd.moellmann@gmail.com \
--cc=rms@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.