I am authoring a IDE for the Lua language. I find that many programmers do not like to use IDE and prefer VIM (which is in vogue at the moment), SCiTE, or .

In trying to win some mind-share I am interested in what features an IDE could provide that would make it a compelling alternative to a general purpose editor.

Is there a "killer-app" so to speak for an IDE that would make it a "must-have"?

This could be thought of as the reverse of

Most useful features of VIM that aren't standard in a IDE

I won't link to my IDE unless someone asks - but you can pretty much just Google my name and find it.

EDIT: My IDE is actually a language plugin for an existing IDE, so I do inherit many features from the host IDE - at some level though my language support is an IDE in and of itself - at least as far as the language specific aspects are concerned.

6 Answers 6

  1. Refactoring facilities (Renaming affects dependencies/Extract Method/Extract interface etc.)
  2. Intellisense (or any other code completion functionality)
  3. Error checking (the IDE actually knows its symbols)
  4. No setup hassle
  5. Integrated compiler
  6. Integrated debugger
  7. Better navigation to and from references/declarations
  8. Project templates / file templates
  9. GUI builders
  10. Can autogenerate boilerplate code
  11. It's intuitive and can be used without knowing all the magic keys (hey, that's why GUIs became successfull in the first place)

Overall, as @Thomas Owens stated, the biggest advantage of the IDE is tool integration with its synergy effects as a whole, while it's still intuitive and easy to use.

  • 3
    Overall, I would say tool integration as a whole - integration with version control, continuous integration server, bug tracker, compiler, debugger, profiler, static analysis, and so on. I would say the compiler and debugger integrated is a big deal, but having everything in one nice, neat little package is helpful.
    – Thomas Owens
    Commented Aug 18, 2011 at 11:48
  • @Thomas Owens: Very true, but I didn't list source control for example, as you can integrate source control easily in vim, so that's not a big deal, after all it's just a command line call and I for example like Tortoise better than AnkhSVN. I would've listed profilers but not all IDEs come with one (VS for example has none out of the box afaik). Metrics are a nice point, but again, only the newest VS offers it afaik.
    – Falcon
    Commented Aug 18, 2011 at 11:51
  • In Eclipse and NetBeans, a lot of what I mentioned is plug-in based, although there are lots of plug-ins (or modules or extensions) for vim and emacs, too, with different capabilities. I think that's what's nice about all of the tools - it's easy to choose what you want for you to be productive.
    – Thomas Owens
    Commented Aug 18, 2011 at 12:00
  • I think I have most of that list to one degree or another. Also, code formatting. and even support for integrated help for custom API's and libraries. Your list is pretty comprehensive though. Perhaps it just comes down to personal preference in the end, and there is not much more I can do. (My IDE is an IntelliJ plugin - perhaps that is too much for some)
    – sylvanaar
    Commented Aug 18, 2011 at 12:25
  • 2
    I would clarify that things like Refactor/Rename are multi-file (project-wide) - when I rename a method or variable, PyCharm (for instance) will apply the renaming across every file in the project, not just the currently-edited one as an editor would do. Otherwise, I certainly agree with this list. I bought and started using PyCharm recently, and the more I learn it, the more I like it (despite occasional glitches :)
    – Cyclops
    Commented Aug 18, 2011 at 12:43

The big difference between an IDE and a general text editor is that IDE's understand the programming language you are working with and can autocomplete functions/methods, check for errors like wrong type and incorrect grammar. An IDE also has tools like a compiler integrated so that you can compile and run your program with commands in your IDE.

But I think VIM can do more than a general text editor, maybe you can see it as an IDE in some cases.

  • 2
    +1 for "understanding the language". Most everything else follows from this, I think. Commented Aug 18, 2011 at 12:23
  • yes - my language support implementation is both syntactically and semantically aware.
    – sylvanaar
    Commented Aug 18, 2011 at 12:33

Refactoring Tools

The only reason why I'm not using my favorite general purpose text editor for coding. Because if you need to macro-up common code refactorings in your favorite general purpose then you might as well be using an IDE that has these tools installed.

Least to say that most IDE's have the useful functionality that emacs has, it's just buried down in some arbitrary key stroke combination.


Nice to have features of an IDE that is not found in text editor: 1. Intellisense (auto complete & suggestions)

  1. Integration with compiler

  2. Integration with debug system

  3. Integration with version control

  4. Integration with database system

  5. On-the-fly syntax checking and help

  6. Syntax coloring

  7. Handles projects not only files of code

  8. Finds where a method is used and draws a chart (not found in most IDEs to-date)

  9. Registers components (depending on your language)

  10. Integration with GUI Editor(s)

  11. Bookmarks code segments

  12. Source safety and sharing across developers

  13. Project restore to previous versions

  14. Multiple project configurations (test, development, production)

  15. The IDE features can be configured

  16. Intelligent source code compare

  17. Automatic renaming of vars, methods, etc.

I don't think creating a new IDE is useful.

  • I should have mentioned it is a plugin to an existing IDE. I'll edit my question.
    – sylvanaar
    Commented Aug 18, 2011 at 12:29

I would love to have an IDE with a fully customizable editor like Emacs. I don't want to write plugins and then restart the IDE to test them. I want to define actions in a scripting language (e.g python, ruby) and be able to use them immediately, bind them to key sequences, etc. The language should be able to manipulate the entire workspace.


3 things always decide whether or not I will use a particular IDE:

  • Autocomplete
  • A visual GUI builder
  • Data tools for some sort of integrated ORM

I generally use the IDE that has the most of these features, or that does them best. These are the three things that tend to increase produductivity the most by reducing boilerplate coding (GUI and DAL) and by reducing think time (autocomplete allows me to skip a lot of API fumbling).

  • I would have ranked refactoring tools much higher than GUI builders. Not all programs have GUIs, but they could all be the subject of refactoring at some point. Commented Aug 18, 2011 at 13:50
  • @FrustratedWithFormsDesigner - To each his own I guess. I rarely use refactoring tools. I do not really have anything against them; I just often prefer to refactor by hand to ensure I do not break anything.
    – user3792
    Commented Aug 18, 2011 at 13:55
  • I used to do that too, I guess I was mistrustful of such tools at first. And it's true that if they're poorly implemented, it's often better to refactor by hand, but when these tools are done right they are AMAZING! Commented Aug 18, 2011 at 13:58
  • ORM: Object Relational Mapping... DAL...? What is DAL?
    – eri0o
    Commented Sep 17, 2023 at 13:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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