I used IntelliJ IDEA (Java) for the past 10 years or so (since IntelliJ IDEA version 4). I was pretty amazed at how much more productive I became using Emacs to do Clojure development (fast iteration cycles, instant REPL, paredit, hs-minor-mode, etc.).
Using an IDE took your coding to a next level just as design patterns took your coding to a next level because, by using Java (or C#), you need to automate and repeat tasks that should never have been mandatory to repeat in the first place.
To me nothing beats a programmable "text editor".
I don't doubt you consider yourself "productive". However Rich Hickey created Clojure using Emacs and then, using Clojure, he created Datomic. That's certainly something I'd call productive. So there's not one true way or true light to see to "take coding to next level".
It's good for you if you like your Java/C+ + ORM ([N]Hibernate) + XML + SQL hell. I don't like that particular hell which I know all too well and, thankfully, many programmers don't like either and are, productively, creating a better world for us programmers.
I still did buy IntelliJ IDEA version 12 during their doosmday promotion because at 55 Euros or so I figured out it was going to be handy the day I'll be forced to work on some pathetic Java / Hibernate / XML / SQL hell codebase but, thankfully, I still didn't need to install it (it's only two months but still...).
Meanwhile Emacs / elisp / Clojure are getting their daily dose of love.
Your Mileage May Vary but I honestly think you don't realize that most of the tasks IntelliJ allows you to automate are tasks which shouldn't exist in the first place.
P.S: it's possible to configure vi(m) and Emacs using eclim / emacs-eclim so that you can use, right from vim/emacs many of the features of Eclipse (like auto-completion). This is something with may see more in the future and that we may see working with IntelliJ too.
>I don't doubt you consider yourself "productive". However Rich Hickey created Clojure using Emacs and then, using Clojure, he created Datomic. That's certainly something I'd call productive..
So I guess the information below will rock your world and change your editor of preference:
"I developed Clojure in IntelliJ and still do (the Java part)."
My only regret is that I could only up vote you +1
IntelliJ is a productive tool, and it is interesting that Rich sometimes uses it. BTW, I do about75% of my Clojure development work in IntelliJ and about 25% with Emacs and nRepl. I find IntelliJ just a little more productive, but both are great working environments.
This is just about my mix for Scala. I have keybindings in Intellij fairly close to what I use in Emacs, and both will update when files are edited. I drop into Emacs when I have heavy editing, need to bounce around multiple buffers, or trying things out in the REPL.
I also work in a number of non-JVM languages in Emacs, and have used it for quite a long time. For JVM work, IntelliJ is, as you say, 'a little more productive'.
You seem to jump to a lot of conclusions. My set-up for Java is pretty light-weight: nothing is generated for me by IntelliJ (except for if I use any of the refactoring tools). We have our own tools for generating ORM code, but that would be the same regardless of editor/IDE.
There are pros and cons with Java, but if that's what the application is written in, then I'd much rather use IntelliJ than Emacs/Vim. The reason is that a lot of the coding is navigating the code base - finding out what the arguments of a method are, or finding out all the usages of a class/method/variable. This is much quicker in IntelliJ than in a generic editor.
Another argument I hear a lot against IDEs in general (although not from you) is that they force you to click the menues a lot. Not true. There are great built-in keyboard short-cuts, and of course you can create your own, so there is not a lot of reasons to touch the mouse.
I'm a Lisp programmer, so maybe the navigation experience is different for Java - but the navigation experience in Emacs is just great for me. Emacs is not the generic editor, but reprogrammed with special modes (for Common Lisp this is SLIME) to provide all this information: arguments, who calls / uses, etc. Emacs connects to a running Common Lisp and provides live queries into the software under development. That's pretty cool.
Using an IDE took your coding to a next level just as design patterns took your coding to a next level because, by using Java (or C#), you need to automate and repeat tasks that should never have been mandatory to repeat in the first place.
To me nothing beats a programmable "text editor".
I don't doubt you consider yourself "productive". However Rich Hickey created Clojure using Emacs and then, using Clojure, he created Datomic. That's certainly something I'd call productive. So there's not one true way or true light to see to "take coding to next level".
It's good for you if you like your Java/C+ + ORM ([N]Hibernate) + XML + SQL hell. I don't like that particular hell which I know all too well and, thankfully, many programmers don't like either and are, productively, creating a better world for us programmers.
I still did buy IntelliJ IDEA version 12 during their doosmday promotion because at 55 Euros or so I figured out it was going to be handy the day I'll be forced to work on some pathetic Java / Hibernate / XML / SQL hell codebase but, thankfully, I still didn't need to install it (it's only two months but still...).
Meanwhile Emacs / elisp / Clojure are getting their daily dose of love.
Your Mileage May Vary but I honestly think you don't realize that most of the tasks IntelliJ allows you to automate are tasks which shouldn't exist in the first place.
P.S: it's possible to configure vi(m) and Emacs using eclim / emacs-eclim so that you can use, right from vim/emacs many of the features of Eclipse (like auto-completion). This is something with may see more in the future and that we may see working with IntelliJ too.