emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add shell-quasiquote.


From: Stephen J. Turnbull
Subject: Re: [PATCH] Add shell-quasiquote.
Date: Tue, 20 Oct 2015 13:35:32 +0900

(Sorry if anyone gets dupes, I horked my VM and it improperly handled
Taylan's display name, which caused bounces from at least two MTAs.)

Taylan Ulrich Bayırlı/Kammer writes:

 > The collective "opinion" here seems to be that it's a good idea to
 > reject perfectly working code with well-defined semantics for made up
 > reasons.

The reasons aren't made-up.  Duplication of needed functionality is
excessive complexity.  Introduction of unneeded functionality is
excessive complexity.  Excessive complexity makes it harder to learn
Emacs Lisp and/or harder to understand new code.  Compare the horrible
hash that is Emacs Lisp with a cleaner language like Guile[1], and
the costs become clear.  As an exercise, try getting shell-quasiquote
into Guile and see if you fare better there.  (Maybe you already have,
in which case just say so, and what the result was. ;-)[2]

Nor is it obvious to me that shell-quasiquote is "perfectly working".
Shell quoting is a very fragile thing.  If something is quoted that
shouldn't be quoted, that is a bug.  Sure, you provide ",,", but
that's punting the problem back to the user.  Whether it's better to
punt on quoting or unquoting a given construct is a question of
balance -- calling it "perfect" is a judgment that depends on the
application and on the user.  You have every right to say that for
yourself, but not for Emacs, not even in your intended application.
Different arguments apply to whether `shqq' *always* quotes enough to
prevent code injection.

None of that means `shqq' won't turn out to be right thing for many
Emacs applications in the end.  But your argument so far reduces to
"it won't hurt and it works for me".  That is inappropriate on both
counts when requesting maintenance and distribution by the Emacs
Project (which is what inclusion in GNU ELPA means, even if you are
offering to do the maintenance yourself -- you could spend that time
on other services to the project).

If upon consideration you don't like that much better, then you should
find an alternative way to contribute, or an alternative community to
contribute to.  But you seem to misunderstand what the needs of the
Emacs Project are, and how that affects the community's evaluation of
your proposed contribution.  With a better understanding you may be
more willing to contribute on the community's terms (and make no
mistake, every community has its own terms).


Footnotes: 
[1]  Not entirely a fair comparison, of course, because much of the
yuckiness of Emacs is in the bundled applications.  But consider how
much functionality that is already in Emacs Lisp is duplicated by
seq.el, and you see the point.  There are reasons why seq.el cleared
the bar, but the duplication is a wart, even many warts, and it needed
to be justified.

[2]  Note that "quasiquote" already has a somewhat different meaning
in Emacs: "backtick quoting".




reply via email to

[Prev in Thread] Current Thread [Next in Thread]