Hacker News new | past | comments | ask | show | jobs | submit login

Same 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.




Depending 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.


>Depending on the language used Emacs and Vim provide these features as well and not just as dozens of brittle extensions.

People saying this have never really spend much time with a modern IDE.

It's like having Vim newbies saying it's too difficult and they prefer Pico, only in this case it's the IDE that's the more advanced.


Ok, tell me which modern IDE I should spent some time with. Is IntelliJ IDEA mentioned here good enough?

I'm working on a personal project in my spare time which I can use it on. (Except the project is using Common Lisp so it might not be a good match.)

I forgot to mention in my original post that I've also spent time with Unity3D recently although for some reason I didn't think of it when thinking of IDEs I had used in the past.


I use emacs and intellij a lot. Let's compare them based on ruby, which they both "support". Out of the box RubyMine (intellij's ruby IDE) works extremely well, especially if you're doing rails projects. Again, this is out of the box with no work on my part.

Emacs out of the box (install ruby-mode) is not even close to RubyMine. Now, if I spend many hours, and I value my time a great deal, I can get emacs kinda close to the features of intellij.

Frankly, I'd rather pay $60/year than spend many hours trying to get emacs close to as good as RubyMine.


IntelliJ IDEA is very good for Java, and good also for other JVM languages. But how good it is depends, both on the effort put in by the IDE developers and characteristics of the programming language in question (how well operations in the IDE are supported by the typing characteristics of the language etc)

When in Java, there is a mishmash of supporting file types, and it integrates them very well compared to its competitors - jump between .java, .jsp, various .xml for Spring, Hibernate, tag libs, etc etc. If you are "just" programming in a programming language (which is a lost utopia in for J*EE developers), much of this functionality is not of much benefit to you, but you might still find the IDE valuable.


>Ok, tell me which modern IDE I should spent some time with. Is IntelliJ IDEA mentioned here good enough?

Yes, it's quite good. Visual Studio is also very good in some aspects. And you can also get a lot of mileage out of Eclipse. Also try some Smalltalk environment, you'd be surprised.

The thing is, there are things missing from Vim/Emacs that are not easily added as ad-hoc plugins. Not merely this or that feature: what is mostly missing is a coherence in supporting a specific language.


Visual Studio is also very good in some aspects

And once you get ReSharper, also from JetBrains, Visual Studio becomes quite good, too :)


Anyone I know that has ever used ReSharper will struggle to work without it. ReSharper is one of the best tools I've ever used, and it makes writing C# a joy.


I 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.


So, 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)


No, Lisp was just an example.


The "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.


I'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.


I 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.


the home page suggests that it works for C++...

Are you referring to this line:

"The fuzzy parser supports C, but is flexible enough to be useful for C++ and Java"

I think you might be misinterpreting the wording there. It's called "c"scope because it was initially written for C and C only. The line above is suggesting that it also has support for C++ and Java (because it has a "fuzzy" parser... whatever that means).


Clang 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).


Yes. Expect an entire cohort of people who previously scoffed at the value of such things to start embracing it with both hands! (And rightly so, because this stuff is just super useful, and it can be done so much better then ctags, or, god help us more, grep.)

May clang cause people to expect more from their tools.


I'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


It'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.


Define 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.


Highest-spec 2011 with SSD. RubyMine was okay, but RubyMine+IntelliVim on a large file would often be painfully slow.


The 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.


have 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.


> 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.


one 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-...


Almost all popular IDEs are extremely slow. Intellij is unusable on my 8 core 8 GB ram laptop.


I can tell you that that's not normal. Have you ever got in touch with support?


I'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.


definitions 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.


Unusable 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.


Have you tried editing the the bin/idea.exe.vmoptions file to set -Xmx higher?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: