Interview with Thierry Volpiatto, maintainer of Emacs Helm
Posted: - Modified: | emacsUpdate 2018-10-01: As /u/ReneFroger mentioned in the Reddit thread, it's important to note that Helm is in bug-fix-only mode at the moment because of family and financial commitments.
There are quite a few amazing people in the Emacs community, some with stories you'd never guess. A bunch of people thought you might like learning about Thierry Volpiatto (the current maintainer of Helm), so they interviewed him. Since they don't have a blog of their own, they asked me to post the interview on their behalf. Here it is!
-—
Thierry Volpiatto is one of the most prolific contributors to the Emacs community, having led the development of Helm since 2011, as well as contributing to other Emacs packages. He is the one of the Emacs Lisp package maintainers who we can't see often enough, doing a good job and giving back to the community! But Thierry tends to work quietly in his projects, so most of us don't know him very well. He seems to have only a GitHub profile, without anything else on the Internet. So, at my request, Thierry was kind enough to answer a few questions about himself and his work, and we're happy to have this opportunity to learn more about him!
First, a little history. Before Helm was called Helm, it was a project called Anything.el by Tamas Patrovics, similar to Drew Adams's Icicles project. In 2008, rubikitch took over development, and then in 2011, Thierry took over. During this period Anything was renamed to Helm. Since then Thierry has put thousands of hours and nearly 7,000 commits into the emacs-helm repository, adding innumerable features, fixing bugs, and patiently responding to (oft-repeated) questions from users, making Helm what many people consider an essential part of the Emacs experience. It's currently the most-downloaded package on MELPA (after dash.el
, a library used by other packages), with over 640,000 downloads since 2013.
Helm follows the same philosophy as Emacs: at first sight, it might be difficult to see how Helm could benefit you, but like Emacs, Helm will fully mold to your needs to find files, search in data and navigate. Nearly 200 packages on MELPA are based on Helm package.
Who is Thierry Volpiatto?
Tell us a little about yourself and your family, where you live, etc.
Do you speak any foreign languages?
Do you often program in languages other than Emacs Lisp? If so, why?
I've heard your day job is completely unrelated to Emacs or IT. What do you do, and how did you come to be in that field?
That's very interesting. We often see that Emacs developers work in IT, which lends itself to similar work like maintaining packages. Do you enjoy your work?
Are you interested in working in IT or FOSS development?
What does your family think about your work in the Emacs community?
Emacs
Tell us a little about your computer setup: operating system, software and tools you use, etc.
How would you describe your Emacs configuration?
site-lisp
directory with make
: emacs-async
, use-package
, psession
and helm
, of course. Other packages are installed locally from a local elisp
directory. Finally, some packages are installed from MELPA with package.el
through the helm
interface. I install different versions of Emacs in a separate directory (/sbin
) and I have a shell script that allows changing versions easily.What packages are very useful to you?
mu4e
for emails, as well as w3m
, magit
, iedit
, emamux
, wgrep
, and emms
. The others are packages I wrote myself like psession
, addressbook
, etc., and a few helm
packages not bundled with helm
itself like helm-ls-git
, helm-w3m
, helm-firefox
, helm-descbinds
, helm-emms
, helm-dictionary
, helm-addressbook
, and helm-apt
. helm
, async
, psession
and mu4e
are the most important, with magit
as well.How did you come to use Emacs?
Why do you use Emacs?
What's your favorite way of managing your to-do lists, projects, issues, etc?
org-mode
with priorities, time spent, etc. I'm not a super org-mode
user even if I do use it for storing information, notes, etc. I frequently use calendar
and diary
in Emacs for RDV, etc.If you could make any changes in the Emacs “ecosystem” or community, what would they be?
magit
, installable from modern platforms like MELPA. The model of Emacs and ELPA development is somewhat deprecated and inefficient, in my opinion.Helm's history and status
Why did you become Anything.el's maintainer in 2011?
anything
much earlier, I think, in 2008. I never liked all the *completions*
buffers, dired
buffers, etc. in Emacs, and when I discovered anything,
I thought that it was the way to make Emacs more usable. Even now I think Emacs might be difficult to use efficiently without the help of a package like helm
.Looking back on these past 7 years, did you imagine Helm turning out the way it has?
helm
development. But I'm quite happy with what we have, even if a lot of work still remains to be done.Is there anything that you know now that you wish you had known when you started working on Helm? What significant lessons have you learned while working on Helm?
helm
usage, etc., and it was too much. I've learned to stop or slow down before burning out.In many ways, Helm seems designed to blend in to Emacs and complement it, rather than being like an application inside of Emacs. One of the things I've noticed is that, even though it's a complex system, Helm is still very fast, which is quite a achievement. How did you make Helm so flexible and powerful without making Emacs “heavier” or slower?
helm
until I found a way to make them fast enough (e.g. I added colors in helm-find-files
for remote files only recently).Not many packages are nearly as powerful as Helm. Being so, it may be hard for potential users to understand its value and potential. How could newcomers be encouraged to contribute to Helm's development?
People are often thinking that helm
is a vertical version of ido
, but it's not: it's much more powerful. It would be too long to enumerate all that it does, but here's a small example among the many features helm
provides:
In ido
or similar tools, when you complete files, the only thing you can do is press RET
to jump to a file. With helm
there are actually 44 actions possible, not including the ones that are automatically added depending on the context (i.e. filtered actions). All of these actions are applicable to one or many marked files, whereas in ido
you can act on only one file. If you need a specific action that's not part of helm
by default, you can add it into the helm
framework, which is same philosophy as Emacs.
Supporting Helm's development
You've mentioned privately that maintaining Helm has become a real problem due to family and work commitments, which might be difficult to combine with your daily work in the mountains. If you were to receive enough financial support to work on Helm and other Emacs packages, what would you like to work on?
Many things, for now:
- Improving
helm
requirements and auto loading. - Improving debugging.
- Improving fuzzy matching.
- Improving
helm-dabbrev
. - Improving elisp package management from within
helm
.
And much more, particularly fixing incompatible Emacs changes that will inevitably happen.
Closing words
Thank you very much for the interview, Thierry! Emacs and its community would not be the same without you!
If you'd like to show your appreciation for Thierry's hard work and dedication all these years, or encourage his further work on Helm and other Emacs packages, please consider supporting him through his Patreon account.
—
Want to thank them or have follow-up questions? You can get in touch with Thierry Volpiatto through his Patreon page and Ernst de Hart at ernstdehart@gmail.com .