From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: Daniel Colascione <dancol@dancol.org>
Cc: emacs-devel@gnu.org
Subject: Re: [ANN] New library stream.el in ELPA
Date: Mon, 19 Oct 2015 13:38:05 +0900 [thread overview]
Message-ID: <22052.29613.785079.277399@turnbull.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <5623E527.2090509@dancol.org>
Daniel Colascione writes:
> I prefer keeping code in master.
Hackers always do. The vast majority of users aren't hackers,
though. The vast majority of that vast majority (the half-vast
majority?) loves community package repositories, and for good reason.
N.B. I have no opinion on stream.el itself. My opinion is that these
stdlib/package repo issues need to be decided case by case, and that in
general a bias toward putting stuff in ELPA is not a bad thing. A
bias toward putting everything in core should be avoided in the
current state of the art.
> That way, it's easily maintained and distributed automatically.
Assuming it's maintained at all, and FVO "distributed" == "to the
hackers who pull from master daily", yes. To industrial users who get
their core Emacs from Debian or Red Hat, not so.
> There's very little downside: nobody is going to miss a few tens of
> kilobytes of compiled elisp.
True but irrelevant, even when the specious "few kilobytes" (due to
one small module) is replaced by the more realistic "many megabytes"
(due to a plethora of small modules and a few monster packages).
There is a lot of experience with standard libraries nowadays. A
short list of the real tradeoffs involves:
1. Obsolescence/bitrot of stdlib code.
2. Maintainer effort to prevent/remediate (1).
3. Users who need to keep a few modules up to date, but prefer to get
their core Emacs + from an OS distro.
4. Developers who always have a current build of master to hand, and
can easily rollback using the VCS if that breaks, vs. (3).
5. Paranoid enterprise environments where ordinary programmers have
to choose software from a list approved by HQ, and there's no
blanket approval for the package repository. (Such users' best
hope for access to new features is a short release cycle that fits
the convenience of the enterprise's software audit team.) This is
really the killer application for "everything in core", but I
haven't heard this claim in Emacs channels (and the data I've seen
on distribution of versions in a couple of large enterprises
suggests that a large majority of industrial users are perfectly
happy with 5-year-old Emacsen, and a significant minority often
uses 10-year-old Emacsen).
6. Variations in development cycles between core and modules, and
among modules. Similarity in cycles argues for joint release and
distribution.
7. Discoverability of modules in the stdlib is probably higher,
although as we've seen in several threads recently, even those
with great interest in the subject can be sadly underinformed
about the elephant in the room (eg CEDET/EDE).
> I see no need to flake off useful parts of Emacs and put them into ELPA
> when the core is not resource-constrained.
You haven't noticed that there just aren't enough developers to fix
all the bugs yet, let alone develop all of the attractive proposals?
That there's only one volunteer for lead maintainer, and he's
politically nonaligned in a flagship product of a political
organization (not to mention having reservations about top management
policy)?[1]
8. Of course to some extent those resource constraints argue for
putting everything in core for the convenience of those who *do*
do a lot of maintenance work on core.
> For me, using ELPA packages is a bit more awkward,
Emacs is not just about you and other core developers whose practices
are basically similar to yours, though.
> since I don't use package.el and pull in the bits of ELPA I want
> manually. If your package is only in ELPA, I probably won't hear
> about it, and unless it's particularly compelling, I won't use it.
You may be more diligent, but Emacs (like other sprawling language and
framework projects I know of) is such a mess[2] that most hackers won't
use core code if they have to look for it. It's easier to build your
own, submit/commit, and let Stefan et al. tell you there's a standard
way that also has benefits X, Y, and Z for your application.
9. This is often a good thing, as the existing code may have
limitations or even be quite inappropriate for the application to
hand. Such experimentation is encouraged by package repos.
I could go on, but I'll stop at 9, according to Guido's Rule of Single
Digits.
Footnotes:
[1] I expect these issues to be resolved satisfactorily to all
parties. But I wonder if John would have stepped forward if someone
who is an enthusiastic advocate of the GNU approach to software
freedom had their hat in the ring?
[2] Organization of modules is worse than NP-hard. I have found a
wonderful proof of this theorem but unfortunately it won't fit in a
4-line .sig.
next prev parent reply other threads:[~2015-10-19 4:38 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-14 11:43 [ANN] New library stream.el in ELPA Nicolas Petton
2015-10-14 12:37 ` Michael Heerdegen
2015-10-14 13:20 ` Nicolas Petton
2015-10-14 13:33 ` Michael Heerdegen
2015-10-14 13:30 ` Nicolas Petton
2015-10-14 22:13 ` Michael Heerdegen
2015-10-15 7:38 ` Nicolas Petton
2015-10-14 16:09 ` John Wiegley
2015-10-14 16:20 ` Nicolas Petton
2015-10-14 16:40 ` John Wiegley
2015-10-14 19:31 ` Nicolas Petton
2015-10-14 21:31 ` John Wiegley
2015-10-14 21:51 ` Nicolas Petton
2015-10-15 0:42 ` raman
2015-10-15 0:48 ` John Wiegley
2015-10-18 18:29 ` Daniel Colascione
2015-10-19 4:38 ` Stephen J. Turnbull [this message]
2015-10-20 6:55 ` John Wiegley
2015-10-20 7:02 ` Daniel Colascione
2015-10-20 15:18 ` John Wiegley
2015-10-20 16:16 ` Jay Belanger
2015-10-20 10:20 ` Stephen J. Turnbull
2015-10-20 12:07 ` David Kastrup
2015-10-23 11:30 ` Nicolas Petton
2015-10-23 19:21 ` John Wiegley
2015-10-15 10:08 ` Michael Heerdegen
2015-10-15 18:25 ` John Wiegley
2015-10-15 22:13 ` Nicolas Petton
2015-10-15 20:28 ` John Mastro
2015-10-15 22:02 ` Nicolas Petton
2015-10-24 19:16 ` Michael Heerdegen
2015-10-24 20:52 ` Nicolas Petton
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=22052.29613.785079.277399@turnbull.sk.tsukuba.ac.jp \
--to=stephen@xemacs.org \
--cc=dancol@dancol.org \
--cc=emacs-devel@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.