Interview with Thierry Volpiatto, maintainer of Emacs Helm

Posted: - Modified: | emacs

Update 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.

I'm 55 years old, French, and I've been a mountain guide in the Alps since 1984. For 20 years I guided people climbing the greatest summits and walls of the Alps, as well as canyoning and via feratta each summer, while working in the winter as a ski instructor and guiding people climbing icefalls. I'm now living in the south of France with my family, guiding people only rock climbs. I started programming 12 years ago (in 2006) when I discovered how useful a computer is when you know how to use it! I learned by reading books and other people's source code.

Do you speak any foreign languages?

I speak (more or less) English and Spanish.

Do you often program in languages other than Emacs Lisp? If so, why?

Not often now, because Lisp takes all my time dedicated to computing, but I used to program in Python, and I often write shell scripts when needed.

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?

I work outdoors with rock climbing. When I'm not working, I train myself for rock climbing anyway. :-) I discovered programming after installing a Linux box and starting to write shell scripts. Then I learned Python, Lisp and finally Elisp.

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?

Yes, I love rock climbing, mountaineering, and staying outdoors more generally.

Are you interested in working in IT or FOSS development?

No to be frankly, because I want to keep the freedom of going outdoors as much as possible.

What does your family think about your work in the Emacs community?

They think I spend too much time on Emacs, but they are also happy to see me at home during this time, not running in the mountains. :-)

Emacs

 

Tell us a little about your computer setup: operating system, software and tools you use, etc.

I actually use Linux Mint, I am a fan of Nix systems, shell scripts etc. Most of the time I use Emacs, of course, Tmux, and Firefox.

How would you describe your Emacs configuration?

I install a few, very important packages for me in the 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?

I don't use many packages. I use 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?

Like everybody, I think, I started using Emacs because I was looking for a text editor to edit my code, investigated Emacs and I ended up writing Elisp code.

Why do you use Emacs?

Emacs allows me to do nearly everything, and more importantly, I can write code to do what I want.

What's your favorite way of managing your to-do lists, projects, issues, etc?

I'm not very organized like some other people who have to-dos in 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?

I think the future of Emacs lies in projects like Remacs, open to the world with no political constraint, with people writing nice modules like 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?

I started developing 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?

Honestly, no. If I knew this, maybe I would never have started the project. Because I have often been burned out with 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?

Yes: to do only what I can do in a reasonable amount of time. At the beginning I was trying to do everything: writing code, documentation, helping users about bugs or 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?

To be fast I had to rewrite most of the core functions. There are still improvements to do in this sector, though. In some places I had to find the balance between being clever, but not too much, to keep it fast enough, like with fuzzy matching. Also, I had to refrain from adding too many fancy things into 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

When Jonas Bernoulli, the Magit maintainer, announced that he needed financial support last year, a large fundraising campaign was set up, which was a great success. Nearly 2,000 backers pledged $73,000 to enable him to work full-time on Magit for a whole year. On top of that, more than one hundred people pledged to donate $3,756 to him every year.

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 .

You can comment with Disqus or you can e-mail me at sacha@sachachua.com.