Hi everyone --
Let me give some background to properly contextualise this question:
I am the type of programmer that has been doing UNIX (generally Linux, also some commercial varieties) since 5th grade or so, and consequently am very command-line oriented in my habits. Did mostly C growing up, and a fair bit of Perl later.
So, obviously, when I was faced with the real-world need to do some Java, I approached it with my usual arsenal of half a dozen, uh, terminals and vi (VIM) sessions. Eventually I broke down and started using 'ant' for building instead of Makefiles, but apart from that, this approach has served me well.
I wouldn't mind a more Java-aware editor, though; something that can save me a little time on the tedious task of having to switch in and out of editor windows without having a holistic view of my source tree, as well as provide cross-referencing of symbols and API-specific autocomplete and perhaps online javadoc summaries built right into the editor. I spend a lot of time juggling all these editors and 15 tabs in my browser.
I've looked at Eclipse and NetBeans, but, they're just way too bloated and complicated. It would take me an enormous amount of time to figure out how to use them correctly and do things the Eclipse Way or NetBeans Way, and I don't think it'd be worth the flexibility I'd be giving up. Plus, they do far, far more internally than I really need, and I'd have to upgrade half my desktop machines just to stand a hope of realistically running them. They introduce gigantic piles of unnecessary metadata and internal abstractions I don't really want to deal with for my relatively simple, terse code (as much as Java can be).
On top of that, much of my development is server-side and, although I can mount the code tree with SSHFS or NFS or whatnot, local building and testing is essentially useless.
So, I was wondering if anyone had any suggestions for a decent editor for someone in this predicament. I'm imagining something like an "IDE lite," or perhaps a really glorified take on UltraEdit (but not for Windows). I don't really know. Something that can get me the aspects of Eclipse that make editing Java code easier without all of the metadata, complicated build processes, user interface bulk, or sheer scope. Some say IntelliJ is the way to go here -- is it?
Thanks very much in advance, guys!
Eclipse in particular does nothing like what you claim ("unnecessary metadata and internal abstractions") except one or two files in the root of your project's directory tree. Upgrading your machines to support Eclipse means at worst spending $20 to buy 2Gb more memory, which doesn't seem like a lot to me.
All of the requirements you mention (plus a lot more) are available today in Eclipse. And you don't want Eclipse because of a few poorly defended misconceptions that you are clinging to. Go back and give this a second look and get someone to show you the ropes with it over lunch. You will never look back.
I have personally converted two people like you: die-hard emacs users who will never use an IDE because you tried them ten years ago and they sucked then. Neither of these two fellows would ever go back to that world now that they know what they're doing.
You won't regret the few minutes it takes to learn basics.