I use Idea for Scala and Emacs for everything else. I prefer Emacs for the following reasons:<p>* I find Idea to be very cumbersome. I can perform many powerful transformations on text in Emacs with just a few keystrokes. Idea respects virtually none of them, even in Emacs mode. I often have to copy/paste from Idea into Emacs, make changes, then copy/paste back into Idea.<p>* Idea is hopelessly mouse driven. Most of the functionality can't be triggered via the keyboard.<p>* Emacs has a much smaller system footprint. Idea usually eats up a few gigs of RAM. I understand that it's trying to do a lot of stuff to help out, but I feel like it really needs to be optimized.<p>* I can mix and match minor modes. I don't usually care about spellchecking my code, but it's a few keystrokes away in any given buffer. In Idea I'm always getting warnings about misspellings, even though I don't care. I have a minor mode for line wrapping, showing whitespace, finding stop-points mid-word in camel-case/snake-case text, and innumerable other things. I can turn them on globally, or in a single buffer.<p>* Macros are wonderful in Emacs. They can do anything I can do with the keyboard, which is everything. I can even have a macro that uses Magit to find changed files in my project, find each occurrence of a given regex in those changed files, copy each of the containing lines into an Org mode document, and prettily format them. It takes about 20 seconds to build that macro.<p>* Emacs has thousands and thousands of great extensions. Idea has a fair number, but not nearly as many.<p>* Many of the languages I care about (Haskell, Idris, Agda, etc.) are either supported better in Emacs, or are ONLY supported in Emacs. LiquidHaskell is amazing, but I don't believe there's any support in Idea.<p>* I don't generally care about the sorts of IDE things that Idea does. Intelligent autocomplete doesn't appeal to me. Many languages (like Ruby, JaveScript, and Python) make it literally impossible to intelligently autocomplete with 100% accuracy. Much like with documentation, I'd prefer not have intelligent autocomplete at all rather than lying intelligent autocomplete.<p>* I can embed a terminal as a buffer. I know Idea has a terminal, but it treats it as a special window, and I can only have one without a terminal multiplexer. In Emacs it's just a major mode, so I can have as many as I want, and I can treat them like any other buffer. I can even use my familiar Emacs commands and minor modes on them.<p>That's a lot of bad stuff, but one thing that Idea gets right is that getting set up for JVM languages is easier. I keep meaning to get around to setting up proper Scala support in Emacs, but I never seem to find the couple of hours it would take. Idea has reasonable support for it out of the box.