41

I find myself using my text editor of choice (vim, nano, gedit, pick your poison) much more often than any IDE as of late.

After noticing my ide shortcuts getting dusty I started to think about this and wonder: what justifies use of an IDE for you opposed to a text editor?

For that matter what rationale would you have for not using an IDE and merely relying on an editor?

Chris
  • 5,653
  • possible duplicate of http://programmers.stackexchange.com/questions/1003/the-great-debate-compareing-ides-and-text-editors? – Larry Coleman Nov 23 '10 at 19:51
  • what do you actually do in your editors? –  Nov 23 '10 at 20:03
  • Write code, develop applications,... pretty much everything as of lately. – Chris Nov 23 '10 at 21:51
  • 15
    Personally, I find IDE's a lot more useful when reading other people's code (especially large projects) than when writing my own code. IDE's let you navigate through the source more easily, making it easier to quickly understand other people's source code. – Charles Salvia Nov 23 '10 at 22:46
  • Charles Salvia, that seems like an answer more than a comment and I agree with it. – Chris Nov 24 '10 at 11:03
  • 3
    I would like to turn the question around. What justifies NOT using an IDE. – Nailer Nov 24 '10 at 15:10
  • @Nailer: This question is open ended enough to discuss. I have updated question/topic as well based on this comment. – Chris Nov 24 '10 at 15:35
  • I'd suggest title change: s/standard/simple/ – vartec May 13 '11 at 09:18
  • I think the question is actually misguided: You do not need any particular workflow to be productive. Instead, you need understanding. There are tradeoffs involved in all choices, but proficiency stems from really understanding your workflow. So pick what you want, but strive to understand it well in order to be able to improve it. – bastibe May 13 '11 at 16:26
  • IDE is for pro while editor is for noobs. It needs some time to get adjusted to an IDE, but in long run it saves ton of time. –  Feb 12 '18 at 13:19

16 Answers16

70

The I: integration. A good text editor may be nice for writing code, but most of your programming isn't spent writing; it's spent testing and debugging, and for that you want your text editor to integrate with your compiler and your debugger. That's the greatest strength of an IDE.

Mason Wheeler
  • 82,789
  • If only I could find one that didn't get in my way :) –  Nov 24 '10 at 06:16
  • 5
    I've just come to accept sub-par editing as the price I pay for the convenience of integration. – TMN Nov 24 '10 at 15:55
  • Isn't testing programming if you do it right? If you spend most of your time debugging and monkey testing, then I think I see where your problem is. – Tom Hawtin - tackline Mar 02 '11 at 11:07
  • 8
    @Tom, Testing is programming when you can automate tests you do all the time. Otherwise, verify by whatever method yields the greatest quality. – Andres Jaan Tack Mar 02 '11 at 11:31
50

These are my favorite features of my favorite IDE, IntelliJ, which I like using for Java, PHP, Javascript, HTML, even ActionScript.

  • Error checking - Like live spell check for code. Absolutely essential.
  • Code navigation - Ctrl+click on a function, variable, type to go to the definition. (IntelliJ is very good at this in all of the above languages)
  • Code completion - I use Ctrl+space constantly to help fill in the class or method name that I need. This speeds up coding a ton, and even helps catch bugs before they happen when something you needed is not accessible from the context you are in. IntelliJ will even help you expand acronyms - type NPE, hit Ctrl+space, and it will show "NullPointerException", "NoPageError", etc. Hitting Alt+enter to automatically add the import is really nice too.
  • Code generation - Generate getters and setters, implement methods from an interface with a couple clicks.
  • Very good code coloring - IntelliJ not only does the standard keyword, string, variable name coloring, but also colors member variables, local variables, parameters. In ActionScript a variable that is actually a setter/getter will be colored like a function.
  • Refactoring - Mistake-free renaming is the biggest. IntelliJ is very good at renaming even setters and getters or string usages. Of course there is regex-based search and replace when you need it, and a "preserve case" option to enable you to replace "myNumber", "MyNumber" and "MYNUMBER" with "myString", "MyString" and "MYSTRING" in one operation
  • Version control integration - We use SVN, and my favorite IDE VC features are being able to create, delete, move classes without thinking about SVN, easily browsing history, a very good diff tool, good merging capability, and annotating files (showing line-by-line history) in the editor.
  • Dependency importing - When relying on a third party library that you have the source for, you can navigate to the code easily for reference, debugging, etc.
  • Smart typing - pasting code and having it automatically paste to the right tab position, auto completion of end-brackets, parentheses, quotes, etc.
  • A very good Test runner for JUnit, FlexUnit, PHPUnit
  • Debugging - of course. Debugs JBoss, Jetty, even Flash flawlessly. Ctrl+click stack traces to go right to the code.

Things like the code coloring you might take for granted, but good code coloring is like peripheral vision - it allows you to focus on the important stuff without taking that split-second extra to identify the full word.

IntelliJ also even uses Ctrl+space to suggest variable names. In Java, if you declare a new EventMessageItem variable and hit Ctrl+space, it will suggest "eventMessageItem", "eventMessage", "item", etc.

All of these things give me way more time to think about my code and architecture, and think less about fixing formatting, dealing with the file system, fixing copy-and-paste errors, switching between applications, chasing down documentation, etc. etc. I don't know how you can say no to that kind of productivity increase.

Nicole
  • 28,181
  • 3
    +1, most of the points here apply to any decent IDE, or should :) – Matthieu Nov 24 '10 at 20:50