Hunter Praska's Blog

Reply to thread

hunter ###Admin 2018-10-08 20:45:52 No. 1

Making Good Tools

Originally written in July 2016.

I think about how to make good tools pretty often, and I've decided to write some of my thoughts here. I am going to analogize common text editors to weapons in an RPG to explain.

I would like to say that this is not meant to disparage your favorite editor. I have used all of these editors, and they're all great. You should use what you like. Except Notepad. Don't use Notepad.


Notepad is the weapon that you start the game with. Sure it can get the job done, kind of1. However, most people throw it away as soon as they can.

Sublime Text

Sublime Text is like the first decent weapon you pick up. It's made for beginners and it works really well for a while. You can even enchant it to make it a little more powerful! However, you quickly reach its limits and yearn for something stronger.


Vim is a weapon made by experts, for experts. You need a high skill level to make use of it, but it works very well for those with the experience to wield it. With enough gold, you can add a lot of powerful enchantments to it which greatly enhance its strength. However, its high requirements mean that many adventurers are unable to ever feel its power.


Emacs is the weapon that you get very early on as an ultra-rare drop. It's pretty powerful to begin with, but it is also alive. Just like you, Emacs gains experience as you use it, thus allowing it to grow with you, even going toe-to-toe with expert weapons. This is the weapon everyone dreams of getting.

Another way of thinking about Emacs is that it is the custom-order weapon that exactly suits your needs. This analogy works well as an expert, but most beginners don't have the cash to buy custom-order weapons.


From the above, it may seem as though I am saying that everyone should be using Emacs. This is not the case. I use Vim, not Emacs. I think that with current hardware; i.e. keyboard and mouse; modal editing is superior. Emacs is slow and kind of bloated; this is why I decided to learn Vim over Emacs.

Despite this, I think that Emacs is the superior tool. In Emacs I can create modal editing; Spacemacs has already done this. I think that good tools should be easy for a beginner to use, but they should also have the ability to grow with the user.

I think that Sublime Text fails this in a number of ways; I can't exactly use Sublime Text on a headless unit can I? It's also proprietary software, so if I really dislike some part of it, I'm just screwed. Basically, Sublime Text doesn't grow well.

Vim also fails, largely because it is very difficult for beginners to use. Most people can sit down with Sublime Text or Emacs and just start typing. In Vim, you have to learn how to enter Insert mode before you can even type! I also think that Vimscript is a large negative, it can make it annoying to expand the editor's abilities. Rather than just casting Enchant Item, you have to sacrifice a goat in a satanic circle to enchant it.

I think that a lot of things can be improved with our current set of tools, but even within the realm of text editors there is plenty of room for improvement.

[1] The fact that Notepad only reads newlines as \r\n can be really annoying if you open a file created on a Unix machine.