Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Recently reading the question What languages do you use without an IDE? One question asked in a few answers was "is Notepad++ and IDE?"

One answers to the original question said "None, I use vim...", implying that vim is an IDE. But then another answer suggested vim isn't an IDE.

So where is the line?

What about notepad, ed, or nano?

Is the only non-IDE coding technique the butterfly technique?

share|improve this question
The definition might be a little fuzzy and subjective. – yakiv Oct 16 '12 at 21:51
up vote 31 down vote accepted

Taken literally, IDE = Integrated Development Environment.

This is the way i look at it:

  1. Integrated: Means you can code / launch / compile / debug your app from the tool.
  2. Development: Means it can group files into projects, and does syntax highlighting for your language, maybe has refactoring tools, ability to generate files from templates (like unit test files, class files etc.), auto complete / intellisense
  3. Environment: Means both of the above are available from the same tool

Notepad++ allows for development (eg. you can write code), but the other areas of development are not covered. I've never used notepad++ for development, only for occasionally editing files.

share|improve this answer
That's a good point. Notepad++ doesn't fully integrate with any language by its self, however it allows for compilation, launch and debugging by use of plug-ins. To me it seems like it might be a full IDE at that point. – Matt Ellen Sep 23 '10 at 8:49
That definition makes Vim and emacs IDEs, since they are seldom used for development without plugins that give them all (or most) of these features. – Chinmay Kanchi Sep 23 '10 at 11:54
Then I'd agree that, when used in conjunction with such plugins, they are IDEs. – Matt Ellen Sep 23 '10 at 12:07
By themselves vim and emacs are just fancy text editors, but if plugins mean you get syntax highlighting, compile & debug features, then as a package I don't see why they wouldn't be considered IDEs. (Clearly, without plugins they're just fancy text editors for sadists). – David_001 Sep 23 '10 at 12:15
Interestingly I just pulled out my Turbo Pascal manual (for the original IDE) and there's no debug... but yes, now, as a minimum edit, compile, run, debug. – Murph Sep 23 '10 at 12:29

IDE: Integrated Development Environment.

An IDE must have the following:

  • Editor (preferably with syntax highlighting and autocomplete).
  • Integrated compiler or building.
  • Preferably a debugger.

Other enhancements are:

  • Integration with version control.
  • Other tools (like profiler).
share|improve this answer
Integrated DBMS. – systemovich Nov 18 '10 at 7:05

Other than the obvious features like integrated build, debug and source control, etc. I want to highlight that autocompletion can help the developer to be really productive with a language with a large library. E.g.

  • Visual Studio
  • Eclipse
  • Wing IDE (not free)

Vim can be setup to do this too.

share|improve this answer
I prefer to call it "autocompletion" ... – Here Be Wolves Sep 23 '10 at 15:33
Correct. IntelliSense is Microsoft's implementation of autocompletion. – Mat's Mug Oct 15 '12 at 17:43
Changed IntelliSense to autocomplete. Thanks. – grokus Oct 16 '12 at 18:45

It's got to allow you to edit, compile/build, and debug.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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