+20  Q: 

IDE or Text Editor?

Do you like to code using an IDE (like Eclipse or Visual Studio), or you prefer simply a text editor (like Vim) ?

I heard strong arguments against IDE's (specially from dynamic language programmers) but I really love Eclipse.

Which type do you prefer? Why? If it depends on the language please say so.


+7  A: 

Learning to code in a text editor makes for a better programmer, it makes one actually learn how the language works.
Daily coding in a text editor is wasting someones money, hopefully not yours.

+35  A: 

I used to hate vim, but I made a determined effort to learn it and now I find myself typing everywhere as if I'm in vim... and then realizing I'm not in vim.

Vim takes a bit of learning, but once you learn even just the basics, it's great.

agreed! :):wq
What is even better is Vim inside an IDE. If you use Visual Studio, try ViEmu.
Adam Hughes
There's also jVi for having VIM inside Netbeans (and I think a couple other java-based IDEs)
Same, but for Emacs. Good thing Xcode has some Emacs key bindings. Weird things happen when I'm in Visual Studio, though.
I find it harder to shake vim's commands than emacs'. When I have to use emacs, my files end up with :w's and =='s everywhere!
Yes Vim's Macros can't be beat.
+4  A: 

A good ide keeps out of the way while you are editing text.
Command line tools are necessary for automated builds etc in addition to the IDE but there is no value in me remembering a bunch of linker flags for every compile.

For debugging they are invaluable, sorry you aren't dragging me back to gdb and a telnet session.

Martin Beckett

Traditionally, I've been a text-editor fan, vim being the editor of choice. When I moved from Linux on the desktop to a Mac, I started using various IDE's including Eclipse, as I like the visual organization and overall usefulness of an IDE. Recently I stumbled across Coda and for my environment it works great. It's much lighter weight than Eclipse and supports all the languages I am banging about in.

Ultimately for me it comes down to if I am developing on a remote box, in which case I am in VIM and if I am developing on my desktop, then it's Coda.

+28  A: 

I think it depends on the language. I couldn't imagine developing on .NET without Visual Studio, but when it comes to develop in Python, for example, I cannot imagine using anything else than my favorite text editor (Vim) and the command line. I have tried some Python IDEs like IDLE and Komodo, but I always return to the basic tools.

I guess it is because in both cases, the tools and the development platform were designed to work well together. I mean, .NET was not designed to be 'comfortable' without Visual Studio.

Sergio Acosta
Same here. I'd basically kill myself if I had to do .net dev without Intellisense. For Python, I just use vim or Textmate.
It's worth noting you can have a vim-like editing mode in Visual Studio. Never used it much myself, though.
Benjamin Oakes

IDEs add so much value to the development process. For me it's Eclipse (Zend for Eclipse) for PHP and Visual Studio for .NET

However I'm sure everyone has a fast, light text editor with coder features to it for just opening and maybe editing source files without loading an IDE.

For me, that's Scintilla Text Editor

David Moore

Use an IDE. It will save you time. But sometimes, when IDE's act stpid, like past versions of visual studio did with automatically formatting aspx files, then going out into a pure text editor is almost a must. But this usually isn't the case for code files.

Charles Graham
+2  A: 

For scripting I prefer to use text editors. This is because scripts tend to remain much smaller and are a lot less complicated. I also have less need to integrate management of files when working with scripts. Build processes are also unnecessary.

Most of the time I would rather use an IDE. I mainly use Visual Studio. Using IDEs speeds up development a great deal.

I also believe there is great benefit to using text editors sometimes with any language, because it can help you better learn a language. A lot of the "help" one receives when using an IDE can cause a programmer to not know the language very well, because the IDE does too much work for them.

Text Editors I use: vim, notepad++, notepad IDEs I use: Visual Studio

Brendan Enrick

For me it depends on where I'm coding. When I'm at work I use Eclipse so it's easier for me to work with our SVN repository.

When I'm at home and working on my own projects, I prefer to use lightweight tools and I use Notepad++ for just about everything

+1  A: 

I use a text editor and a command shell. The reason being that I can use the exact application build process for my sandbox as will occur in QA and production, no change. This makes for more stable deployments.

+5  A: 

I prefer to use a IDE like VS.NET. The reason for this is that it increases my productivity a lot. Especially when using a add in like ReSharper from Jetbrains. Using this combination I get a lot of code generated. Code that is repetitive to write. It also helps with a lot of other stuff too, of course.

+3  A: 

I use emacs almost exclusively. I find IDEs tend to be slow and very mouse-oriented, not at all what I want when I'm coding.

Big Dave Diode
If you have a IDE that allows emacs-style keyboard shortcuts, you get the best of both words. Even Visual Studio supports ctrl-X-ctrl-S as "save".
Dean J
+9  A: 

I personally prefer to use emacs as an IDE. It takes alot of overhead to learn, but if you learn the keystrokes you will accomplish your tasks faster with all of the tools emacs has. I can compile, grep, autocomplete, debug visually, and jump to any function my cursor is on. Combine that with the emacs text editing capabilities and it is an awesome tool. Check this out on how to customize emacs:


why not using an IDE then ? It would save you the time you spend customizing emacs...
I agree that you will spend more time customizing it, but I believe that it is more efficient in the long run to have the most efficient key bindings, lisp programs, etc that you need for your job since you will be using it at least 8 hours a day for the rest of your career.
+15  A: 

For Java I always use an IDE.

For JavaScript, HTML, CSS I am quite happy with a text editor (EditPlus) as long as I can access some reference information online easily.

I did used to use HomeSite for HTML and the code completion and suggestion features were useful, but I guess I know HTML well enough now that I don't feel like I "need" those features.

With Java you're dealing with more interactions between a variety of classes so in my experience code completion, suggestion, refactoring tools, etc. are a big help.

I imagine it's going to get that way with JavaScript development (in general and for me) over the next few years. IDE vendors are working to improve their JavaScript support so I wouldn't be surprised if I dropped EditPlus in favour of Eclipse for JavaScript at some point in the future.

+1 for merely mentioning EditPlus
+1  A: 


Emacs is an IDE, with a bigger "I" than anyone else.

Ben Collins
+9  A: 

I'm an IDE man myself. One of my biggest problems is staying organized so anything that can be done to help me keep track of everything is a major plus. Any editor these days can do syntax highlighting for major languages. It's the tools and extensibility that make the difference.

I can't imagine life without Eclipse, since I do Java/Perl/Ruby/PHP development in it. Other people at my office that have done .NET stuff swear by VS 2005 and 2008. There's one guy that uses VIM in Windows for Java but we look at him funny :P

haha, i love hte vim comment. i'm a VS/emacs man.
Matt Joiner
+2  A: 

If you learn the editor way of working you will get a grip of how the whole toolchain is connected. emacs, vi, make, cc. I'm pretty old school but am often asked to answer questions about problems in IDE's where the developers don't understand how configuration variables which is set in the IDE affect the compiler and linker. To learn a tool is an investment, the cost is time and I believe learning the basic developer tools as vi and emacs will always payoff. It has for me. I appreciate the IDE features like type ahead. But features like that can also make you write bloated code because they makes it easier to write lots of it.

+1  A: 

depends on the language.

For dynamic languages, I tend to use a simple editor. For writing Perl and Python code, I use SciTE.

When I have to write code in a statically typed language (I do some Java and C#), I end up in a full blown IDE like Eclipse or Visual Studio.

Kinda interesting.

Corey Goldberg
+1  A: 

The amount of information presented on the screen what counts. Today you can't afford typing in a 80x25 shell window, you would be less productive. You need an IDE or a programmer's editor with plugins, syntax highlight etc. You should be able to navigate in the source tree quickly, be able to browse the code structure quickly and have a lot of functions automated. The spared milliseconds/brain activity add up during a day.


If you learn to develop without an IDE, you’ll also have no trouble developing using an IDE. But that is not always the situation for the reserve case.


Ever tried the Delphi-IDE? Never anything else! It's simply the best.

+14  A: 

These days learning the language is only the smallest part of becoming a developer or adapting to a new situation. Learning the libraries that you are working with is much more complicated. While I understand other peoples need for minimalism (vi/vim) even a decent IDE will give you a lot to help you in your day to day work.

  • Code Completion, instead of digging through documentation you should be able to tab your way through methods and save yourself a lot of writing

  • Refactoring, Global Find and Replace is no replacement for good refactoring support, that starts with renaming functions, variables, classes, ... and ends with some of the functionality that you can find in current Java IDE (IntelliJ for example)

  • Syntax Checking, helping you out with writing correct code while you type

And lots more, and while I think that vi/vim has it's place, an IDE, any IDE is another tool in your toolchest, and used appropriately it will make you a better developer.

Harald Scheirich
I agree about refactoring being nicer in an IDE, but I do tab completion in Vim and I know if it doesn't highlight my code in the way I expect, I must not be calling something right. I use Vim for Ruby development, though, so it doesn't have to worry about type checking for parameters I pass, for example.
Sarah Vessels
Exactly what i've been thinking. Everyone says plain text editors are great, but I just don't see how help/assistance/intellisense/tooltips from code from multiple libraries can be displayed in vim/emacs. Maybe I'm totally ignorant, but all the cool Web x.y folks use Aptana, Netbeans or Eclipse in their videos, tutorials and screencasts online. In fact, where are the emacs-as-ide videos of people developing enterprise web frameworks?

IDE, because it's also a text editor.


Probably both, depending on the stage of the project. I find I work much faster in a text editor especially in the early stages of putting together new HTML, JS, CSS, XSLT, batch scripts etc. But when I'm returning to something I wrote a few years back, it sure helps to use Aptana to navigate through my functions.

It might come to the same thing anyway. You'll probably choose a text editor with syntax highlighting and attach tools for compiling or validating so it becomes a bit like a mini-IDE anyway.

Also, using a text editor forces you to be quite disciplined in the way you structure your code just to make it navigable, and that's no bad thing. But I'd hate to write any Flex in a text editor - code completion becomes much more important once you start having to add "import" lines everywhere.

Odilon Redo

like the IDE that sure, but sometimes it SUCKS

Omar Abid

It depends on what I am doing:

Code Generation, Refactoring
I use IDEs like Visual Studio + Resharper, Eclipse, MonoDevelop or SharpDevelop.

Heavy Code Writing, real-world Regex replacements, advanced text editing
I use advanced editors like Vim or UltraEdit. They are far superior to the IDE ones.

Generating tons of repeated lines
Like INSERTs for a set of data, etc... I use Gnumeric or Excel to generate code and then copy and paste.

Simple test programs
Either an editor or SnippetCompiler


I use vim for C++ coding on Solaris at work. It very fast and I love all the 'magic' behind it. I'm doing some 3D programming at home with DirectX so I decided to give VS 2008 a try. It's not bad but without Visual Assist X I can't see any benefits for C++ developer. With VA it's pretty cool :)


For a language like java its very difficult to write code without an IDE (especially if you are developing webapps in any new fangled frameworks) but, I usually also have Vim running handy to make quick edits(while not having to wait for the IDE to choke up trying to do all its mojo)A


Instead of using VS.NET for testing some pieces of code Snippet Compiler is the best


When I'm writing anything except C# I use vim (in Linux) and notepad++ (in Windows, I don't like gvim). Visual Studio has Intellisense which is the best thing ever and makes coding in C# incredibly easy. Also it has the RAD (Rapid Application Development) form editor which makes design incredibly easy.


I am a front end guy, so I have to use a multitude of editing environments. For flash, I use FlashDevelop or e-text editor. For Javascript and Html, I use Komodo or Dreamweaver. For basic text editing I use Notebook++.

Basically, each environment has a feature that simplifies a task, even Dreamweaver, that no other environment has. That's why I can never commit to just one editor like others here.

+1  A: 

Hands down: ViEmu for Visual Studio Visual Studio + VIM = ViEmu


For php I use Eclipse because it's easy to find and use classes and functions I've already written (can be a lot of them) and I like the clean GUI. When working on a *nix box I use VIM when editing all sorts of textfiles, and I find working with .NET development useless without Visual Studio.

And of course; Notepad++ to a little bit of everything

Good, old VIM howto


The VS.PHP addon makes Visual Studio an excellent IDE for PHP. For Java Netbeans which also includes good PHP support.

For Text Editors... VIM, InType


Give me an IDE anyday, visual studio or eclipse


For embedded software, a lot of compiler producers supply their own IDE, with predictably variable results.

In one of the projects I'm working on, I find the compiler's IDE pretty awful, so I use a different one for coding, then hit Alt-Tab and F7 (build) every time I'm ready to compile the code.

One day, I'll find the time to learn Vim...

Steve Melnikoff


If you are starting use the text editor, only use the IDE when you are in a good level of the program language and them time is the most important thing.

Nathan Campos

You might find this question relevant.

+4  A: 

IDE? Texteditor? Just CLI.

C:\>echo public class X { public static void main(String[] args) {
intln("waa"); } } >


C:\>java X


If you're doing anything complex, IDE. If you're doing something relatively simple - one file, for example - text editor.

Fit the tool to the job. Having to create a Eclipse project and workspace and boot up Eclipse just doesn't make sense for a ten line program. Trying to edit a half million lines of code using a text editor is lunacy, as well.

Dean J
+1  A: 

I tend to utilise different solutions depending on the technology stack. For .NET (especially C#) I tend to use Visual Studio exclusively. For Java I use Eclipse for most things. For HTML and JavaScript I tend to hand-crank most of this in notepad++ and debug in firebug (in firefox). If you are new to programming, the Visual Studio Express tools are good and allow really good debugging. Personally I would recommend doing something once the hard way before relying on an IDE. Then when it all goes wrong you will be able to fix it.

Andy Monis

Often the payoff is not that great using an IDE, because the productivity gain often isn't large enough to justify the time being spent on the tool and potential hassle.

Benefits of integrated development enviroments

  • Code completion / Refactoring
  • Usueally there's an integrated debugger.
  • Code browser / object browser etc.
  • Some languages and IDE's are built as a pair.


  • A huge part of the tool-chain and languages used in modern development is built with text-editors in mind.
  • Your IDE will change more often than your texteditor, you'll spend a lot of time on things that are not important (I learned a few MicroEmacs keystrokes on the Amiga 500, I can still use them today (My KSeka assembler IDE-knowledge is somewhat outdated)
  • Your IDE will often lag behind on technology and might not support the technology mix of your choice.
  • How you organize your development is constrained by the features it has.

I think one of the biggest benefits of IDEs are automated refactorings across several files, which are really hard to do in a text editor or using CLI tools. This is what switched me from Vim to Eclipse, and I haven't looked back.


C:>echo public class X { public static void main(String[] args) { intln("waa"); } } >


C:>java X waa


Yeah, good luck with that :P