Last time I left
straight for the built-in
package.el, a choice I have not had
the pleasure to regret so far. Now I am going to reason about a more ambitious
change in my Emacs configuration: I am not using use-package any more.
Before answering your concerned why!? let me just say that if you are happy with
use-package you should stay with it. By wrapping all the settings to a built-in
feature or an external package with
use-package you can easily notice what you
are doing wrong when tweaking something, while having control over the
installation and the loading of your favourite library as well. Despite some
unhappiness around the web1,
use-package is just a great tool that any serious
Emacs hacker should consider when digging deep into their
As for my choice to move away from it, it all started as an experiment. I wanted
to see if I could have the same amount of control and readability over my
init.el without an extra package. You see, most of the recent changes to my
setup involved trying to rely on Emacs own facilities to answer my needs, and
I am glad to say vanilla Emacs has been really a surprise in this regard. My
liaisons with project.el and Flymake are nice examples of this.
use-package has meant rethinking the way I install packages, especially
if I want my setup to be ready to go any time I upgrade to a newer version of
Ubuntu. My solution was adding the packages I use to
and have a check on startup to make sure they are installed. This works very
well combined with
package-autoremove: if a package is not listed under
package-selected-packages, Emacs takes care of the mess.
use-package blocks have been replaced with a combination of
add-hook, which was not as complicated as
it might sound, and more often than not was similar to what I had in my days
use-package takeover. True, I lost the nice readability of
use-package with this massive edit. For example, its keywords have the benefit
of grouping settings together and clearly indicate when a new group starts, but
on the other hand now there is less macro-magic masking package-related
operations involved. As a result I have a more detailed insight of what is
really going on with my Emacs Lisp. For instance, I have gained a better
knowledge of what
run-with-idle-timer actually does.
Again, it is a matter of personal preferences. By now the beauty of
is well-known in the Emacs world and all the praises are well-deserved. Let me
stress it again:
use-package makes your configuration simpler to manage and
easier to read. Those were the main reasons I switched to it years ago, anyway.
However, if you know what you are doing you can achieve a clean and pleasant
init.el with what Emacs already offers. Does it take more effort? Yes, it
probably does. Is it really worth it? It’s up to you, mate. Am I just showing
off? No, come on, don’t be rude.