From: Oleh Krehel <ohwoeowho@gmail.com>
To: Juanma Barranquero <lekktu@gmail.com>
Cc: Emacs developers <emacs-devel@gnu.org>, Dmitry Gutov <dgutov@yandex.ru>
Subject: Re: use-package.el -> Emacs core
Date: Tue, 10 Nov 2015 13:40:18 +0100 [thread overview]
Message-ID: <877flqc9jh.fsf@gmail.com> (raw)
In-Reply-To: <CAAeL0STK2ddH-ybLHV05zKwKqO7WbYdWfXPKRBOXONZwzXndPw@mail.gmail.com> (Juanma Barranquero's message of "Tue, 10 Nov 2015 13:23:35 +0100")
Juanma Barranquero <lekktu@gmail.com> writes:
> On Tue, Nov 10, 2015 at 1:10 PM, Oleh Krehel <ohwoeowho@gmail.com> wrote:
>
>> Customize is for people that aren't yet ready to learn Elisp. Once they
>> do, it indeed becomes redundant.
>
> Then, that's an argument *for* use-package. It's for users that aren't yet ready to learn Elisp, but who want to load a package easily from their init.el.
>
> use-package is syntactic sugar, yes, and as such, it's easier to use that the "real deal". It is its own language, but that's a feature: if you're a user not interested in learning Elisp, to borrow from Phillip's example, certainly
I have a completely opposite opinion regarding syntactic sugar: it's
detrimental unless you know what it does. In fact, I generally dislike
it even if I know what it does (see my thread on `pcase').
A user who's copy-pasting syntactic sugar won't see the structure behind
it. A user who's copy-pasting a bunch of `setq', `define-key' and
`add-hook' statements will eventually see the pattern and actually learn
the language.
> (use-package foo
> :load-path "~/foo"
> :commands foo-a foo-b foo-c
> :defer 5
> )
>
> seems much easier than
>
> (progn
> (eval-and-compile
> (push "~/foo" load-path))
> (run-with-idle-timer 5 nil #'require 'foo nil t)
> (unless
> (fboundp 'foo-a)
> (autoload #'foo-a "foo" nil t))
> (unless
> (fboundp 'foo-b)
> (autoload #'foo-b "foo" nil t))
> (unless
> (fboundp 'foo-c)
> (autoload #'foo-c "foo" nil t)))
The above `use-package' example essentially translates to 0 lines of
code if one uses package.el, since all commands are autoloaded
anyway. Regarding idle loading, I've found exactly one use for it - Org:
it simply doesn't pay off for the other packages.
Compare to this code, if the user decides against package.el for some reason:
(add-to-list 'load-path "~/foo")
(require 'foo)
The above 2 lines show how Emacs actually works, and are in fact very
simple. And they teach the new user `add-to-list' and `require' which
are relevant absolutely everywhere, not just in init config setups.
next prev parent reply other threads:[~2015-11-10 12:40 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-10 0:02 use-package.el -> Emacs core John Wiegley
2015-11-10 0:14 ` Dmitry Gutov
2015-11-10 0:31 ` John Wiegley
2015-11-10 0:40 ` Dmitry Gutov
2015-11-10 7:55 ` Oleh Krehel
2015-11-10 11:52 ` Juanma Barranquero
2015-11-10 12:10 ` Oleh Krehel
2015-11-10 12:23 ` Juanma Barranquero
2015-11-10 12:40 ` Oleh Krehel [this message]
2015-11-10 12:47 ` Juanma Barranquero
2015-11-10 15:15 ` John Wiegley
2015-11-10 15:42 ` Juanma Barranquero
2015-11-10 15:56 ` Dmitry Gutov
2015-11-11 0:37 ` Stephen Leake
2015-11-11 0:56 ` Juanma Barranquero
2015-11-10 15:55 ` João Távora
2015-11-10 16:08 ` John Wiegley
2015-11-10 16:23 ` Drew Adams
2015-11-10 14:03 ` David Kastrup
2015-11-10 14:15 ` Oleh Krehel
2015-11-10 14:22 ` João Távora
2015-11-10 15:17 ` John Wiegley
2015-11-10 15:46 ` João Távora
2015-11-10 18:15 ` John Wiegley
2015-11-10 19:32 ` João Távora
2015-11-10 19:47 ` John Wiegley
2015-11-10 21:00 ` João Távora
2015-11-10 15:56 ` Kaushal Modi
2015-11-10 18:20 ` John Wiegley
2015-11-10 18:32 ` Drew Adams
2015-11-10 18:38 ` John Wiegley
2015-11-10 18:52 ` Kaushal Modi
2015-11-10 18:55 ` John Wiegley
2015-11-10 19:24 ` Drew Adams
2015-11-10 19:35 ` John Wiegley
2015-11-10 20:42 ` Drew Adams
2015-11-10 12:42 ` Kaushal Modi
2015-11-10 12:46 ` David Kastrup
2015-11-10 13:06 ` Oleh Krehel
2015-11-10 18:15 ` Evgeny Panasyuk
2015-11-10 18:31 ` Alan Mackenzie
2015-11-10 13:32 ` Wolfgang Jenkner
2015-11-10 15:08 ` Customize is only for newbies? [was: use-package.el -> Emacs core] Drew Adams
2015-11-11 0:01 ` Wolfgang Jenkner
2015-11-10 14:58 ` Drew Adams
2015-11-10 15:42 ` John Wiegley
2015-11-10 8:49 ` use-package.el -> Emacs core João Távora
2015-11-10 8:57 ` Pedro Silva
2015-11-10 9:45 ` João Távora
2015-11-10 12:01 ` Phillip Lord
2015-11-10 13:37 ` João Távora
2015-11-10 14:07 ` Oleh Krehel
2015-11-10 14:39 ` Nicolas Richard
2015-11-10 14:48 ` João Távora
2015-11-10 15:40 ` John Wiegley
2015-11-12 12:43 ` Nicolas Richard
2015-11-10 17:36 ` Phillip Lord
2015-11-10 0:44 ` Artur Malabarba
2015-11-10 1:05 ` John Wiegley
2015-11-10 1:24 ` Artur Malabarba
2015-11-10 1:37 ` John Wiegley
2015-11-10 3:20 ` Artur Malabarba
2015-11-10 5:37 ` Kaushal Modi
2015-11-10 6:07 ` John Wiegley
2015-11-10 23:27 ` Stephen Leake
2015-11-10 23:32 ` John Wiegley
2015-11-11 9:29 ` Oleh Krehel
2015-11-11 16:48 ` John Wiegley
2015-11-11 20:04 ` Kaushal Modi
2015-11-11 20:10 ` John Wiegley
2015-11-12 2:11 ` Copyright assignments in Gnu Elpa (was: use-package.el -> Emacs core) Michael Heerdegen
2015-11-12 2:19 ` Copyright assignments in Gnu Elpa John Wiegley
2015-11-12 3:50 ` Artur Malabarba
2015-11-12 22:31 ` Copyright assignments in Gnu Elpa (was: use-package.el -> Emacs core) Richard Stallman
2015-11-15 14:51 ` Copyright assignments in Gnu Elpa Andreas Röhler
2015-11-16 19:30 ` Richard Stallman
2015-11-10 1:37 ` use-package.el -> Emacs core Ted Zlatanov
2015-11-10 8:24 ` joakim
2015-11-11 0:29 ` Stephen Leake
2015-11-11 0:45 ` Dmitry Gutov
2015-11-11 9:30 ` Stephen Leake
2015-11-11 10:04 ` Xue Fuqiao
2015-11-11 10:20 ` Artur Malabarba
2015-11-10 8:44 ` Andreas Röhler
2015-11-10 9:29 ` Nicolas Petton
2015-11-11 0:32 ` Stephen Leake
2015-11-11 0:37 ` John Wiegley
2015-11-10 18:21 ` Stephen Leake
2015-11-10 18:34 ` John Wiegley
2015-11-10 19:54 ` Dmitry Gutov
2015-11-10 20:09 ` Kaushal Modi
2015-11-10 20:27 ` John Wiegley
2015-11-11 0:04 ` Stephen Leake
-- strict thread matches above, loose matches on Subject: below --
2017-02-15 19:49 Toon Claes
2017-02-15 19:51 ` John Wiegley
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=877flqc9jh.fsf@gmail.com \
--to=ohwoeowho@gmail.com \
--cc=dgutov@yandex.ru \
--cc=emacs-devel@gnu.org \
--cc=lekktu@gmail.com \
/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.