
source: vim.org
Over at 43Folders, a blog dedicated to "be as productive as possible", the author is switching his text editor over to vim. Vim is a programmers dream and a casual user worst nightmare*. It is an editor targeted to power users.
In order to use vim (an open source version of vi) you have to learn it; there is no other way around. For the novel user, there is no easy way to jump start and use it than understanding the basic philosophy first (command mode versus insert mode) and then start practising and memorising commands.
However, once you learn it, what you gain (potentially) is an increase of productivity in text editing/creation related tasks. “No pain no gain” might be the case, but it can be one of those applications that let people be in the flow, or the ability to focus on task goal and not on the tool used. The tool becomes transparent.
Jef Raskin wrote about the issue of interface learn-ability versus productivity and beginners versus power users, arguing that we are all beginners/casual users and power users at the same time even within the same application.
Interface design can be about the tradeoffs of achieving maximum efficiency/productivity versus everything else (learnability/easy to use/visibility of commands/modes/automation /repetitiveness/keyboard shortcuts/user experience/emotional design/simplicity/generic and casual use/specialisation….).
However productivity versus “all the rest” is just one way to look at interaction design and every dimension brings different issues to the design space, and there is no doubt of the benefits of having easy to learn, easy to “jump start” user interfaces (i.e. just see the impact of blogging or photo blogs have had on the online community).
A good resource to help thinking about these topics is the write up of the CHI workshop “Testing for Power Usability”, that dealt with the “next level” of usability that does not include only beginners.
Food for thought…
* It is not that bad and there are GUI versions. However, in the pure command line version the first command that you have to learn is how to quit the application, as there is no obvious way of doing it.