How is Zed Actually Used?
A few releases back, Zed added opt-in analytics. Upon first launch, Zed asks the user whether he's ok sending some anonymous usage data to further improve Zed. It has been about two months since this release, so it's time to share some results.
Of course, there's no way of telling how many people have not opted into the analytics, so total numbers don't say much. However, presumably percentages give some indication how Zed is used.
Zed Chrome vs. Standalone
As of version 0.11 Zed comes in two editions:
- Zed Chrome, the Chrome App installable (and discoverable) via the Chrome Web Store, available for all platforms that Google Chrome runs on.
- Zed Standalone, based on node-webkit, available for Mac, Linux and Windows.
At various points in time, features have been discussed that would need to introduce APIs (such as running CLI commands from sandbox code) that would only be implementable in the standalone version of Zed. Therefore, it's interesting to see how many users would be impacted if we'd start adding features that only work in the standalone version.
Based on data from the past two months, it turns out 79% of Zed usage comes from the Chrome App. Note that this is not just counting launches but all events -- meaning that "real" usage counts more towards this percentage than a single launch.
The question is: Why is the Chrome App so much popular? I can think of a few reasons:
- The Chrome App is promoted in the Chrome Web Store which brings in a lot of new users that otherwise would probably never had heard of Zed.
- The Chrome App has been around longer and people haven't switched.
- The Standalone version seems to have some unexplainable power consumption issues, at least on Mac.
- The standalone version does not have automatic configuration syncing, nor the syncing Notes project, nor Dropbox support.
- The standalone version does not run on Chrome OS.
A few of these can be further investigated. For instance, option 4 includes Dropbox support and the Notes project. Are those heavily used features? We have some data on that. Here are the used "file system types" ranked by usage:
Translation of the names used:
localis Chrome's Local Folder file system implementation.
configis Chrome's syncing Configuration file system.
nodeis the Standalone version's node.js-based local file system.
manualis the Manual project,
syncfsis the syncing Notes project (Chrome only).
httpsis remote editing of directories using
nwconfigis the Standalone version of the Configuration project.
dropboxis the Dropbox file system (Chrome only).
textareais the new "Edit in Zed" feature (Chrome only).
From this we can see that editing of local folders (
node) accounts for 57% of all projects being opened. Chrome-specific features (Notes and Dropbox support) add up to about 10%, which isn't huge but still significant. Whether or not people choose the Chrome version for this reason -- they at least use it.
Zed has syntax highlighting support for many different languages. In addition, for some languages it has language-specific features, such as integrated syntax checking, linting and code beautification. However, does that impact usage? What languages do people use Zed for where language-support can be further improved?
Here are the top 10 most popular language mode by usage:
zed::start document shows that uses
markdown mode, so that may skew the results. Interesting items on this list are PHP, Python, C, and Ruby. PHP has a syntax checker, but Python, C and Ruby don't have very good language features yet. Definitely something to work on in further releases.
Goto vs the File Tree
Zed has championed its Goto functionality. It grows out of the belief that the "type a few characters in a search field" way of navigating files is better than using a file tree. Nevertheless, Zed still features a file tree, although it's not always visible. So, what are users actually using?
Based on data collected, it appears that in Zed 87% of the time Goto is used to navigate between files. Note that this doesn't prove that Zed made the right call, just that users use Zed the way it was intended.
Zed is command based, commands can be bound to keys, but also be executed by name. Naturally, most commands are executed through a key binding (e.g. you use the
Up key rather than executing the
Cursor:Up command manually), but commands can be executed by name too. It's interesting to see what commands are commonly executed by name -- because they're worth assigning a keyboard shortcut to.
Here's the top 10:
Three of these
Navigate:Reload Filelist are file-management related commands. I use these three myself too, although I bound the latter to a key in my own configuration.
Navigate:Reload Filelist is an annoying one. It's a command that ideally you'd never have to execute manually, Zed should just detect changes itself. Sadly, in practice this is hard to do without rescanning your whole file tree (potentially huge) every minute or so (and is every minute even enough?) as there's no way to "watch" a directory tree at an OS level (at least not in most file systems Zed supports, such as the HTML5 based local file system used in Chrome).
Operating Systems and Geography
What operating system do most Zed users use? Here's the list:
- Windows: 42%
- Mac: 16%
- Linux 64-bit: 16%
- Chrome OS: 15%
- Other: 11%
Time to pay attention to all those Windows users, for sure. Also, there's a significant number of ChromeOS users, which I find intriguing. It'd be interesting to further investigate how ChromeOS users use Zed, because most likely they don't use the ability to edit local folders -- because there are none (other than the Downloads folder).
And just for fun -- here's the geographic distribution of Zed users:
This begs the question: People of Greenland -- y u no use Zed?
So, what do we do with this information? Here's a few action items, at least for me:
- Test every release on Windows, since this is how the largest percentage of users will experience Zed.
- Explore what new features can be added to the following language modes:
- See what keyboard shortcuts can be assigned to reloading the file list and renaming a file.
- Write up a blog post about effective ways of using Zed on ChromeOS.