While I'm at it: Sacha Chua did an interview with John Wiegley which may be of interest to you, should you be into emacs. If you're not, you can safely skip this one.

If you've never heard the name, John wrote loads of elisp code (some of it included with emacs, like `eshell', other stuff can be found in his github repos, like his chess-mode) and many other languages as well. Prominently C++ (for which he is or was on the ISO/ANSI Commitee, I think), which he used to implement ledger, a double-entry accounting tool about which he was interviewed by Randal L. Schwartz for the FLOSS Weekly podcast (episode 150: ledger).

John and Sacha discuss how his emacs workflow looks like, what packages he uses, how he integrates emacs into the rest of the system... etc etc. I couldn't agree more to his answer about why emacs got as successful as it did: obviously the fact that it's scriptable via elisp. But not that on its own, but the fact that you have infinite places to make emacs run your own code in order to make it behave the way you want. There are two major mechanisms for that: The first most people know: Hooks. The other is less known, but comes in very handy when there is a lisp function in emacs that you'd like to amend a little bit. You could just copy the function from emacs's codebase into your configuration and fix it up in there. But what about upstream improvements then? Right. In emacs you can use advices in order to tell an emacs function in which way to behave differently.

That may sound a bit far fetched, but I'm actually using it. Whenever I have multiple buffers visible in emacs and I switch between them, I use an advice to a function to update my tmux status line with the currently focused file name. There's no hook at that point, but with advices there doesn't have to be one.

Anyway... here's the link to the interview: On Sacha's blog, Direct Link to the video at vimeo

Posted Thu 28 Jun 2012 14:15:29 CEST Tags: