19 ms·
I have vim, neovim and emacs (and spacemacs) installed. Right now I'm trying to get into emacs a bit more. What's interesting to me, and the reason I try to ke
by pvinis 11y ago
I have vim, neovim and emacs (and spacemacs) installed. Right now I'm trying to get into emacs a bit more.
What's interesting to me, and the reason I try to keep up to date with the latest changes for all four editors, is that it's been now, what, 25 years (?) since emacs and vim started "competing" and they still are. I guess we could be saying the same in 10 years about firefox and chrome, but it still is amazing in my opinion. It's amazing that so much work has been done to vim and emacs, and so many changes, so many users using them for different things. And there is still no clear winner. I'm not trying to start a discussion about the strenghts and weaknesses of each. Just expressing my appreciation.
Thank you for your great work, to everyone involved with vim and emacs, and more recently neovim and spacemacs. You are awesome.
- tinco 11y agoYou'd think based on how fast software 'evolves' one of them has grown highly venomous, and the other extremely poison resistant :P
- pjmlp 11y agoI became an heavy Emacs user as I could not find the comfort of Borland IDEs in UNIX, as I started to use it. Since I moved away from C++ into Java and .NET land, never felt the need to use them any longer. And nowadays, with Qt Creator, Clion, xCode, AppCode and VS, I also don't feel the need of them when I need to go back to C++. It is very good to know the basics from plain Vi, because there are still commercial UNIX systems without GNU tools installed, just bare bones installations. So for me the question is why there are still people that enjoy working as if their computers are using a 25 year old developer experience.
- pmarin 11y agoI don't need to learn Qt Creator, Clion, xCode, AppCode and VS if I already know vim. Why I would to need to use a different text editor for each different language?
- zerr 11y agoUnlike vim or emacs, you don't need to learn VS, Qt Creator, Clion or similar... Mostly, these tools are so intuitive, you just start being productive right after first time.
- majewsky 11y agoIntuitiveness depends on satisfying the user's implicit expectations. My expectation is that within a text editor, I'm able to use Vim keybindings (and my assorted plugins) to edit text. So your assumption hinges on the expectation of a user which is not at all similar to me or most other Vim powerusers.
- mbrock 11y agoHahahaha! Oh, what a beautiful world that would be.
- AnonymousPlanet 11y agoI disagree. VS, Clion, Eclipse etc. have very different key bindings and differ significantly in the way projects are set up and regarding underlying build mechanisms. These are all things you need to learn to be proficient with a tool. Once you are beyond a superficial use of a tool, a slightly steeper initial learning curve pales in contrast of what you need to reach a certain level.
- zerr 11y agoWell, then you have a GUI - menus/toolbars and after a couple of times use - you just remember the key binding usually specified along the label.
- AnonymousPlanet 11y agoI'm not talking about superficial usage like that. I'm talking about productivity boosts like multiline edits, line swapping, cursor jumping over blocks, and more advanced tricks. Also about where to do all those little tweaks to the configuration you need to google for or ask a coworker about to get a hold of. Those are not discoverable with any GUI.
- mikegerwitz 11y ago> So for me the question is why there are still people that enjoy working as if their computers are using a 25 year old developer experience. Existing responses already covered a lot of things, but the simple answer is: most of us don't. The state of these editors and tools 25 years ago, while largely the same, is still very different: there are still major improvements, many new packages, etc. Could I work on a 25-year-old system? Sure, and it'd be largely the same, but it'd be pretty uncomfortable; those subtleties matter a great deal. ;) Especially in my editors (both Emacs and Vim), and on the command line (both tools and even readline).
- deleted 11y ago[deleted]
- Nr7 11y agoXcode is 13 years old. Visual Studio is 19 years old. Why would people use them? Because they have evolved, just like Vim & Emacs.
- oblio 11y agoWell, for various reasons both of them don't really have any competition. Xcode, especially, is the IE6 of Mac coding. Only recently some competition has emerged, from Intellij.
- ZenoArrow 11y agoI can't say anything about Xcode, but I can say that VS hasn't stagnated in that way, every new release seems to bring something worth having.
- kps 11y ago> Xcode is 13 years old. 27 if you count before Apple bought it (NeXTSTEP Project Builder / Interface Builder).
- Nr7 11y agoTrue. I think VS is also based on Microsoft's earlier language specific IDEs, making it probably at least 25 years old as well.
- dan00 11y ago> So for me the question is why there are still people that enjoy working as if their computers are using a 25 year old developer experience. For me it's the question, why it's so hard to understand that people have different likings without to downgrade them? Everyone thinks that his/her decisions are the most sensible ones, but in most cases they aren't.
- marklgr 11y agoIt often _is_ the most sensible choice, _for them_. The problem is, not everyone is doing the same job in the same environement, and they have a hard time realizing that. Their empathy/imagination stays too close to their own experience.
- toyg 11y ago... the same job in the same environment coming from the same background. If you've spent 5 years at university training yourself in vim or emacs, it makes sense to keep using that; if you've started on the job with jEdit or whatnot, it's hard to justify giving up high productivity for several years for some random promise of even-better riches down the line.
- wtetzner 11y agoWhat does jEdit give you that you couldn't learn in Emacs in a day or two? Basic text editing is pretty straight forward to learn in Emacs. The part that takes time is learning all the other cool features, and that can be done gradually over time without giving up immediate productivity.
- toyg 11y agojEdit uses java-like beanshell for scripts, which is pretty different from elisp. So now you have to rewrite all your custom macros in a language you don't know and with an entirely different paradigm. But tbh, it's just an example -- any advanced workflow will require some time to adjust, for benefits which are hard to quantify. Tried switching from QWERTY to DVORAK recently? Same thing.
- pvinis 11y agoI definitely understand what you're saying, and personally at work I use Xcode (with XVim installed). But I think there is this huuuge group of people that enjoy the integrations. Xcode can't do much besides be a pretty GUI for clang and lldb. If that's enough for a developer, then Xcode is perfect. If a user likes some more customization and integration than just that, then they're out of luck. For Xcode, there are some very basic plugins, used by people who just need Xcode + some small adjustment (eg. me wanting some vi bindings). On the other hand, for vim and emacs, there are plugins for anything and everything, from irc to mail to ordering salads for launch [0]. When a user is comfortable enough and wants to live inside their editor, then I don't think vim and emacs can be beat by any other modern editor/IDE. Maybe atom will be the new emacs in a few years.. who knows :) [0]: https://github.com/CestDiego/sweetgreen.el https://github.com/CestDiego/sweetgreen.el
- yodsanklai 11y ago> So for me the question is why there are still people that enjoy working as if their computers are using a 25 year old developer experience. I use Vim for several reasons: First, it's language neutral which is good if you use many different languages. Second, I touch-type and like to avoid as much as possible the use of the mouse/trackpad. And finally, it's available everywhere. But yes, I agree it has its limitations. A lot can be done with plugins, but it then becomes more fragile and a mess to maintain. I think it still makes sense to use Vim (+ a few light-weight plugins) for smaller projects .
- majewsky 11y agoA good measure for plugins IMO is to look for ones that are very focused on a specific featureset. For example, Syntastic is plain awesome because it solves the problem of syntax/semantics checking once and for all, and does not attempt to do anything else. Other than that, my plugin selection mostly includes plugins that add specific motions (EasyMotion), commands (vim-surround), or behavior (detectindent.vim). On the other hand, I absolutely despise plugins that claim to turn Vim into an IDE for $language. These tend to be bloated as fuck.
- krylon 11y agoFirst of all, the key point of emacs is extensibility and customizability. So as new stuff comes up, e.g. new programming languages, debuggers, file formats, emacs can be extended without too much pain to work with them (and often, somebody has already done that for me). Secondly, working mainly as a sysadmin and only sometimes doing some development, I do far more with emacs than coding. I edit configuration files, look at log files, keep a "diary" using org-mode, use it for looking at directories with dired, I run a shell inside it (on Windows, eshell makes my life a lot easier). Having a single, consistent environment across many different languages, tasks, file formats and whatnot, with all my customizations working the same, is valuable to me. If I had to code in Java, I would probably be using eclipse, too or JetBrains' Java IDE, and if I had to code in C#, I would most likely use Visual Studio, but I do not. So I stick with Emacs because it works well for me.
- sillysaurus3 11y agoI'm about to dive into org mode for the first time today. Do you have any tips for learning it? My plan was to open up the manual and start reading, but maybe you found an article or tutorial that helped kickstart your org mode knowledge, so I thought I'd ask. (Apologies if the question is a bit offtopic.)
- weavie 11y agoYou may find this helpful (http://sachachua.com/blog/2014/01/tips-learning-org-mode-emacs/ http://sachachua.com/blog/2014/01/tips-learning-org-mode-ema...). Also remember org mode is as simple or as complex as you want it to be!
- krylon 11y agoI started reading the documentation, which is pretty good, IMHO. I use only a small fraction of org-mode's features, though. There is so much one could do with org-mode, but I don't have enough time to get acquainted with all the features and get into the habit of using them... Not right away at least.
- lemonberry 11y ago
- mhd 11y agoYou edit text. That's a big part of your "developer experience", and XCode/IntelliJ don't really change that. Most of their innovations focus on the high-level, and they tend to be serious let down when it comes to straight-forward text manipulation. No progress since CUA there. Using a SmallTalk system was a somewhat different experience. Now that was integrated.
- ccozan 11y agoSmalltalk started the whole IDE idea actually. The VM ( or image) is the run time and the editor at the same time. The level of integration and introspection made the whole thing very powerfull and inspired other IDEs to have this features, which without the software development could have been very slow.
- mhd 11y ago> Smalltalk started the whole IDE idea actually. Yet as opposed to ST, Mesa or Lisp they have to integrate this with files and executables, which makes things a lot more cumbersome. And then you get something like the web, where the moving parts are even further removed from each other. The problem is that IDEs and powerful editing aren't exactly opposites (let's not forget that Emacs is basically a Lisp IDE). But I've yet to see an IDE that comes close, mostly because the lack of a good extension language (plugins are way too heavy), and possibly because the GUI provides a bigger impedance to additions. I really like the trend towards "headless" IDE backends.
- rat87 11y agoI'm not sure this is a good idea. I took a class that used Pharo and made my workspace freeze a couple of times. A remote protocol talking to a 2nd vm would have been better.
- AnonymousPlanet 11y agoEach task has its own tools. You seem to have been using Emacs as surrogate for a certain IDE experience known to you. An IDE is a tool that has been carefully geared toward a certain domain and workflow. Like an office suite, it provides everything the target audience needs. It's turn-key ready and all you need, if your work never goes beyond the intended model. But IDEs are not very flexible if you deviate away from that model. On top of that they tend to be quite opaque regarding the internals (I remember VS being very annoying in that regard). Emacs, on the other hand, is basically just an editor. But it runs circles around any built-in IDE editor I have seen. On top of that, it provides extensibility. That's where the fun starts. If you're working in a domain that hasn't got any turn-key solutions yet, Emacs is a good start. Personally, I use IDEs for the work they were made for. But if I just want to edit text or don't want to set up a project just for an "application" that consists of two or three scripts, I use a good and simple editor with syntax highlighting. Anything else would be like using a car to get from your kitchen to the living room.
- et1337 11y agoTo me, it's just that text editing becomes way more efficient when you can accomplish everything without reaching for the mouse. The great thing about Vi (and I presume Emacs as well) is that you can get keybindings for just about any IDE. I use Visual Studio for intellisense, but I install VsVim which gives it 90% of the most commonly used features of Vim. XCode has XVim. IntelliJ products have IdeaVim. I've used them all, they're all great. It's nice to be able to feel instantly at home in any editor.
- super_mario 11y agoBecause the experience is so much better. The power of command line is intoxicating, and going to GUI tools files like programming with hands tied behind your back and being blindfolded.
- ZenoArrow 11y agoI used to think like this, but I don't any more. Both command line development tools and IDEs require work to get the most out of them. I used to think command line tools were better because I was more in control, then I realised if I just spent the time learning what IDEs were doing on my behalf I would still have more or less the same amount of control, especially if the IDE is customisable (which the best ones are). So with command line tools you have the option to customise your workflow from the ground up, but with IDEs you have the option to customise your workflow from the top down. Both have advantages.
- super_mario 11y agoThat's decidedly not true. Nor is this about customization of workflows. I am talking about actual unadulterated power to do things you cannot do in an IDE. All IDEs optimize for the average use case. If they do expose a set of advanced commands or transformations, they are hidden deep in the menus and what you can do with them is extremely rigid and limited. At most you have a few dozen commands (you would call them menus) available. Compare that to couple of thousand commands available on the command line that do all sorts of things and that can be combined in useful, creative and often times unexpected ways. All that in addition to having a programmable command interpreter (i.e. the shell itself) that allows you to automated things you do often. Vim is often described as programming your text transformations, well command line is programming your workflow, but it is also more powerful because of the shear number of commands available.
- toyg 11y agoAs parent said, good IDEs (like IDEA etc) can be customized to no end. You can remap pretty much all "menu" commands to shortcuts, and they have plenty of interfaces to extend their feature-set through plugins and custom commands to invoke the shell or what-have-you. Honestly, it's not a crime to like nice windows, y'know.
- mbrock 11y agoEmacs is free software developed by a worldwide community. It's a culture, an ecosystem, a way of life. The same with Vim, but I'm into Emacs. I love Lisp deeply, and I think Emacs is a truly amazing piece of technology. I had to use Xcode for a project and it gave me real anxiety. Weird things would go wrong and I had no idea how to fix them. The only sources of information were these horrible unanswered support threads on Apple's website. Since Emacs is free, portable, and extensible, I can use it for lots of different things. And I know I have the freedom to change it any way I want. Of your examples, only Qt Creator has an open license. Emacs is also a flagship of GNU. Xcode and Visual Studio are made for developing software in closed systems...
- hellofunk 11y ago>Xcode and Visual Studio are made for developing software in closed systems... Xcode allows you to write and debug code for a specific compiler (like Clang or GCC). If you choose to use Emacs instead, you would typically use the same compiler as you'd use with Xcode, just a different way of editing and debugging your code. But whether or not you write software that is "closed" or "open" or "portable" or "platform specific" is a choice for the project, not the editor. Xcode is not for writing software in a closed system, it is for writing software, period. If you want to write software that is unique to OSX or iOS (using Apple APIs) you can do so more easily with Xcode, but a lot of my projects are command line tools that are used in any unix/linux variant, including OSX, and I choose to use Xcode.
- mbrock 11y agoSure, but my point is that Xcode is aimed at the development of programs for Apple's proprietary systems, while Emacs is made for the purpose of empowering free software developers, and that all of this is one reason why I personally love Emacs and strongly prefer it over proprietary IDEs.
- pyre 11y ago> Weird things would go wrong and I had no idea how to fix them. My experience with Emacs/Spacemacs without having significant knowledge of lisp/elisp/Emacs debugging. I want to like Emacs, but my Vim environment feels so much more "solid".
- easytiger 11y ago> So for me the question is why there are still people that enjoy working as if their computers are using a 25 year old developer experience. Because i develop on very expensive hardware on a different continent. I also end up with a decent mental model of my code.
- yxlx 11y agoYou have a strange way of writing CLion and Xcode. Your way makes it harder to see what you are talking about.
- tambourine_man 11y agoSo for me the question is why there are still people that enjoy working as if their computers are using a 25 year old developer experience. The GUI paradigm is over 30 years old. People still stick to the mouse even though we've had ubiquitous touchscreens for almost a decade. A good paradigm does not easily die.
- joesmo 11y agoTouch screens are even less efficient and ergonomic than mice which are pretty terrible at both those things. Track balls and pads are only a tiny improvement. All of these input methods are deeply flawed but there are no real alternatives that I know of. There's plenty of us that would move to better, more efficient, more ergonomic input methods were they available.
- illumin8 11y agoI use a magic trackpad and find it very good at giving me the best features of a mouse/pointer interface and a touch interface combined. You can do things like two-finger scroll in any document and 3 finger swipe between desktops minority report style... All kidding aside, it seems very productive, but I still keep a mouse plugged in just in case I need to run Visio inside a Windows 10 VM to do some diagraming... Mouse is much more precise and less fatiguing to use for serious diagramming...
- coldtea 11y ago>The GUI paradigm is over 30 years old. People still stick to the mouse even though we've had ubiquitous touchscreens for almost a decade. Touch screens are not a 100% replacement for mice. They are an alternative, and for desktop/laptop PCs with vertical screens they are a non starter due to human physiology.
- cicero 11y agoMice are not a 100% replacement for keyboards. If you're doing lots of typing, there is something to be said for keeping your hands on the keyboard. Vim and emacs facilitate this much better than GUI-based editors.
- xutopia 11y agoI value very different things than you do. Vim and Emacs have a more difficult learning curve but the beauty of it... and configuring it to your liking is that it can surpass in speed and capabilities what some very convenient editors can do for a single language. I use MacVim and my .vimrc file follows me around wherever I go. My experience is great in my editor because the few minutes I invested here and there have huge payoffs over time whereas most IDEs plateau.
- sneak 11y ago> I use MacVim and my .vimrc file follows me around wherever I go. Minor nit in support of parent comment: no it doesn't, you have to copy or sync it around yourself. Atom is a great example of an editor that is aware of the internet existing. Vim, while my daily driver, is not.
- zeveb 11y ago> Atom is a great example of an editor that is aware of the internet existing. Vim, while my daily driver, is not. I don't know how I'd securely and easily have a powerful editor configuration follow me around. A powerful editor can do damaging things: it interacts with its host system; it can run commands; it can read and edit any files on disk; it can access the network. That means that I — not some web site run by attention-deficit VCs and subject to any number of hostile governments — must have ultimate control over what it can do. So it has to be secure. But security means that the configuration may not be visible to others (because it may contain information I choose not to release) and it means that the configuration I fetch today must verifiably be the configuration I pushed yesterday. That means hashes, and signing, and identities. None of that is easy, and building that infrastructure just for trading editor-configs seems like a waste. Wouldn't it be nice to have a general infrastructure for that? So maybe it makes sense to sync editor configs around after all.
- krisdol 11y ago>Atom is a great example of an editor that is aware of the internet existing. Vim, while my daily driver, is not. In what way?
- arca_vorago 11y agoOne of my primary reasons for using emacs is because I decided I wanted to learn how to do as much of my computing from a terminal as possible, and emacs is closer to an OS itself than just a txt editor. (I know enough vi vim to do just fine when on systems without emacs though.) Another reason is because I conciously have decided that gnu and gpl are what I want to run whenever possible, which also affects my other tool choices, eg, screen vs tmux.
- bhaak 11y agoAt my last job, I was doing mostly Java server stuff. I switched between Vim and Eclipse seamlessly, depending on what task I was trying to accomplish. Vim is better at plain text editing, Eclipse is better at navigating convoluted Java hierarchies or debugging Java code. For me, those tools are not exclusive but complementary.
- drKarl 11y agoHave you tried Vrapper, or any other Eclipse Vim plugin like viPlugin or Eclim? Or if you use IntelliJ Idea it also has a plugin for Vim
- groovy2shoes 11y agoThe Vim emulation plugin that ships with Intellij IDEA is absolutely awful. I used it for about 30 minutes, then uninstalled it in frustration. Certain commands just didn't work right, and some didn't work at all. There was also no indication whatsoever of what mode you were in, so you just had to keep track of it in your head. The experience was not pleasant at all. I'd rather have no Vim emulation than poor emulation (same reason I ditched spacemacs after an hour or so).
- ufmace 11y agoI'm wondering what you thought the worse omissions on it were. I've used IdeaVim on Android Studio, and find it passable, if not great. My main beefs that I can think of right now are that my vimrc commands for leader+j and k mapping to 10j and k don't work, and it sometimes messes up the spacing on blank lines, causing the { and } jumps to not work right. I'm pretty sure the cursor changing on mode switch worked right for me. Maybe check for updates? They do seem to update it semi-regularly - I think they fixed the number-gt command within the last 6 months or so.
- groovy2shoes 11y agoI honestly can't remember the details now, because it was quite some time ago. I just remember getting fed up rather quickly and returning to the default keybindings. Perhaps the situation has improved since then.
- wtetzner 11y agoYou seem to be under the impression that Emacs and Vim haven't been improving over all those years. Yes, they still keep their keybindings, which don't match the common "modern" editors, but honestly, that's a big part of what people like about them.
- weaksauce 11y agoVi emulation for those editors keeps me sane when using them
- jjuel 11y agoI have used VS since I started working. I recently have dived head first into NVIM for my personal stuff. I love the fact that it doesn't have all the bloated crap that the full blown IDE's have. Sure some things like going to definitions are nice, but I rarely miss them. I love just the minimalism of a great text editor and there isn't a better one in my personal opinion than VIM or any of it's variants.
- farresito 11y ago> So for me the question is why there are still people that enjoy working as if their computers are using a 25 year old developer experience. Because for a lot of tasks using the mouse is garbage compared to the speed you can get using the keyboard.
- cname 11y agoIt's not like you can't use keyboard shortcuts in a modern IDE. And for some tasks using the mouse actually is faster. I think there's some research by Apple (?) that shows this.
- farresito 11y agoI definitely don't think it's black or white. If you could have the power of vim (all vim, not just the basics) within an IDE, I'm sure a lot of people would be significantly more productive than only using vim or emacs. I think part of what neovim attemps to do is bringing all vim inside IDEs. That said, I have a feeling that people believe that all vim users use the editor with no plugins or config whatsoever. There are a lot of plugins out there that, while not bringing all an IDE has to offer, provide a lot of what someone would expect from an IDE, and if that is enough, I don't see why someone couldn't be more productive in it than in an IDE.
- kps 11y ago> I think there's some research by Apple (?) that shows this. There was, but it was bogus. The subjects were given a paragraph in which every ‘e’ had been replaced by a bar ‘|’ and they had to change them back. But they were only allowed to use the basic Macintosh text box, so they had to use the cursor keys to move to each ‘|’, delete it, and type an ‘e’. Obviously (obvious to vi users, anyway) this is not an efficient way to use the keyboard. :s/|/e/g
- cname 11y agoYeah, I was wondering if maybe that research didn't apply to power users. Regardless, for me personally, I mostly use the keyboard in an IDE (vim style) but find the mouse is much better for certain things. Even when I use straight vim, I often find that it's easier to visually target something with the mouse versus using search or motion commands.
- AdmiralAsshat 11y agoA good bit of my job consists of hopping onto a customer's server via SSH. Vim is about the only thing I can be reasonably confident will be installed on a standard Redhat/Centos server that I can use for looking at logs, manipulating scripts, etc.
- ultramancool 11y agoI say this as an IDE guy (I use Qt Creator, VS and Eclipse at work all day and PyCharm for my quick hacks). I've been picking up some emacs here and there, there are a few huge advantages to something like emacs over a typical IDE: - You can just live in it. You don't have to leave. I watch TV using dired to run mpv and use org-mode for my todo list. It's all right there. - Once you get used to one set of keyboard shortcuts, you can harness an enormous amount of power throughout the whole environment. This is true in some IDEs too, but IDEs don't usually offer - Rust. Rust is actually one of the main reasons I started picking up some Emacs. There are no good Rust IDEs. There's crappy VS and Eclipse plugins. There's Atom plugins, but Atom freezes randomly when running code with Cargo and the DPI scaling still doesn't work properly on Windows. SublimeText was the only thing I could find that worked, and while it worked I wasn't willing to commit $70 to buying a text editor. Then I tried Emacs and it works absolutely beautifully. - Emacs has really take advantage of the GUI paradigm too, check out the minimap: https://www.emacswiki.org/emacs/MiniMap https://www.emacswiki.org/emacs/MiniMap It's not just some outdated console application that no one uses anymore. - You don't need a different IDE for when you're writing python vs C++ vs Javascript. There's no switching. Just open whatever you want in that permanent emacs session you have running. - Most if not all IDE features are actually available easily via plugins, yes, there's a little configuration involved but most of the time it's not too bad. And I'm a tinkerer so I really don't mind. Overall, IDEs are great if you just want to sit down and code without the tinkering. But if you're willing to put the work in, I think you can get much more comfortable in something like Emacs where you have deep flexibility and access to most (if not all) of the same features once they're set up. I can definitely see the appeal. Especially of really unique stuff like org-mode that you just can't get anywhere else.
- barrkel 11y agoI too came from the Borland IDEs (I used to work at Borland). Emacs is not a 25 year old developer experience, however. It's got an integrated package manager; responsive full-project text search (helm + your chosen grep tool) and path search (helm + projectile); good to excellent support for dynamic languages in particular (there's a nice synergy with e.g. ruby/pry). It's not as strong with statically typed languages. There's no project-wide full-fat high fidelity symbol database support. There are a variety of projects to try and implement things along those lines (semantic etc.), but Emacs Lisp isn't the right tool to get the necessary level of performance. I'd love to see Emacs on Guile come to fruition; the ability to escape out into a language with less freedom to mutate scope (and thus optimize) would be a Good Thing. I use Emacs (on Linux) to write JS, CoffeeScript, Ruby and C++; I use Eclipse to work with Java (though I'm considering switching to IntelliJ). Working with Java in Emacs is an exercise in pain, particularly since things like wildcard imports are frowned upon in the Java world. Eclimd is not good or reliable enough when used from Eclipse. Eclipse is deeply unpleasant to use compared to Emacs, which I'm able to easily customize to my preferences.
- majewsky 11y agoPeople have already given a lot of answers, but there's one thing that annoys me specifically about Visual Studio and Xcode. Every so often, I come across a cool open-source project that I would like to build and tinker with, only to find that it can only be compiled if the Visual Studio solution file or XCode project file from the repo is used. Or let's say, it could be compiled probably, but replicating all the logic hidden inside the solution/project is ridiculous. That's not to say that you can't have the best of both worlds. For example, CMake can generate both Makefiles and VS solutions.
- inDigiNeous 11y agoThe fact that I can customize VIM to suit my needs with modern methods and plugins that bring same kind of functionality found in more modern editors/development envs to the powerhouse that is VIM. For example, these are some of my favorites: https://valloric.github.io/YouCompleteMe/ https://valloric.github.io/YouCompleteMe/ - Code completion for C/C++ and other languages https://github.com/ctrlpvim/ctrlp.vim https://github.com/ctrlpvim/ctrlp.vim - TextMate style ctrl+p fuzzy file finder https://github.com/scrooloose/nerdtree https://github.com/scrooloose/nerdtree - Tree explorer plugin for browsing files https://github.com/vim-airline/vim-airline https://github.com/vim-airline/vim-airline - Customizable status line for showing all kinds of useful info about currently edited file https://github.com/tpope/vim-fugitive https://github.com/tpope/vim-fugitive - Git wrapper that works together with airline https://github.com/mhinz/vim-startify https://github.com/mhinz/vim-startify - Shows your most recently edited files and favorite files on the start screen https://github.com/tpope/vim-abolish https://github.com/tpope/vim-abolish - Smart text replacement, easily replace eg. getColor, GetColor -> getTransparency, GetColor and so on And this combined with the fact that I can do all of this from the tip of my fingers, without having to touch the mouse, with high customizable commands that go into my muscle memory, there is no substitute for VIM for me. I've worked with Eclipse, Xcode, Visual Studio. They have some pretty nice features, like interactive debugging that are hard to replicate with Vim, but I'm more of a "print debug message" kind of guy anyway, so that doesn't bother me. The biggest hinderance with Visual UIs is that I have to use the mouse, and that sucks. So much faster to do text selection, copying, replacement, renaming and so on straight from the keyboard, once you get used to it. I'm still discovering active new ways to customize VIM after over 15 years of using it.
- ufmace 11y agoOne of the things that keeps me in VS (with VsVim) versus actual Vim for C# is that, for strictly typed languages, the autocomplete can't be beat. AFAIK, Vim autocomplete solutions use a relatively dumb autocomplete, while VS knows the types of everything and shows you all of the things you can access and nothing you can't, including changes that haven't actually been compiled yet. I also think that interactive debugging of any kind is much faster than printing debug messages most of the time. Even if it's just something like Ruby Pry, where you have a command line REPL while stopped on the breakpoint, it feels like a huge time saver when you can be stopped at a particular point and are free to check any variable and step whenever you want. Granted for some cases, like production web sites, there's no alternative to writing debug messages and trying to figure out what happened through them.
- ttflee 11y ago> why there are still people that enjoy working as if their computers are using a 25 year old developer experience. The carbon footprint is much nicer.
- ajslater 11y agoQ: How often am I editing a file that exists on a computer close enough to me that a GUI editor would be at all useful? A: Rarely.
- erikb 11y agoI believe that it is good that there is no winner. If you look at vim and emacs specifically their thinking is very different. I would say that with the best plugins, config and skills in the world you would not be able to make one as good as the other in the others corresponding strength. Each is a winner in their own regards.
- cies 11y agoI think we have 2 winners: Emacs on the "platform" (superior scripting language (elisp), better external process management, better instrumentation). Vim on the modal-editing interface: you can find it in nearly all editors (and even browsers) nowadays. A combination of the two would be awesome, correction "is" awesome: http://spacemacs.org http://spacemacs.org
- erydo 11y agoNever seen that before, that looks really interesting!
- ageofwant 11y agoAnd then of course people like the spacemacs leader-key binding and port it back to vim :-) https://github.com/jimmay5469/vim-spacemacs https://github.com/jimmay5469/vim-spacemacs https://github.com/sunaku/vim-shortcut https://github.com/sunaku/vim-shortcut https://github.com/sthysel/vim-spacemacs https://github.com/sthysel/vim-spacemacs
- cies 11y agoI should use that! I try to keep a vim config that is mostly compatible with my Emacs setup (for when I'm remotely logged in to a place that has my dotfiles, but not emacs). Sure I know about tramp-mode, but sometimes having vim around saves the day.
- tetraodonpuffer 11y agoeven without going full spacemacs you can do what I do, install evil, have it set to emacs editing by default, and set up a keybinding to go into vi editing (I use double-caps) it's awesome and really best of both worlds This said it is exciting to see vim being updated, I use vim quite a bit if I am ssh-ing places and the more functionality the better
- Scarblac 11y agoAccording to Wikipedia (https://en.wikipedia.org/wiki/Vi https://en.wikipedia.org/wiki/Vi and https://en.wikipedia.org/wiki/Emacs https://en.wikipedia.org/wiki/Emacs) both vi and Emacs are from 1976. 40 years this year!
- yitchelle 11y agoTo be fair, vim is not strictly vi although they were related. Amazing, I was 1 year old when both were started. How many other software package has such longevity? Unix and its various guises?
- koolba 11y agoNot quite as old (circa 1978) but TeX is still alive and well: https://en.wikipedia.org/wiki/TeX https://en.wikipedia.org/wiki/TeX
- fdej 11y agoMoreover, TeX has no serious competition (at least in the niche of typesetting mathematical documents). There are plenty of good text editors and IDEs to go around.
- deleted 11y ago[deleted]
- mmahemoff 11y agoGive it another 10 years and people will still be arguing over this, just that there will be more of them on both sides. There's deep muscle memory involved. It's very hard to contemplate switching and, once you do, it takes a lot of commitment before you can cross the line where you are more productive than before. Like learning a new language. So people tend to stick with the one they learn first and reverse-engineer arguments for its superiority.
- plafl 11y agoThat's actually the main reason I try to move all my workflow to emacs. Most probably it will be maintained 40 years more and the time I invest in learning to use it it's not going to be wasted.
- terda12 11y agoCompetition makes everything better :)
- siscia 11y agoActually I don't believe there will be never a winner between the vim-way and the emacs-way. Are both great tools but with a completely different mentality and people will prefer one to the other depending on so many factor that the quality of such tools is not even so influencing. On the other hand there is not so much distinction between Firefox and Chrome and there is going to be a winner as long as the browser are so similar to each other.
- gpvos 11y agoBoth seem to have found a local maximum for the "optimal programmer's editor" function.
- bobajeff 11y ago>I guess we could be saying the same in 10 years about firefox and chrome That's pretty optimistic considering Firefox's current marketshare. Based on its momentum I'd say in 10 years, at best, I expect it to be where Opera was before it became a Chromium fork. For now Firefox does things better than Chrome but I don't expect them to keep up when it becomes a community project. It'll be like using Opera used to be.
- benwaffle 11y agoHopefully servo will be merged into firefox within 10 years
- bobajeff 11y agoI doubt that would change anything. Even after spending tons of money on marketing and making big changes to the browser, Internet Explorer never reversed it's drop from 90% to 50% marketshare.
- cozzyd 11y agoI imagine Firefox's marketshare dwarfs both vim and emacs
- bobajeff 11y agoYet another reason why you can't compare the situation with Firefox and Chrome to Vim and Emacs.
- criddell 11y agoDidn't Firefox just announce that future plans include moving to Chromium?
- criddell 11y agoI went back to see if I could find where I read that and it was here: http://www.theregister.co.uk/2016/04/11/future_of_firefox_is_chrome/ http://www.theregister.co.uk/2016/04/11/future_of_firefox_is... But since that was published, another article was published: http://www.theinquirer.net/inquirer/news/2454466/mozilla-is-dabbling-with-experiments-in-chromium http://www.theinquirer.net/inquirer/news/2454466/mozilla-is-... So there was no announcement, just some experiments.
- AnonymousPlanet 11y agoJudging by how this thread exploded, the discussion has shifted towards a standoff between two other groups. On one side IDE users shaking their heads at what they experience as a backward mindedness and on the other side Emacs/Vim/command-line users desperately trying to explain that there is a world beyond the IDE. There is unnecessary smugness on both sides.
- kristopolous 11y agoI think emacs is fundamentally a better system but I'm using vim because that's what my computer could run better when I was 15 in the mid 90s. Shackled by my past...
- methehack 11y agoYou might want to give spacemacs a try. It really doesn't feel like emulation. For me, it's been the better of both worlds. Ultimately, you'd have to learn some emacs stuff for sure, but you should be able to get day-to-day productive almost immediately.
- kolme 11y agoCompetition is great. I was kind of bummed that Bram didn't want to add support for asynchronous things in Vim and Neovim kind of forced his hand. It is great. I have no plans to run Neovim in the near future, but I'm already profiting from it. Kudos to Tarruda and friends.
- bch 11y ago> And there is still no clear winner. You and I are the winners. I've used both Emacs and vi (not vim) for a long time, and switched "major focus" from vi -> Emacs -> vi. That they're such venerable tools and still getting bug fixes, improvements or serious active development is amazing. Long live Emacs. Long live vi.