Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I don't want to know which IDE is best, because that's subjective. I'd like to know how to evaluate an IDE. I'm primarily a vim user, and realistically happy there, but occasionally look at languages that have powerful IDE's and I consider using them.

The problem I run into is that they mostly seem the same to me. Certainly any of them will work, but when trying to decide which IDE to invest time in how do I decide?

What features should I be testing to see if I like the way A or B works better? Obviously some IDE's are specifically tailored to a language, but given a choice between say Netbeans, Eclipse, and Intellij IDEA, how would I decide? as a novice they seem the same.

When evaluating I generally try the editor, a few configuration options, file browser. I think my colleagues all basically the same as me and don't use IDE. I also doubt I'd end up using the IDE for work, because Perl shop, and I'm happy with vim for that, I'm simply trying to figure out how to use them in the context of languages that aren't day job and have solid IDE support.

share|improve this question

closed as primarily opinion-based by Bart van Ingen Schenau, Kilian Foth, MichaelT, Robert Harvey, Dynamic Dec 8 '13 at 23:35

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

14  
How do you pick a meal from a menu. Try them out and see what you like. –  James Jan 17 '13 at 2:50
2  
Why do you think IDE evaluation criteria are any less subjective than "best" IDE? If everyone used the same criteria, it'd be easy to objectively pick the best IDE. –  Caleb Jan 17 '13 at 4:45
    
what specifically have ou tried when evaluating? –  gnat Jan 17 '13 at 6:53
    
This might help : programmers.stackexchange.com/q/125796/20065 –  BЈовић Jan 17 '13 at 8:00
    
If you cannot decide otherwise, google "<name.of.IDE> IDE" and pick the one with the most hits. Tie breaker criterium –  scarfridge Jan 17 '13 at 8:39
show 7 more comments

6 Answers

Okay, this feels more like one of those questions where somebody needs to dig deep down and find the real question, which based on your comments, I suspect is:

"Is it okay that I hate IDEs?"

My answer would be "Bravo, yes. Over-reliance on IDEs to handle too much for you can make you weak and lose touch with the value of carefully designed architecture that ultimately makes a code base more maintainable with or without the crutch. Also, for devs who've really mastered less complex/lighter-weight tools like VIM they can do more to get in your way than actually help you."

But don't get too smug. Even if your code is clean and neat enough to be more easily dealt with in a non-IDE fashion, that doesn't mean everybody's is or that yours always will be if you find yourself having to continually add layers to something you had intended to refactor before you took it any further, but oops, now there's money and employees involved and you just need to get 'er done in time to see whether people get Christmas bonuses this year. (disclaimer: no, I've only worked for that guy)

It took exactly one legacy code-base from Hell to convince me that no, IDEs have their uses. These are:

  • Making the illegible less illegible - It is not possible to understand the code in a code base where every single class has a minimum of 1 interface and a super-class or a sub-class merely by looking at the code. It's just not. It at least helps to have something you can quickly find where stuff actually begins and ends.

  • Debugging crap-procedural wolves in OOP sheep's clothing - Sometimes you just have to give up and realize that all the OOP architecture is really just crap that further obfuscates what's going on. When it takes 30 method calls to make a basic web service call for some static data in a DB you're going to want some help figuring out where it went wrong.

  • Helping you with a language that you don't know that well - The mere presence of auto-complete and param hinting can help out in a big way on this front. Typing at 70-80WPM when intoxicated in a snow storm doesn't help you when you have to Google your way through Microsoft or J2EE documentation to do the simplest things.

  • Managing complexity - I have to admit. Once your actual code file count grows beyond 20 or so, it's really nice to just be able to right-click something and see where the heck it was defined or rename it 6 different files at once. Especially when working with something you didn't write the bulk of when dealing with a team.

So, if perhaps you're fairly convinced as I always had been that IDEs are often a symptom of a disease, I don't think you're entirely wrong. But I'm a JavaScript dev and I have to admit, WebStorm is pretty neat. I still open Scite more often than not, but once there's a lot of dependencies to manage and some stupid code in the mix, I'll take the IDE option.

If I'm not wrong and you're at least similar to me in historical outlook on IDEs, I would go with the four things I actually have found them useful for as things to rank the value of an IDE on.

share|improve this answer
    
I think my... lack of adjustment comes from being a sysadmin before a dev, IDE's and emacs aren't really an option as a sysadmin, pico clones and vi clones are about all we have that's reliable. I don't /hate/ IDE's but I certainly don't know how to pick one. In a sense I suspect it's a lot like picking a first language, to some extent you just have to, but you can narrow it down by "what kind of software do you want to write". Don't learn C for web pages, Python isn't going to work for device drivers, and you probably don't want Java for that admin script. –  xenoterracide Dec 5 '13 at 9:06
    
also, this seems like a good answer for why to IDE, not why I would choose a certain IDE (I've basically figured this part out) –  xenoterracide Dec 5 '13 at 9:31
    
An IDE's ability to do those 4 things is the only thing I would care about other than stuff that would make me use/not use any app like taking forever to start, frequent crashing, not being able to find to 5 features you want to use most of the time in a sea of hundreds that you'll never use, etc... –  Erik Reppen Dec 5 '13 at 15:43
add comment

Trying them out is obvious.

I'd create a list of show stoppers: things that can't be true about an IDE that I use. Some examples:

  • Does it fail to run on some machines my developers use?
  • Is the company making it (or community backing it) dead or dying?
  • Is it crash-prone? If crashed (or hung and killed), does it have trouble starting?
  • Does it make you wait at random moments?
  • Does it have known serious bugs or shortcoming in areas that matter to me?

This can be summed up:

  • Does it make you curse often?
  • Does it make you switch to other tools often?

If it does, probably it won't fly.

But don't forget to actually learn how to use each IDEs first. Faithfully follow introductory texts or videos, however obvious the material might seem; your stereotypes might be holding you back from using a great but unconventional way to do something.

share|improve this answer
add comment

Try them out!

You mentioned that you're a vim user. Assuming that you don't want to give up your superpowers, you'll probably want to see which IDEs have better vim modes.

Think about if you want an IDE that works with many languages, or multiple which are fantastic at the language they specialize in.

It's all a matter of opinion.

share|improve this answer
add comment

An IDE is supposed to increase your productivity. That should be your criteria.

Whatever IDE's you wanted to try, download and install them first. Try coding in each of them, one by one. Or try one a day. By the end, I'm sure you will figure out by yourself which one could make you more productive.

Each IDE has its own settings, keyboard shortcuts, behaviors, etc and if you keep using them regularly, you will get comfortable around them and get used to them. Here are some other factors you might want to consider when evaluating IDE's:

  1. If it is in active development
  2. If it has good community support(and wide adoption as well)
  3. If it has a good and growing number of plugins/extensions
  4. Might not be relevant - but if it is free or paid

I have been using eclipse for 3 years until my colleague asked me to try IntelliJ IDEA. I have been very comfortable with eclipse for 3 years. However, I liked IntelliJ better as it is as they have advertised - more intelligent. Plus, they have a community edition that is open sourced and free. So, I switched to IntelliJ as it improved my productivity, but whenever I am helping other colleagues who are using Eclipse, I won't have trouble with that.

I personally find myself trying every IDE I get across, because, the IDE's have a lot of scope for improvement and they will keep getting better and intelligent.

share|improve this answer
1  
I'd argue that "one a day" is too short of an evaluation period. If I'd evaluated vim by my first-day experience, it would not have become my living room. ;-) –  Stefan Majewsky Jan 18 '13 at 21:24
    
That's true. One day can be short(especially, when you work only a few hours per day). However, if you are use it from morning to evening, you will get a better hang of it, enough to evaluate among its peers. I like vim too. I specially like the line yanking and pasting. –  Sundeep Jan 19 '13 at 7:57
    
This is probably the best answer on this, though sadly it hasn't really helped me because all of the IDE's I've looked at look good in 1-4, and generally those apply to /all/ software evaluation. –  xenoterracide Dec 5 '13 at 9:33
    
@xenoterracide 1-4 are all additional factors you will want to consider and like you said, they all generally apply to all software. The important factor is your productivity. For example, I find I am more productive on IntelliJ IDEA because it offers suggestions automatically and intelligently and I don't need to save my file after every change. It also keeps a history of my changes locally. Compared to Eclipse, you will have to explicitly request suggestions(Ctrl+Space) and do explicit saves. That's more keystrokes that can be saved. –  Sundeep Dec 5 '13 at 10:49
    
One more thing I couldn't find in any IDE is REPL READ, EVAL, PRINT, LOOP . When I write code, I constantly do REPL over and over, I would like it to be part of IDE. Of course, the IDE needs to be very intelligent for this to work in large projects, but it will be great for smaller projects to have this. lighttable.com aims at solving this. It's still under dev. –  Sundeep Dec 5 '13 at 10:56
add comment

There's not much point in defining evaluation criteria. Even if you define some, you will have to play with the IDE to decide if it satisfies them, but then again by playing with the IDE you will encounter things you like or dislike about it anyway, regardless of whether you established criteria or not.

My algorithm is: I choose the defacto standard for the language/SDK I'm using and just wait and see. If I encounter too much problems I'll consider switching to an IDE which is promised (by advertisement or word of mouth) to not have these specific issues.

As others have mentioned, since you're a vim user, one easy thing you can do is look at available vim emulation plugins.

share|improve this answer
add comment

As a developer, I consider whichever one helps me get the job done the quickest with the least frustration. Also, one that is popular because I know I can find support for just about anything via google if that is the case. As a fellow vim'er I tend to choose ones with vim plugins (e.g. eclipse and visual studio both have vim plugins). Then it's the best of both worlds :)

share|improve this answer
2  
I've honestly not found vim support to actually work well in eclipse (mostly due to the fact that it seemed to make the editor portion a separate program and so what's the point?), but qtcreator, and anything based on katepart in kde have decent vi bindings now. anyways I suppose looking for vi bindings has been something I've looked for. –  xenoterracide Jan 17 '13 at 1:52
    
@xenoterracide: It depends on what vim bindings mean to you. I for one have grown to rely on defining my own syntax highlighting rules in Vim command mode. I know no IDE that has hot-configurable syntax highlighting like that. –  Stefan Majewsky Jan 18 '13 at 21:26
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.