9 ms·
Well deserved. I've been using IntelliJ IDEA (Java) for the past four years. Before that, I used Emacs coding C++. I was pretty amazed at how much more producti
by henrik_w 14y ago
Well deserved. I've been using IntelliJ IDEA (Java) for the past four years. Before that, I used Emacs coding C++. I was pretty amazed at how much more productive I became using an IDE (just for the mechanics of coding, like auto-completion, jump to suource etc - not counting any differences between C++ and Java). I still like Emacs a lot, but using a good IDE just took coding to the next level. More details: http://henrikwarne.com/2012/06/17/programmer-productivity-emacs-versus-intellij-idea/ http://henrikwarne.com/2012/06/17/programmer-productivity-em...
- mgkimsal 14y agoSame here, but a vim guy. "Jump to source" alone makes an IDE worthwhile, and it still surprises me to this day that people eschew IDEs because of 'bloat', and instead prefer adding dozens of brittle extensions to vim/emacs/sublime/whatever to make up for what's missing. I understand speed - I use vim for quick edits/changes - but simply being able to jump to the source of a function you're looking at is huge (yes I know about ctags for vim - doesn't even feel like it comes close). EDIT: One of the other huge benefits of IDEs in general is working with and studying code that you didn't write yourself. All the sublime and textmate fans I know are almost always just writing their own code from scratch, or using a small subset of well-known plugins for popular framework X. Taking code written by someone you didn't know, who perhaps didn't even know language foo very well, is a pain that is lessened somewhat by using a capable IDE vs a plain text editor.
- freerobby 14y agoI'm sure you've seen it, but just to be sure - there's an IntelliJ plugin that gives you vim key bindings: http://plugins.jetbrains.com/plugin/?id=164 http://plugins.jetbrains.com/plugin/?id=164
- mmahemoff 14y agoIt's a good effort, but suffers from the usual problems of replicating Vim, ie lots of subtle changes and lots of missing functionality. Both of which wreak havoc with one's muscle memory. Also, I found it really slowed things down (in RubyMine), sometimes updating just 1-2 characters a second in a big project (on a modern MBP). I've gone back and forth, but generally I prefer Vim with Janus distro, albeit I miss a lot of cool things from IDEA.
- digerata 14y agoDefine Modern. I just upgraded from a "modern" macbook pro (2008, aftermarket SSD) to a "modern" retina macbook pro that is maxed out. IntelliJ and RubyMine fly like the wind on this new machine. The old one was painful to use IntelliJ but you could live with RubyMine performance.
- mmahemoff 14y agoHighest-spec 2011 with SSD. RubyMine was okay, but RubyMine+IntelliVim on a large file would often be painfully slow.
- mgkimsal 14y agohave seen it, but when I'm in intellij, I'm in intellij. when in vim, i'm in vim - my brain shifts enough where I don't really need the vim bindings.
- weaksauce 14y agoThe major pain point with that plugin for me is the fact that you can't remap jj to escape in insert mode. Multi character codes will wait until a chord is found type of approach instead of a timeout one.
- aerique 14y agoDepending on the language used Emacs and Vim provide these features as well and not just as dozens of brittle extensions. Emacs + Slime for Common Lisp programming is often held up as an example of this. It provides all the features you mentioned + more. Slime (or rather Swank and alternatives that have been made) has been used for other languages as well: Clojure, JavaScript, Haskell, Ruby, R. If you work in more than one language then Emacs and Vim quickly start to look enticing since most IDEs either don't support them or don't support them well. That said, I have no opinion on IntelliJ. I have never used it, but it sure sounds like I should try it out sometime. The last IDE I used was XCode one year ago and Eclipse a couple of years ago and they didn't make me very happy. edit: My point is, people often hold up both Emacs and Vim as "just text editors" but coupled with a Unix environment and the right programming languages (not Java) they provide a lot of features that IDEs do. Besides that one can use these editors for a lot of other editing tasks like writing manuscripts, e-mail, blogs, etc. giving you the same powerful editing functionality for those tasks.
- mgkimsal 14y agoI was a big netbeans fan for a couple years precisely because it supported multiple languages decently. I've done some work in Eclipse (raw Eclipse, Aptana and Zend Studio), but tend to prefer Jetbrains products for most situations. Doing Grails work, Intellij was the best purchase I ever made - it saved me countless hours in tracing through and learning code I didn't write.
- vineet 14y agoSo, basically to take advantage of Emacs/Vi you need to just restrict yourself to Lisp? I would hands down pick the right language for a project and then the editor. (I am actually a Vi guy, but switch to an IDE for any project that involves more than just me)
- aerique 14y agoNo, Lisp was just an example.
- coldtea 14y ago
- meddlepal 14y agoThe "bloat" argument has been pretty weak for the last 4 or 5 years now. I can run IDEA, Eclipse and a bunch of other tools in parallel with large sizable code bases and my laptop with 8GB of RAM barely slows down. It all runs even better on beefier desktops. If it were to start slowing down I would just add some more RAM which is cheap as anything these days, I used to adore Emacs in college, but since I've actually had to work on large projects I would never switch back to using except for when I need to bang out a python or shell script.
- jasonlotito 14y ago> it still surprises me to this day that people eschew IDEs because of 'bloat' They've found a good tool, emacs or vim, and want to use it everywhere. They've invested time and effort into being productive with it. Moving to an IDE requires time and effort as well. IntelliJ and the family are deceptively simple. You can start editing right away, but to enjoy the full power, you need to learn it. Just like vim or emacs.
- lucian1900 14y agoAlmost all popular IDEs are extremely slow. Intellij is unusable on my 8 core 8 GB ram laptop.
- hhariri 14y agoI can tell you that that's not normal. Have you ever got in touch with support?
- mgkimsal 14y agodefinitions of 'unusable' vary greatly. 16gb 2ghz quadcore 2011 mbp with 256g SSD and intellij is usable about 95% of the time - I get slow downs and hangs, but their OS-level stuff - I get the same stuff hangs in macvim, textwrangler, eclipse, pixelfari and other apps.
- lucian1900 14y agoUnusable as it very often freezes for about 5-60secs. Only IDEs written in Java appear to suffer from this, and that's most of them. I want a good IDE, but none of them are good.
- nevster 14y agoHave you tried editing the the bin/idea.exe.vmoptions file to set -Xmx higher?
- lucian1900 14y agoI've just upgraded to Pycharm 2.7, it's a lot better. It also looks a lot less horrible. However, there is still an unacceptable delay between typing and feedback, around 300ms. Performance was clearly not a priority for them.
- chetanahuja 14y agoI'm a bit confused about "Jump to source" being such a big deal for a vim user. What exactly is wrong with tags or cscope ? No I'm not being facetious, I really want to know what extra functionality you get with your IDE that you were not getting with proper use of tags/cscope ? I've used various versions of emacs over the years for most of my programming (mostly C/C++ with some sprinkling of python and java). I've recently had to use Eclipse for Android dev. I agree that it'd be almost impossible to integrate the entire GUI dev framework of Eclipse Android environment in emacs (not to mention continuous compiles and other java-firic features) and that's the reason I use Eclipse for Android. But "Jump to Source" ? Emacs is a far better and faster experience for me when it comes to trolling around in big, unfamiliar code-bases. The small subtle lags with eclipse (it's not as bad now with my monster new dev machine with 16G of ram) still irritate me. And the Emacs keybindings are almost there but not quite.. which is another big reason I've resisted IDE's. They're just slower for actual editing of code. Always. Without fail.
- to3m 14y agoI haven't used cscope. Perhaps it's amazing, but the home page suggests that it works for C++ only because it's a bit slack about its parsing of C. So I'm guessing not. Regarding ctags, it's useful enough, but it doesn't do a great job of things like jumping to the definition of the "flags" part of "p->flags", if you've got lots of structs that have a "flags" in them. Same goes for member functions. It's absolutely no fun trying to find out what something is, and just getting a list of every single thing of that name in your program. Thanks ctags... but I actually know how to use grep. And if I used grep, I'd get a callers list too. I found ctags workable, but overall disappointing.
- green7ea 14y agoClang should change this pretty soon. They make code analyses much easier (they let you use their parsed data) and enable things like code highlighting, code completion and jump to declaration. A good use of this for vim is YouCompleteMe (https://github.com/Valloric/YouCompleteMe https://github.com/Valloric/YouCompleteMe).
- tokipin 14y agoone reason i really love Visual Studio is VsVim[1], which is the best Vim emulation I've seen in any IDE. i don't have to choose between convenience and superspeed like i used to in the past... that was really annoying [1] http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329 http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-...
- martinced 14y agoI 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.
- henrik_w 14y agoYou 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.
- melling 14y agoIDEA is an incredible development environment. I still use Emacs for some things (e.g. Perl). The Live Edit plugin is really slick (same as http://LiveReload.com http://LiveReload.com for Sublime users) http://blog.jetbrains.com/webide/2012/08/liveedit-plugin-features-in-detail/ http://blog.jetbrains.com/webide/2012/08/liveedit-plugin-fea... I think Emacs will get a big resurgence if they ever get a better Lisp (aka Guile) integrated so they can get better performance. After all, Emacs is just a big Lisp interpreter. In theory, Emacs can do anything.