Code editors
The best thing since punchcards
November 12, 2014 — April 14, 2023
I’ve used a lot of code editors to edit a lot of code.
1 On loyalty
Editor brands, like programming languages, attract fierce loyalty from their users. Programmers especially tend towards committed pair-bonding with their preferred editor. If they eventually terminate their relationship, the parting is often acrimonious and highly public, with grievances aired in blog posts and much complaining to friends about who was at fault, who looks after the children on weekends, etc.
I have heard various hypotheses about why this might be — aesthetics, Stockholm syndrome, philosophical entailments, elaborate procrastination… I personally tend to the notion that the culprit is a descendant of Zawinski’s Law of Software Envelopment.1 This new law says that any hackable editor used by programmers will eventually turn into a full-fledged interface to your OS that you use for basically all interactions with your computer. To see this in full bloom, consider what four decades of emacs habituation hath wrought.
This seems to me to be a natural response to the fact that while OSes and computing platforms come and go, and keyboard shortcuts can be reassigned by unaccountable third parties, and work computers can be reallocated by the whim of the organisational boss and so on, no one can take your preferred text editor away from you; they must pry it from your cold dead fingers. A coder’s choice of editor is usually regarded as intimate as their choice of underwear, and as far outside the purview of the boss — which is to say, not always as far outside that purview as it would be in an ideal world but it is wildly inappropriate to mess with it. As such, it’s completely reasonable to become absolutely committed to this app that is the primary repository of your best habits and your muscle memory tricks and clever hacks and so on because you and it have a long co-evolution together and know how to keep each other happy.
I also like this model of why we care because the metaphorical corollary is that, much like business and romantic partnerships, editor-coder partnerships are essentially individually specific, arbitrary and taste-driven. There is no universally appropriate editor. I love my spouse, but that does not mean that everyone who does not love my spouse is wrong or that I should go on to Reddit to say so at length.
FWIW, I like zipping around in a light 2-stroke code editor, as opposed to over-engineered IDEs which make me feel like I am a stowaway trapped in the bilge of someone’s supertanker. There are many options, which is surprising given how hard editors actually are.
For a while I was using the editor, atom, which is as free from IDE comforts as a dinghy is free from staterooms, and yet as slow and gigantic as any ocean liner, so I clearly don’t know what I want any more.
Now I am using Visual Studio Code, which is faster and better, in a startling change of direction for Microsoft. Although it is still gigantic and slow in historical terms.
Here I list some general-purpose editors you might use including these my favourites, arranged in order of decreasing relevance to my own life. There are also special-purpose editors, e.g. for note taking.
2 Visual Studio Code
My current squeeze. See Visual Studio Code(./vsmv /Applications/TextMate.app/Contents/Library/QuickLook/TextMateQL.qlgenerator{,.disabled} # refresh
qlmanage -r qlmanage -p ~/Music/bass.flac.asd # no crash ```
When you next update TextMate, your fix will be undone, but maybe it will be fixed in TextMate itself? Or you can delete TextMate.
Or maybe the problem is somehow specific to my computer? I don’t know, I’ve already spent all the time on this I can.
3 Incoming
See also various specialist note-taking editors.
- jupyter is also effectively a text editor with built-in preview. I use that function sometimes when its many inconveniences are outweighed by its interactive code execution, which is increasingly rare.
Brackets — Adobe’s web-design-centric editor, with the best CSS support out of anything.(If you are going down this webbish path, make sure to use Emmet too)Adobe has discontinued support in favour of VS Code.- HackMD is a collaborative online markdown notebook targeting open-source ventures. 🏗
- BBEdit 14. After vi and emacs, the oldest editor that is still actively maintained is BBEdit, the 1992 classic which is actually not bad.
Footnotes
I do not believe that Zawinski’s Law applies any longer.↩︎