What is the effectiveness of Emacs or Vim vs Eclipse?

I started coding about 5 years ago. I was introduced through Java and Eclipse, which have significant stigma attached to the developer community. A number of people in the company that I am currently an intern prefer emacs or vim. I don’t see how the main text editor works faster or easier than the IDE as a whole, although I understand that some things, like building, are usually faster from the command line.

Is this a case of the "old boys" club or could it be more effective to program the project this way?

Can you provide some demonstration use cases? If I were in favor of Eclipse, I would say that refactoring and auto-completion were pretty convenient tools.

Woof

+71
eclipse vim emacs
Aug 28 '09 at 12:54
source share
15 answers

I started working in an IDE such as Eclipse, but switched to Vim about 2 years ago.

Reasons why you can use a text editor:

  • It can be used as an IDE for any language (you will recognize it once and use it for everything)
  • It can do all these fancy stuff like autocomplete, refactoring, and many more complex operations that you can expand by adding macros or plugins
  • It works almost everywhere (and can be used through the SSH shell)
  • You do not need a GB server to run it

If you really persist, you will find that working in such an editor will ultimately be faster, and in fact becomes rooted as a kind of “muscle memory”. This means that you can encode without slowing down to think about the process.

+44
Aug 28 '09 at 13:07
source share

Vim / emacs

  • Very fast / efficient code writing.
  • Low memory
  • Quick access to the command line
  • Endless possibilities with scripts / plugins
  • Never leave the keyboard

Eclipse

  • Full-featured IDE for many languages
  • Great refactoring support

All of them

  • Cross platform
  • Rich features
  • Expandable through plugins

I usually write volumes of code through vim and performing debugging tasks through my IDE. Familiarity with the code base is certainly a factor, since the IDE is a great tool for jumping and exploring unfamiliar source code.

+53
Aug 28 '09 at 13:18
source share

The Eclipse for Java argument is a different argument than Eclipse for [something that is not java]. Eclipse really rocks for Java.

I mean, vi looks like a screwdriver or maybe a Swiss army knife, and Eclipse looks like a big CNC combine harvester and paver. You definitely do not compare them, you just use both.

In addition, you work inside something gigantic that you know little about, but what does Eclipse understand? The example will work on Eclipse itself. Here Eclipse has excellent visibility, full language support, and you need tips for toasts and links to documentation.

But if you type a 100-line Ruby program to convert an SQL database, Eclipse doesn't add much value, especially considering its baggage.

It is also important to configure vi correctly, otherwise you will not appeal. Autoindent, showmatch, tab, and other parameters must be set. You should have an easy way to create a tag file. Google can find tag generators or just write one from scratch with a few lines of shellcode and sed (1).

I do not consider refactoring a criterion. This is not something you do once an hour or even once a day. Of course, launch a large IDE when you need to reorganize. Oh, and don't expect automatic refactoring of everything except Java.

Finally, vi can really do a lot of things that the IDE can't start to do. Grouped global regular expression substitution is a generalized refactoring-nothing mechanism. To evaluate vi gestalt, you need to study the line mode (":"). In short, this is similar to what sed (1) is inside your editor.

+27
Aug 28 '09 at 23:42
source share

It all depends on what you want / expect and what your usage model is.

If you are looking for a Java IDE, Eclipse is hard to beat. It is written in Java, for Java, by Java people.

If you are looking for a tool to quickly edit files from the command line, Emacs or vi are suitable for counting.

If you are looking for a tool from which you will never have to leave because it can do anything (send / read mail, manage projects, todo lists, compile, debug, etc. etc.), then Emacs is more "efficient."

If you're looking for reasons to switch editors, find out what you want. If you need the best Eclipse, vi and Emacs won't give you that, stick with Eclipse.

If you are looking for a small, agile editor, vi will fit the bill.

If you're looking for a definitively extensible editor, Emacs is the way to go.

Which tool you decide, immerse yourself . Explore all the ins and outs, expand it to meet your needs. Use it within your limits and become effective when using it.

+22
Aug 28 '09 at 15:55
source share

Emacs can be a powerful IDE, but going from Emacs to Eclipse, I have to say that I will never return. Eclipse simply offers so many features that you cannot get in Emacs.

Mylyn and the cloud-based types of data and files that I use, the debug user interface, CVS UI, are all built-in and easily accessible and used. I use mouse a bit for get'em.

+13
Aug 28 '09 at 13:04
source share

I used vi for many years to edit code in different languages ​​and really love it. But I found an IDE, such as Eclipse, even better for Java development, and now I work almost entirely in Eclipse. From time to time, I refuse to use vi for several specialized events, such as mass insertions of copyright notifications, mainly those related to certain types of corrections that are not very automated in Eclipse. I also have a .java file type for Windows, when I just want to look at the source file without waiting for Eclipse to open.

Some of the attractive features of Eclipse are:

  • method name completion
  • error highlighting
  • javadoc popup comments
  • refactoring

I find this much more effective than vi in ​​general, so you should try it and see if this really applies to you.

+8
Aug 28 '09 at 13:40
source share

Primarily. VIM is more productive for programming than Eclipse. Your personal VIM productivity can be terrible, but the potential VIM cap is much higher. It is a fact.

VIM is a martial art. It seems unnatural when you first use it. And you can't even make it work. It will take many years of practice to gradually become productive. First, you focus on mastering a small detail. Slowly, all these bits that you learn will add up until the text flows easily from your fingertips on the screen. Complicated changes that would make your colleague breathe out of your hands before he can finish his exhalation. There are few people who can use VIM. Less who can use its productivley. And you can never meet a master in your life. But rumored to exist.

VIM is designed to throw hands on the home line. Moving a hand from the keyboard to the mouse demoralizes. This is a rough movement of the engine. The movement of your hand has a phsycological effect that harms your motivation. Using VIM, someone can lock your wrists on the keyboard, and you can still easily open files, split windows, open tabs, build a project, search / replace, change fonts, change colors, etc. And all at lightning speed.

VIM is modal. This means that you do not need to execute complex key combinations when you hold Ctrl + shift + Key. This ultimately hurts you. Instead, you execute commands. No key combos needed due to modality.

We store data in our memory, like computers. Our memory can only store a few values ​​at a time. See how many different integers you can keep in mind before they slip away. We overcome this human limitation by writing material down. If the data falls out of our memory, we can easily see what we wrote to return it. If your time is wasted on a gross engine, physical things are wasting time you could spend processing data in your brain. You want your mind to appear on the screen without any effort. It may not seem that big, but VIM's ability to easily transfer what you have on your screen is a BIG performance boost. It's hard for me to say what I'm trying to say.

VIM supports code completion. Both text and search. It can pull text from mulitple files. Everything you wish can be obtained in VIM. Either do it yourself, or use something that someone else has cooked.

VIM supports goign for definitions using ctags. You can also find all links to an item. Again, whatever you want can be in VIM.

VIM scripts are huge. You can load or create thousands of color schemes and change colors in an instant. Try changing fonts or colors in Microsoft Visual Studio, and it will freeze for 20 seconds while it loads data. It will not allow you to save color schemes, and you should spend 30 minutes adjusting your colors and fonts every time you want to change the scenery. In VIM, you can set the distance between the lines to zero to type more lines of code on the screen. I get over 80 lines. Visual studio uses 2 pixel spacing for each row, and you cannot adjust it !!! Fewer lines = more scroll = less performance = forced to use small fonts for more lines = eye strain.

Split windows open in an instance in VIM. This is useful when you need to look at data in one section of code that is far from the place you are printing (or in another file). You do not need to waste time resizing windows or worrying that GUI windows overlap and fall on top of each other. Unlocked code windows can be opened in bookmarks, so as not to occupy the screen space, but allow quick switching.

VIM as an IDE: http://www.youtube.com/watch?v=MQy2rVOf-z0&feature=fvwrel VIM revenge: http://www.youtube.com/watch?v=lQNFfhC4QI8

+8
Jul 19 2018-12-12T00: 00Z
source share

I remember reading somewhere about a study that showed that people perceive keyboard shortcuts as more effective than mousing, when in reality it was not always.

Another psychological effect is that we add value to expensive things, i.e. since Emacs is harder to learn, it should be better in some way.

I think these effects can explain much of some people's extreme affection for Emacs / Vi.

However, in the case of Eclipse, I find that it can be very slow and even short-lived, but this does not apply to the IDE at all.

I regularly use Eclipse, VS and Emacs. I would use TextMate too, but I no longer have a mac. It depends on what I'm doing, and specifically, which system best supports my language and tools.

I know people who spend significantly more time programming their editor than they spend something useful on it. Some of them even admit that they do it only for a challenge. Other people often claim that Emacs / Vi can do much more than IDEs, because they are scriptable. Well, most IDEs (including Eclipse) can also be scripted. In this sense, almost all editors are equivalent (although, I assume, some editors are more easily scripted than others).

If you like the IDE, my advice is to keep using it. There are no True Editor.

EDIT:

This is apparently an article by Nina Bastin. I agree that this is far from the final source. However, I still think that my point of view that perceived and real performance is not the same is still maintained.

+4
Aug 28 '09 at 13:25
source share

It depends on the languages.

For Java or .NET, use the IDE (Eclipse, Netbeans, Visual Studio ...).

For almost all other languages ​​(C, C ++, ruby, python, haskell, lisp ...) vi and emacs are better in my opinion.

+4
Aug 29 '09 at 18:56
source share

Efficiency from vim / emacs is mainly provided by their intensive use of the keyboard. In these programs, you can do anything right from the keyboard, instead of stopping and using the mouse.

+3
Aug 28 '09 at 12:59
source share

I would say that the actual vim / emacs editors are far superior to the Eclipse text editor in terms of the shortcuts they offer. However, I completely agree with you in refactoring.

Most people need to write scripts to perform the refactoring level that Eclipse is capable of. I think part of it is bragging, or people just do it the same way as always.

+2
Aug 28 '09 at 13:03
source share

Anytime I will use emacs instead of an eclipse. I must also say that bare-bones emacs, this is not so great, but after some tuning you will never want to let it go. In particular, I will tell you how useful emacs were when writing my master's thesis, which should clearly explain why Eclipse is inferior, simply because it is less versatile.

I am my main thesis, which I wrote in the following programming languages: C ++, Python and R. In addition, I had to write a thesis for which I used LaTeX. Moreover, I had to write a bunch of shell scripts and cmake scripts. Guess what? Emacs has great support for all this. Specifically, it was a pleasure working with AuCTeX to produce LaTeX documents. Emacs then provides an excellent ESS mode for working with R. Similarly, it provides tools for python. After I had cmake scripts to create C ++ code, I only had to call compilation using emacs and I was done. Eclipse cannot do this at all, so you need to learn how to use many different programs. Take notes? There is an org mode for this, and it’s great!

And then my program is needed for a very powerful computer (not like any laptop). That way I could just do everything remotely from emacs !!!! Using tramp, I found myself doing remote interactive R-code evaluation, remote compiling, running and debugging C ++ code, and all in the same good local emacs window that I used. On the contrary, my friends, who used a separate tool for everything, were much slower in developing software designed to work on another computer.

I have a few other stories, but I think this will give you a good idea of ​​what you can do with Emacs. All in all, I think that choosing to use emacs (despite the learning curve) was the most productive decision I have ever made.

Hope this helps.

+2
Jul 20 2018-12-18T00:
source share

We recently had this argument. My opinion was that the one and only function that I could not get around was Emacs autocomplete. Eclipse autocomplete is based on parsing - the code is parsed, and as you enter the code, you are offered a choice of completion. Emacs autocomplete is based on simple text analysis. This means that it works in plain text, in comments, in documentation - everywhere. I keep saying that Emacs autocomplete is what IntelliSense wants when it grows.

Update:

Eclipse really offers Alt- / which should look like Emacs. Not sure how well it works.

+1
Aug 29 '09 at 18:46
source share

The only place I prefer the IDE is debugging. I set up a vim environment for debugging, but it was so painful to use, so clumsy that now I just switch to my IDE (Netbeans) when I need to debug. vim is great for editing text, the IDE is great for more complex things (like debugging and some project management tasks).

+1
Dec 12 '10 at 4:33
source share

Like some of the posts above, I started with an IDE (Eclipse). From there I moved to Emacs and then returned to the rich text editor (TextMate).

For me, the ability to have an editor at the interface level was effective. Allowing me to integrate another service that I created (or others) into my pseudo-IDE environment.

0
02 Sep '09 at 16:28
source share



All Articles