A Comparison of Wily and Vim
Text editors are a pleasure for developers. A good programmer uses the text editor as his main working tool. After all, programmers spend most of their day typing away code on text files.
That is why text editors are so important for a good programmer. And learning a new editor is like learning a new language, giving you a lot of possibilities on how to accomplish certain tasks.
That is the reason why I like to try new text editors from time to time, in order to see if they provide any useful features that I might be interested in adding to my toolbox.
One the latest editors that I tried out was wily. Wily is a relatively obscure editor, but it comes from the same tradition of ed, vi, and Sam. It is a version for UNIX of the acme editor, that was designed and implemented on plan9.
What is really different about wily and acme is that hey are text editors for programmers that are completely based on use of the mouse.
The Mouse and Programmers
Almost every programmer out there hates to use the mouse. This is an issue because most of us are faster using the keyboard, and the keyboard provides far more combinations of commands than the mouse.
Therefore, coming to the wily world is not as easy for a programmer as using other editors such as Vim.
Essentially Wily uses the mouse to activate a number of functions, such as running commands, searching, and of course, cutting and pasting.
While the idea is interesting in theory, it has the big drawback that it requires people to learn to use the mouse in ways that they are not used to do. For example, most user interfaces require users to click or double click in elements of the screen. On wily, however, one has sometimes to do “mouse chords” a sequence of left, right, and middle-button clicks that performs some action.
This is not only unusual, but it is also really painful. And the worse, in my opinion, is that there are several options that may be used to avoid doing these operations with the mouse.
The main reasoning for this behavior used by wily/acme users is that the mouse is the easiest way to select text in a GUI.
I agree that it may be an easy way, however it is not the best one. In vi, for example, there are at least two ways that are easier: using search or jumping to a specific line on the screen using the keyboard. And these are just two methods, there are many more available for Vim users.
For example, on wily one can search for the next selection using a middle click on the desired text. However, in Vim one can perform the same search using the * command, with is several times faster if you can touch type.
Another problem with wily is the limited set of features. The proponents of the software think that this is a strength, because the total amount of source code is small and easy to understand. However, there is no advantage is a code base that is easy to understand if you are not willing to extend it. It is the same as saying that you like to have a clear kitchen because it makes it easier to cook, and them refusing to cook because it is going to mess up the kitchen.
Therefore, my impression is that wily/acme is an interesting experiment and that some people would become used to it. However, I don’t think it provides anything really better, compared to other programmable editors such as Vim or Emacs. In fact, due to its views of software development, the writers are convinced that it is OK to offer much less features, without really providing a better alternative.