Emacs Survey 2020 Results
emacssurvey.org
emacssurvey.org
I see it a lot in the Clojure community as well, as with various other communities (such as Emacs). Not only does it provide the people behind the projects better guidance, it also gives me a better idea how my own usage and opinions relate to the wider community.
Having said that, one thing I found remarkable from the results of this survey is the proficiency in ELISP. A sizable fraction of the respondents feel proficient enough to write their own packages, a trait which I have yet to find someone in real life for (and I know more than a dozen emacs users). I can’t help but think there must be quite some selection bias going on in the respondents of this survey. :)
Writing a basic package really isn't that difficult.
This is a survey of r/emacs. There isn't a strong reason to believe this is reflective of Emacs' actual user base. Who are these people who feel a need to participate in a community based on their text editor? That religion stuff was normally meant as a joke.
Eh, guilty as charged. Why do people participate in a community based on anything? Because they are passionate about it.
There are detailed communities for every single thing you can think of. People collect matchboxes. There are people who make detailed paintings using Microsoft Excel. Why should Emacs be an exception?
And if a survey takes into account people who are passionate about their editor, that's good. Who should it take into account, the people who aren't? That's how you get operating systems that spy upon you all the time and optimize for some silly metric.
> That religion stuff was normally meant as a joke.
Just because someone makes a joke about it does not mean there cannot be an actual community of grown-ups who treat each other with respect around it. And the Emacs community I have seen so far is very respectful and welcoming, even for things like evil-mode that unify emacs and vi editing paradigms.
I encourage everyone who uses emacs or is interested in it to check out r/emacs and associated communities.
as a non-religious, fairly pragmatic emacs user I did because getting into emacs was difficult and they've got a lot of good resources. It's quite a huge and idiosyncratic piece of software I wouldn't be surprised if people like I did just use it as a general helpful resource.
When you stop to consider that back in the 80s and 90s, many pieces of software -- frickin' WordStar -- had their own user groups, even without benefit of the internet to connect them all, what else would you expect?
Second: emacs is not an editor, it's a platform with text as it's primary interface. It's similar to webbrowsers. So by it's nature there are many usage cases and technical problems to discuss with emacs. Thus, the community us quite vibrant for it's small size.
Third: Religion will always be where people gather long enough.
Its sort of like learning to drink coffee black.
Sorry if this is a heretical thing to say, but I think if there was a python-based emacs that people might be adding more extensive capabilities. I know I would.
Instead I seem to fumble my way through elisp.
18% of emacs users use doom-emacs, a project which started in 2014?
Nearly half use org-mode daily?
80% of users visit r/emacs???
Because of the sloppy survey design, it is pretty hard for me to interpret these results.
Whether the survey respondents are a representative sample of the general emacs population is a different question, and one which is very hard to answer given that we have no other data about people's preferences in emacs. Hopefully, the survey will become more popular with time, so we'll see results approaching the "true" values.
Because different response methods are pooled together in results without any reweighting, it's not clear how much bias has been introduced vs a hypothetical global emacs population measure.
What conclusions do you think you can draw from this? I don't know how to draw any that aren't hedged heavily. 18% for doom seems much higher than I expected - is that because I underestimate it, or because of how the survey was conducted? There's no way to tell, here.
Good survey design _does_ exist; it's an extremely intensely studied practice. It's not surprising that a casual internet survey doesn't follow anything resembling modern surveying techniques, but it does make results unclear.
I’m sure there are tons of Emacs users who go about their work without a fuss who aren’t aware of doom-Emacs and don’t care about Emacs communities, so it’s hard to make a survey representative of “all” Emacs users. C’est la vie.
That surprised me a bit too but then if I change the question a bit it might be a bit more plausible. How many users has searched for an emacs related question in the last one year and clicked on a search hit for a reddit thread in r/emacs? Considering that, 80% might not be that strange.
Surprised, and if I'm honest a little distressed, to see about a third of respondents use vi keybindings.
Absolutely amazed that so many people report using org-mode daily. Either the whole survey is primarily a survey of org-mode users, rather than Emacs users in general, perhaps because of the HN posting (I get the impression HN loves org-mode) - or nobody else uses Emacs.
Even more amazed about the questions on "completion frameworks" and packages for error checking (what?) in both of which the winning answer is something I've never heard of. I shall have to see what they're all about.
Finally - oh blimey, everyone reads /r/emacs. Perhaps that explains it all.
Why would other people's preferences distress you?
I don't know about any other language that combines a plain text outliner, keywords, tags, timestamps, hyperlinks and tables. These are exceptionally good primitives to implement a myriad of workflows. And I've left out some incredible features I do not use, like literate programming.
Applications like Things or OmniFocus are nice, but they can't adapt to alternative workflows. OmniOutliner was pretty great, though, and motivated some Org features during the GTD craze of late 2000s.
As it happens, I absolutely would love better support for org-mode workflows in other systems, especially on mobile. (I use Orgzly on Android which is fine but also limited and inflexible.) I could also see a native org-mode implementation making core operations much faster, although the EmacsGCC work is making a real improvement on that front already.
But I worry that supporting that would sacrifice the very properties that let org-mode evolve into what it is and to continue evolving even now.
I used to not use daemon/emacsclient until it got annoying to have multiple emacs windows popping up, then I switched. Nothing to be impressed about it; even lazy ones like me eventually get there.
I'm also surprised about the vi keybindings, but not at all distressed. If there are a lot of people out there who are accustomed to vi keybindings but found reasons to want to use emacs, that's a good thing.
I don't use org-mode daily, but I do edit my todo list daily. If it ever gets deeply nested I'll switch it over to org mode. And I suspect that's what all the people using org-mode daily are doing -- todo/idea lists.
I should start reading /r/emacs every few years to catch up on new things.
That's a good thing I'm sure; it makes sense that a super-configurable extensible application should be super-configured and extended. But it's a little odd to imagine, perhaps, saying "oh this is Emacs? great" and then finding that you don't actually know how to work it.
The barrier to switching, for me, is that the vi-like modes are set up by default to have vi-like keybindings, and I just don't care to go in and change them all to Emacs-alike keys, and I worry how flexible other software with "vi mode" will be about that. I am past the point where I'm going to use hjkl to move the cursor around, I use npfb. I can easily change the details in Emacs/Viper, but then how am I going to use anything else, like the shell? That is my main worry.
I'm probably missing something in your message, but there is support in the shell for vi bindings (https://opensource.com/article/17/3/fun-vi-mode-your-shell)
I made a couple shell functions/aliases to help me out. emacsd $servername and e for emacsclient -t. So spinning them up is trivial, and accessing them is just e -s $servername. With no name, it's just the default instance (used for random editing that's not part of a project or something I care to keep cleanly separated).
This is giving me nostalgia for when I used to use bitlbee + libpurple and have all my chat+irc in a single client (ERC). Good times.
It's one of the best parts, it's built-in, using it is one of the reasons you chose that software at all.
1. What's the best way to get Emacs on Mac? I heard that [1] is not a good solution, but I don't know why that is. So far I've used the d12frosted emacs-plus brew tap.
2. Further, does anyone have any resources for learning org-mode using Evil mode? I have Doom installed and it seems to use Evil by default.
I basically use it as the interface to my projects. It helped me become way more effective in git than I ever was with the command line.
For 2, evil is indeed available by default in Doom and works normally with org-mode. For the most part, everything works just like in vim, including splitting panes (windows in emacs), switching tabs if you've enabled them, and so on. So, writing notes in org-mode should essentially be just like writing nodes in any other editor with vim keybindings. You've also got by default nice stuff corresponding to some of the popular vim plugins, including vim-surround and commenting (via `g c <motion>` or selecting a range and then `g c`). There was also this post I saw recently exploring `evil-snipe`, `evil-easymotion`, and a few other plugins available by default that was quite helpful[1]. There are also a number of useful org-mode specific functions available when you're editing an org file behind the "local leader" `spc m`, like ticking off checkboxes (`spc m x`), storing links (`spc m n`) inserting links (`spc m l`), toggling todos, setting priority, scheduling dates, and so on. `TAB` cycles folding of headlines, `shift+TAB` cycles headlines throughout the document.
In general, one of the nicest things about emacs is the ability to introspect everything at runtime. `spc h v` allows you to search for, check (and change) the value of any variable, and you can often do some exploration in the fuzzy finder to figure out what settings are available for whatever editor feature you're using. `spc h k` lets you type a keybinding and gives you the documentation for whatever function it's mapped to. `spc :` or `M-x` opens up a fuzzy finder for all the functions available in the editor. You can search through these to find stuff you might like to do, and see inline which keybinding the function is bound to, if any. `spc h a` searches all functions, variables, etc., in a similar way. `spc h i` opens up an info browser, which is like man pages on steroids. Many emacs plugins have documentation here, as well as many system utilities. Last but not least, the help for Doom itself is quite nice, which you can get to via `spc h d m` (help for doom modules), `spc h d h` (general doom help), and so on.
For org-mode, you can learn a lot of what's available by typing `spc :` and then just reading through all the functions that start with `org-`.
[0]: https://github.com/hlissner/doom-emacs/blob/develop/docs/get...
[1]: https://medium.com/@aria_39488/the-niceties-of-evil-in-doom-...
In theory, I don't like the idea of my text editor being my OS; I prefer the unix philosophy for tools, which interoperate via standards and are widely portable.
But, having recently attempted to write a bunch of posix-compliant shell scripts... I think practically emacs might just be a better OS. Particularly in the sense of everything being more uniform.
Org-mode is pretty cool and I love the note capturing feature, I've bound Cmd+N to this feature so I can take notes quickly.
One thing that I've not fully figured out yet is how to share notes between my work life and personal life. Sometimes I make notes at work about some cool programming trick or something useful to know, but that stays on my work machine. I don't want work related information to be accessible from my personal machines but I want access to those 'general' notes. Obviously I could set up separate files that sync, but I really like the quick-capture workflow and introducing a "should I save this here or there" type of action would slow that down...
EDIT: The gist of that is here: https://orgmode.org/manual/Capture-templates.html
(let ((capture-map (make-sparse-keymap)))
(global-set-key (kbd "C-n" capture-map)
(define-key capture-map (kbd "w")
#'(lambda nil (interactive) (org-capture nil "work")))
(define-key capture-map (kbd "h")
#'(lambda nil (interactive) (org-capture nil "home"))))
Doing it as a separate keymap makes it easier to change the keybindings if you later decide to leave C-n at its default binding of next-line - something I actually recommend, since being able to perform cursor movement with keybindings that don't require moving your hands away from the default position has actually proven a lot faster in my experience than using the arrow keys. Navigation via isearch (C-s forward, C-r backward) is faster still, and something I'd really recommend making some time to try out as a newish Emacs user.EDIT: Also, the user's reference to Cmd+N leads me to believe they are still using C-n for navigation but has a Mac, which has an additional key called "Command".
I also use a Mac for work, but tend to forget about all the complex gymkhana I go through with keyboard prefs and Karabiner-Elements to get its keyboard to behave like those of the Linux and Windows machines I use. Since that includes remapping Caps to Command outside Emacs, and Command to Control inside it, that all probably makes my keybinding advice a little useless, or at least worth more consideration of how things would be in a closer-to-stock configuration.
https://www.ssllabs.com/ssltest/analyze.html?d=emacssurvey.o...
Looking at CenturtyLink/Level3 on a business line in Washington looks fine too.
Org-mode really shines for logging. I use it at work to keep a daily log organized by sprint. Org-mode really gets out of your way and makes logging easy. It is deep and has a ton of features, but the base feature set is really simple and easy to get started with.
[1]: https://joplinapp.org/ [2]: https://github.com/Alexander-Miller/treemacs
I want to see which vimlike packages are most popular. I use a modal editing plugin called Boon which is very simple and effective.
I've been following tree-sitter for about a year. ubolonton has recently shipped some great docs for emacs-tree-sitter. I am expecting some innovation to happen in the next year. Paredit for typescript, code transformation commands. We live in exciting times!
Shameless plug: I recently wrote a ~/.emacs guide to help beginners to Common Lisp set up Emacs in a DIY fashion rather than just installing the often recommended Portacle: https://github.com/susam/emacs4cl . Indeed the first few things this guide indulges in is to set up the user interface as follows before getting into setting up the environment for Common Lisp:
;; Customize user interface.
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
(setq inhibit-startup-screen t)
(load-theme 'wombat) 1. 1034 (14%) default
2. 354 ( 5%) my own
3. 338 ( 5%) doom-one
4. 318 ( 4%) zenburn
5. 208 ( 3%) solarized
6. 202 ( 3%) solarized-dark
7. 194 ( 3%) dracula
8. 181 ( 2%) don't know
9. 163 ( 2%) gruvbox
10. 162 ( 2%) spacemacs
11. 158 ( 2%) spacemacs-dark
12. 153 ( 2%) modus-operandi
13. 120 ( 2%) solarized-light
14. 118 ( 2%) modus-vivendi
15. 117 ( 2%) monokai
16. 116 ( 2%) leuven
17. 111 ( 2%) tango-dark
18. 102 ( 1%) wombat
19. 88 ( 1%) nord
20. 77 ( 1%) doom-theme
21. 67 ( 1%) modus
22. 63 ( 1%) doom-nord
23. 54 ( 1%) spacemacs-light
24. 52 ( 1%) doom-dracula
25. 49 ( 1%) misterioso
26. 45 ( 1%) doom-one-light
27. 44 ( 1%) deeper-blue
28. 41 ( 1%) material
29. 41 ( 1%) doom-gruvbox
30. 40 ( 1%) wheatgrass
The column values from left to right are rank, number of votes, votes as percentage of total responses, theme name.The answers in the CSV are in unstructured format and I have not normalized the data a lot to arrive at the list above, so there is some inaccuracy in the results above but despite the inaccuracy it gives a pretty good idea of the relative popularity of themes.
I'd guess there's a significant selection bias there towards exactly the kinds of users that write their own configurations.
Starter kit users seem way less likely to hang out on HN or r/emacs, which is the source of the majority of respondents.