A lot depends on the language,  for the most part if it is statically type or not.<p>In Java,  for instance,  an IDE can do useful things easily because of static typing.  It knows what type is expected in what situation,  so it can do a good job of autocomplete,  automated refactoring, etc.<p>Now there has been a lot of work on brilliant compilers for dynamically typed languages that can infer types and produce very fast output code,  and in theory some of that could be applied to IDEs,  but it has not really happened yet.<p>Often an &quot;IDE&quot; for a dynamic language turns out to be syntax highlighting,  a visual debugger that works sometimes,  and a button to press to restart your web server.  If that is what you run into,  particularly on Linux where any distro is going to put some deliberate errors in the GUI such as making the scrollbars weird,  you are going to think an IDE a big waste of time.  For instance,  Eclipse almost works for Java (use IntelliJ!),  but all of the Eclipse plugins for other languages are awful.<p>The exception that proves the rule is LISP,  for which all kinds of smart editors have existed for a long time -- however I did a raft of work lately with Clojure and Light Table and I was unimpressed.  I thought about trying emacs,  but I switched from emacs to vi long ago and don&#x27;t really want to go back.