Emacs Eask - Alternative to Emacs Cask
Eask came from Emacs Cask
; if you already know what
Cask is and what it does, please skip this and
forward to the next section.
Eask are interchangeable in this section)
Eask is the dependency management tool for Emacs Lisp. It’s like
Node.js; but it isn’t exactly the same since
Eask has fewer tools than
plus their ecosystems are slightly different. Below is the link Why Cask? has
a better explanation.
❓ Then why Eask, and not Cask?
A simple comparison table below:
|Behind technology||Cross-Platform||Emacs Version||Size|
|Cask||Bash, Batch, and Python (Windows)||❌ Good on Linux and macOS, but it’s particularly bad on Windows||24.5+||3,000+ lines|
|makem.sh||Shellscript||❌ Doesn’t work on Windows by default||26.1+||1 file, 1200+ lines|
|Eldev||Bash, Batch, and Powershel, etc||✔ Good, but qutie slow on Windows||24.4+||4,000+ lines|
|Eask||Node or Native Executables||✔ Good, and it can be compiled to native executables||26.1+||3,000+ lines|
(Table is copy and paste, please visit the site here)
Eask’s advantages came from the behind technology choice; it uses
Batch, etc. It would require us to use
but we can use pkg (big thanks to
packaging into native executable to avoid such a hassle.
I hope the needs to install
Node.js and the extra step to call
are the only defect from
Eask. So what are the GOODS stuff?
Easkcan be packaged into native executables; it should give you a better speed!
- It uses
Cask’s DSL; it became very easy to adapt from Cask to Eask
- Eask-file is unlike Cask-file; it’s an Elisp file and functions similar to
- Use high-level programming language
npmhas a huge ecosystem. We can always fall back to the node layer if something doesn’t work inside Emacs (e.g.
Easkuses yargs as their CLI parsing library, which makes us only have to focus on the development
Easkdoesn’t require to call
Emacsall the time; this is particularly good in Windows due to the
forkoperation is quite slow in the system (this is why I don’t recommend
- Cross-platform and consistency; other alternatives don’t support Windows by
default except for
- It’s easy to expand, and clearer project architecture;
makem.shhave their files very huge, so it would be harder to maintain or add new features
- Global flag
-gallows you to manage your Emacs configuration
Eask sounds good, but it isn’t perfect. Here are the BADS:
- Harder to get into the development; you will need to know
Easkproject structure follows 1 command to 1 file; people hate having multiple files everywhere
- The project is much more complicated (same as no. 2)
After seeing and comparing all the alternatives; I would eventually pick Eask as my
major management tool. Eask has more potential if we compare it to the others; on the
other hand, I think
npm are very easy to learn.
I have been using Emacs on Windows for 7 years; it’s quite painful. In general,
many packages are either broken or doesn’t have a good user experience. I sometimes
do have a good user experience but rarely. For example,
helm, is slow
on Windows. Simple ping package
eping doesn’t support Windows'
docker.el doesn’t work on Windows (1 week ago). I know the fact is
Emacs is just too slow on Windows, but that doesn’t mean that we couldn’t do
anything about it! The fact is user experience is still bad on Windows, though! 😅
Many people seem to use
Cask, but the majority of them don’t require tests on Windows.
It’s simply hard and inconvenient. You would have to install
is particularly bad on Windows (UX wise). Here came the
Eask to be the savior.
It’s compatible with
Cask’s DSL and ensures the workflow’s consistency (no Python).
Hopefully, everyone can use
Eask to develop their elisp packages. Maybe someday
Emacs can live better under the Windows… What do you think?
I’ve also learned Hugo; would love to share it one day!