Vim: An Unconventional Favourite Product?
An attempt to analyse Vim from the lens of a product management framework by a failed aspiring product manager, because why not?
What is Vim?
Vi Improved aka Vim is a free and open source command-line modal text editor created by Bram Moolenaar in 1991, as a fork of the Vi text editor present in the UNIX operating system. Vim is primarily a desktop application installed by default on macOS, available for all versions of Linux and also for Windows. While Vi was a minimal text editor primarily meant to be used with just a keyboard, Vim has added mouse support and the ability to extend its functionality through plugins.
Competitors
Vim can be anything based on how it is extended and configured, and hence it's competitors include simple text editors like Notepad, advanced ones like Notepad++ and Sublime Text, format-specific ones like Obsidian and IDEs like VS Code, IntelliJ and PyCharm.
Users
Casual users: They use Vim as offered out of the box, without making any changes to the default configuration. This could either be because they are new and haven't explored the app completely, or they use it for very basic tasks which does not require them to know all the functions.
Power users: They have specific workflows and therefore aim to maximise productivity by modifying the default behaviour, and extending the functionality. These could include software developers, academicians, screenplay writers among others.
Plugin maintainers: The extensibility of Vim using its programming language Vimscript has led to the formation of a community of plugin maintainers who have created and maintained plugins for specific applications like syntax highlighting, code linting etc.
Pain Points
Casual users: Vim has a steep learning curve compared to other text editors. Many new users find it difficult to even exit Vim, to the point that it has become a meme. Therefore, Vim does not offer more utility than any other simple text editor.
Power users: Plugins are the easiest way for users to tune the application as per their utility. However, too many plugins tend to make Vim less performant, which is undesirable for such a light-weight application.
Plugin maintainers: Vimscript does not have any application beyond Vim and is also not as powerful and performant as multi-purpose programming languages, and hence is a major limiting factor in terms of expanding functionality, improving performance and maintaining compatibility with newer versions of Vim and Vimscript.
Solutions
Display basic keyboard shortcuts at the bottom of the screen by default, and thereby make the learning curve less steep for casual users.
Add a noob mode for new users with common keybindings like Ctrl+S to save and Alt+F4 to exit.
Enable support for creating Vim plugins with common programming languages like C or Python to improve performance and ease of maintenance for plugins.
Metrics
Vim is a community project, and is primarily used on Linux, where tracking is looked down upon. Sure, we could track total downloads by consolidating numbers from various Linux distributions, but that's where it ends. As a result, it is almost impossible to define and track metrics for various stages of the UX funnel. What could be a viable alternative to measure success?