Know Your Tools

All art forms have technique, which might be defined as "the mechanisms by which the artist incarnates his vision."

A pianist's technique is how he presses the keys.

A painter's technique is how he puts paint on the canvas.

A programmer's technique is how he changes programs.

Good technique is not sufficient to make good things, but it is necessary. Most programs are created, edited, and read as plain text, so a programmer should find good tools for doing those things and master them.

There are many options, but the best ones are the old venerable workhorses.

Bash, vim, and Emacs have been honed over decades to a razor edge, each incarnating generations of hard-won insight on how to work with text. Learning that wisdom takes time and patience, but the effort is well worth it.

Both are arbitrarily extensible [1] and have a huge array of extensions to handle almost every editing task you can think of (and a few that you haven't).

If you change OSes, or RMS and Moolenar die, Emacs and vim will still be there. So will your configuration, extensions, and workarounds, if kept under version control.

Closed-source editors won't last a lifetime, but these two are halfway there.

[1]Few love vimscript, but Emacs Lisp retains a beautiful, arcane style of software development that has largely vanished since the death of the Lisp machines. It is an ugly Lisp, by most accounts, but an ugly Lisp still beats most languages.

Other Articles In 'meta'