Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Do whatever you want. Don't learn it if you feel it's too much effort just for nothing. Learn emacs instead. Or stay in your IDE using a lousy editor. Whatever.

Why do all articles about how wonderful vi is end with condescension?

Anyway: vi -> fast editing. IDE -> fast maintenance. I know which one I'd choose. The text editing features of an IDE is not why people choose to use IDEs (note: of course this helps best if you use a well-supported statically typed language - a Ruby IDE can't be as awesome as a Java IDE).

Also, there could perfectly well be good IDEs with good Vim key binding support. This would be a wonderful mix of two worlds, and finally end this stupid discussion. I believe at least Qt Creator has a half-decent FakeVim mode baked in.



"Why do all articles about how wonderful vi is end with condescension?"

Because one way to get someone over the initial learning hump is to "encourage" them by challenging their manhood. Same principle behind a boot camp sergeant telling every single incoming group that they are the worst bunch of nambypamby girliemen he's ever seen and he's been in this army for 25 years and that he will consider it a personal failure if he doesn't cause each and every one of you to quit in a crying mess. You're supposed to be motivated to try your best in the hope that he'll begrudgingly concede at the end that you didn't suck after all.

It works, but it has the side effect of creating a strong tribal identity among those who pass the bar, an "us" who are good enough to make it and the "them" who didn't. The military deliberately exploits this side effect; I'm less convinced it's a good idea in a programmer context.


My response to this approach has always been the middle finger. If someone can't afford me even the minimal level of respect, I'll leave. My worth is not dependent upon what other people think.


So a 4000 word article that includes character-by-character examples for newbies doesn't count as 'the minimal level of respect'?


That's fine, but ending on a disrespectful tone is generally a bad idea.


I don't see the above quote as particularly disrespectful in context. It's a bit like a friend who has just spent half an hour talking you into going for that new wonderful job, and says 'or you could stay in your crummy current job'.


Basically he's saying: "I think this way of doing things is awesome. Here's how to do it my way. Your way of doing it is crappy compared to mine, but hey it's your choice to continue being a substandard performer."

Even your example is riddled with condescension, with your judgment from on high that your friend's job is "crummy". It's not only disrespectful; it betrays an unsavory vanity on your part.


If your worth is independent of what he thinks or says, why not listen to him and make decisions based on the merits of his argument instead of letting the emotional content throw you off? I'm not saying I'm capable of doing that, just that it's what I'm striving for. :)


I'd still listen to what they have to say, but I'd consider it to be untrustworthy information, as their insult against those who do things differently would tell me that they have a strong enough emotional investment in their decision that they're unable to rationally consider the alternatives.

Either that or they're being manipulative, which is also a big red flag.


Comparing vi to an IDE is like comparing a screwdriver to a fully automated car assembly line... it is completely beside the point and they each have their purpose and downsides.


Screwdriver - quick, cheap, easy to use, intuitive. Can be learned once and carried around with you.

Car assembly line - lots of initial capital, specific to one kind of car, lots of time to learn.

Seems like a valid comparison.


The point is: these comparisons always try to make vi seem like the always better choice INSTEAD of an IDE and this is were I completely disagree. And you make it look just like that with adjusting the comparison in favor of vi, the screwdriver. This is just wrong. Let's see, you could also say:

Screwdriver: specific to only one type of screw, limited to only a couple of similar sizes and all you can do is drive screws in and out or maybe stab someone.

Assembly line: way more complex and needs some setup time but you can do WAY more things with it, way faster, way more efficient once setup, especially on a larger scale. It can drive screws in and out, solder, cut, fold, package etcetcetcetc. Pretty much anything you set it up to.

So, vi is a horrible replacement or alternative to use in the typical huge Java (or what have you) e.g. web app projects where things like auto completion and easily getting from one class to another, built-in compiling, debugging, refactoring, source control etcetcetcetc really start to make your life easier. vi on its own cannot offer you that, not even remotely... then you need a shell and other programs to do all that. And there are no alternatives to most of the tasks an IDE can offer you help with.

vi is definitely nice for editing files especially on a slow line and as a general purpose editor - but it is no replacement for an IDE and the comparison that it is "better than an IDE" might only apply for exactly one task: editing files. IDEs offer you tons of other things. So it is just wrong to compare to two or present one as a replacement for the other.


If I thought an IDE was better for large Java projects than vim, then I'd use an IDE instead of vim for large Java projects. You'll find that many vim users do not use an IDE because they've found it to be more productive for them to use vim + command line instead. In those cases, there is clearly a choice being made about IDE versus vim. If you want to be pedantic about the fact that vim is just a text editor, then just imagine that whenever someone talks about using vim instead of an IDE or compares vim to an IDE, just replace "vim" in your head with "vim + command line". If you do this, you will better understand what they're saying and you won't have to get on the apples-and-oranges soapbox quite so much.


Great article on this very point: "Build an IDE with tmux and vim"--http://alexyoung.org/2011/12/19/build-an-ide-with-tmux-and-v.... The money quote: The difference between this approach and a traditional IDE is this interface adapts around my current task, and is only limited by the thousands of commands and scripting languages that I have installed.


Except then I still don't have any interface builders, out-of-the-box code completion and on the fly compiling/checking for small mistakes, easy navigation through class hierarchies ("click on Classname, function etc..) plus showing me documentation alongside, refactoring tasks, all sorts of useful and some useless wizards etc. and we haven't even talked about more specific things like developing for iOS. So IDE is still ahead in terms of what it has to offer me that not even vi+console or vim+console can. My point stands.


I fully realize the advantages that an IDE has over vim:

http://news.ycombinator.com/item?id=2938995

If your point is that this handful of advantages is a slam dunk, and that it makes IDEs and vim+console incomparable such that whoever does so is making a categorical error, then your point has no legs to stand on.


You belittle clear advantages simply because they do not fit your taste or style while the usefulness and spreading use of IDEs is unquestionable, so this is too much of a personal preferences discussion than anything else, just like all vi vs emacs flames have always been and I find it disappointing that in 2012 this STILL keeps coming up... I thought I had FINALLY left those zealots behind me in the 90s. And I really do not like your tone.

I am more than sufficiently "fluent" in pretty much all common IDEs and in vi(m)+console so that I don't really care which one I am using or have to use neither do I care on which OS... most of the time I end up in a good IDE because for a lot of the tasks I want to do and get paid to do, there are no real alternatives in vim+console, they might be specific though.

The article argued vim's superiority in editing so comparing that to an IDE really are two completely different things. Comparing vim+console to an IDE is always going to be all about personal preferences and which extensions do you use in the one or the other, which tools/options/tasks are available and which aren't - but ultimately they cater to two usually very different crowds: the console-lovers and the oh-shiny-clicky crowd and you will find it very difficult to even remotely describe an advantage of the one to a member of the other crowd... and that's where the comparison doesn't add up and feels to me like apples-oranges.


Comparing vim+console to an IDE is always going to be all about personal preferences

That's been my point from the beginning. Tradeoffs between personal preferences is a hallmark of apples-apples comparisons. I mean apples-apples in the sense that both toolsets are used to accomplish the same exact things. I agree that there are the two general types of people that you describe, but I disagree that they are so irreconciliable that they shouldn't even attempt to discuss the tradeoffs. It is a perfectly reasonable discussion to have.


Solution: Use an IDE plugin for vi-style bindings.

Dudes on assembly lines use screwdrivers.


You do realize, the article is written by a guy who sells a vim emulator plugin for Visual Studio?

(It's really good, too, I use it at work.)


And comparing vi and IDE's with Emacs is like comparing car assembling tools with self cloning cars.


I mostly use Eclipse with the Emacs+ plugin for code development these days. Emacs+ provides an almost flawless Emacs experience, except for that fact that Eclipse is kind of a pain in the butt and often sluggish at manipulating text. It's sluggishness does interfere with my thought processes. Eclipse is very helpful for some things, but it would have been oh so much nicer if the features of Eclipse had been incorporated into something with the fluidity of Emacs. It's too bad that Lucid went out of business.


Oh! I read over the line that says that the author is actually developing a Visual Studio plugin to close exactly this gap.

That's cool. Also puts what I took for condescension in a different light.

Anyone used it? I might consider learning vi bindings decently if I can keep getting all the IDE goodness.


I use cscope as my backend for vim, there are other ways to get your IDE going. Adding a vim emulator would not be as good as just using vim, imho. http://sourceforge.net/projects/vimplugin/ is the vim plugin for Eclipse if you can't live without Eclipse. I can't live without vim, myself ;)


It is absolutely awesome!

A few finer points are missing, but overall I can wholeheartedly recommend it. (missing: put last deletes in number registers)

There is also the free VsVim, though.


I've tried his free trial for ms word and it was pretty good.


vim key bindings are nothing. If you think vim == keybindings you know nothing about vim.

Saying that "editor/IDE with vim keybindings" is as good as vim. Is like saying a Honda Civic painted red is as good as a Ferrari f70.




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

Search: