4 ms·
Vim and Emacs are not as popular as you might think. They come installed by default on most unix systems, but millions of developers go out of their way to inst
by ggreer 13y ago
Vim and Emacs are not as popular as you might think. They come installed by default on most unix systems, but millions of developers go out of their way to install (and pay for) Sublime Text or Notepad++. And those are dwarfed by Visual Studio and the IntelliJ-based IDEs (RubyMine, PhpStorm, WebStorm, PyCharm, Android Studio, etc).
Most of these editors are closed-source, cost money, and aren't installed by default. Yet Vim and Emacs are so hard to use that they end up being a fraction of the paid editors' user-bases.
Who am I to claim knowledge of editor usage? Well at Floobits[1] we've made plugins for Sublime Text, Vim, Emacs, and IntelliJ. We can see how many people download and use each one. Sublime Text and IntelliJ are by far the most popular editors. It could be that Emacs and Vim users really don't like to collaborate, but it seems more likely that simply fewer people use them.
I'm not trying to hate on Vim and Emacs. Once people do learn them (and heavily customize them with plugins), they are very productive. And Vim and Emacs aren't going anywhere. A developer can learn one of them and use it for a lifetime. But Vim and Emacs could be much more popular if they put some effort into improving the first-time experience.
1. https://floobits.com/ https://floobits.com/
- jakejake 13y agoI feel like there is this vibe out there that if you don't use emacs then you're some kind of inferior developer who has to rely on tools to do his/her work. That perpetuates a myth that everybody of significance is using it. I don't buy it either. Just antidotally I've only run into one or two developers who use emacs or vim as their primary code editor. A lot of people like myself, though are proficient with one or another shell editor (Vim in my case) that they use when working directly on a server, or for certain, occasional things where it's more convenient.
- quanticle 13y agoI think we, as developers, go out of our way to perpetuate that myth. How many times have you heard an experienced developer sneer at a newbie because they're using Notepad or gEdit? I think that there is definitely a tendency amongst developers to venerate tools and forget that tools are great only insofar as they allow you to be more productive. When I'm using software, I care that it's correct, that its user interface is understandable, that it's secure, extensible and performant. Approximately none of those things have a correlation with the editor or IDE used to write the tool.
- judk 13y agoIt is not possible to be productive in Notepad or gEdit, beyond the occasional tiny file tweak.
- quanticle 13y agoWhy not? I'm only slightly trolling. This is exactly the attitude I'm talking about. We tell newbies that it's not possible to be productive in Notepad or gEdit, and then hand them a text editor that doesn't even write letters onto the screen when you type.
- dllthomas 13y agoThe key word here is actually editor. Of course notepad and similar work perfectly fine if all you are doing is monotonically outputting a stream of text. When you want to navigate it and make changes, however, they break down (in comparison with alternatives). For most of us, we spend more time editing than writing - even in greenfield development.
- quanticle 13y agoRight. That is what we should be telling newbies. Not, "It's not possible to be productive in Notepad."
- dllthomas 13y agoFor whatever it's worth, that is what I tell newbies when I demand they switch to "some kind of real editor". As it happens, I'm fairly nondenominational when it comes to which they use; though I certainly have my personal preferences my advice is usually to switch to the editor for which mentoring is most easily available to them.
- srcreigh 13y agoIt's not always as simple as "this person downloaded an IntelliJ plugin, so they're clearly not using Vim". This is because Vim (at least, I'm not sure about Emacs) is often available as a plugin for most editors. Sublime Text has Vim mode built in. For example: most developers won't think of using Vim to develop a mobile app. In the case of building iOS apps, I'm not even sure if not using XCode is a possibility. But, Vim-loving developers will install the Vim plugin for Eclipse, and XVim for XCode, etc.
- ggreer 13y agoInteresting. I've usually had the opposite feedback from Vim users. They'll complain that Evil or XVim only has 80% of the key bindings and commands that they use. Apparently the missing 20% is very frustrating.
- Crito 13y agoEvil mode for Emacs is the only "vim mode" that I have seen that is even slightly acceptable to me. Viper was fairly shit, and everything else that I have seen and tried was just awful. The most you can typically expect is some loose emulation of a divide between insert and normal mode, and maybe half of the normal mode commands implemented, most incorrectly (not taking counts or not combining with movement keys correctly are the most frequent oversights). I do mobile development. About 95% of my time is spent in Vim, the other 5% in eclipse for the few things that it actually makes my life easier for. If eclipse were actually more useful to me, that percentage would probably drop as it would cause me to bother setting up Eclim (I can't be arsed to right now, since that 5% is so low.)
- jarin 13y agoI feel like using the Janus plugin suite for vim goes a long way toward a better first-time experience, but even then there's not a good walkthrough of what Janus gets you. Even with Janus, it's definitely not for beginners and there seems to be a natural progression from a basic text editor to a more powerful text editor like TextMate or Sublime Text, then you either go for the full IDE like RubyMine or end up using vim or emacs.
- srg0 13y ago"Don't be overly simplistic in what you do. And if they're a power user, let them be a power user. Because realistically, the user is not actually drunk. The user is FINE." Realistically, vim is not actually hard on you the first time. Vim is FINE. "type :q<Enter> to exit"
- Crito 13y ago> "But Vim and Emacs could be much more popular if they put some effort into improving the first-time experience." I think you are wrong about that. Distributions of vim that aim to do this (such as Janus, or Cream) get no significant traction. Things like GVim exist, but the only place I've ever seen anybody use them is on systems that don't have a modern terminal emulator installed. Any attempt to "friendly-ify" the default Vim experience would do nothing but alienate current Vim users. The temptation to throw all your existing users under the bus to reach a hypothetical larger market should be avoided; giving in to those temptations kills open source projects. Open source developers should feel a loyalty to their users, not meaningless "sales" numbers.
- callesgg 13y agoHow many actually uses terminal vim/emacs not very many the hill is steep as hell, but it is worth it in the end. I think it is the steel hill that causes them it be good. (In some deep convoluted way)
- dredmorbius 13y agoSteep learning curve => high payoff function.
- unclesaamm 13y agoI use Vim normally but I actually downloaded Sublime Text just to use Floobits. There's something really intimidating about using Vim with Floobits, and there's the lack of the nice visual cues like circling around highlighted text.