This discussion is going off-topic, yet I have to answer to that.
xterm wroteLet's just get one thing out of the way. Out of the box, Vi doesn't have anything that i'll be listing below *out of the box* and this is very important. Being able to operate a terminal within the vicinity of the Vi screen gives you decent flexibility.
What does it mean
out of the box? VI was made to be customized! The base application you get is minimal, but it is done on purpouse so that it could be personnalized. Don't forget that Vi is made to edit conf files, so how hard should it be to edit a vimrc file?
Vi gives me all I need from a text editor and much more:
* Multiple files at the same time through both tabbing and split screens.
* Syntax highlighting for every language possible.
* Auto-completion for every language.
* Not only can I call compilers, debuggers, interpreters, ... but also any command from the command line (copy, move, ...)
* File manager to manage the project tree.
* Huge increase in productivty and typing speed, since hands never leave the keyboard (not even the arrows).
That's all available within visual studio.
Last time I checked, visual studio didn't allow split screen feature. Then again it was 5 years ago.
My last point is a reference to VI-mode. I read about an extension called ViEmu that emulates this mode for Visual Studio, Outlook, SQL and other Microsoft products. Of course, it isn't free.
I don't want my editor to become my mail or RSS, but if i wanted to, yes i could get add-ins that would make that happen (or implement my own).
I mentioned RSS and mail as examples of emacs scripting capacities. I haven't learned to use it yet, and scripting is done in LISP (a language I do not know), but the raw power you get from an editor is impressive.
1GB today is still very reasonable memory. I bought my laptop 4 years ago, it shouldn't be considered "outdated". And 350Mb is huge, especially considering the 500+ needed for Vista for example.
350mb for an enterprise level application is quite low, as an average, intermediate or component developer you'll never go this high. 1GB is hardly reasonable, again you're handicapping yourself, you cannot just assume that its enough in this day and age just to prove that your installation runs quite fine on it. Heck you can run a stripped out win7 installation on 512mb or less, but you'd be handicapping yourself as well.
I still maintain that a 4 year-old computer shoudln't be considered outdated. I cannot afford a new computer right now, nor should I. I am not
limiting myself, instead I am learning not to be dependant of a corporation that wants to make me spend money. In the open source community, it is very important for us that anyone has access to the technologies, from the poor kids in Africa (look at projects like Ubuntu or
OLPC) to big corporations. There are
lots of Pentium IV running out there with less than 256Mb. Owners cannot buy upgrades. Should they be left out?
Don't consider that the only thing up-to-date is what is available in stores. A computer is made to last at least for 10 years. They are expensive enough (I paid mine 1500$+ at the time). So yeah, 1GB of RAM (DDR) in 2010 is not outdated, and should be considered as middle-range. (Of course Microsoft do not care about that, and don't even spend time correctly optimizing requirements of their products. As long as people are dependant from them,, why should they?)
That's fine, compiling from the command line is in no way a Vi feature (Yes i understand your point about 'teaches you' but i just wanted to make it clear for the rest).
You are right, my point is not inherent to Vim. It is more a 'text editor' vs 'IDE' argument.
So tell me What is the advantage of an IDE again, if not the memory hog, huge license fee and platform-dependancy?
Programming productivity in terms of refactoring, unit testing tools, code generation, package and object browsers, built-in debugging, tracing, packaging, publishing, version control, product integration, graphical designers. I can go on and on.
Graphical designers are a phobia of mine but I have to admit they're great tools for building GUIs. I am spending time learning Gtk right now, and even though I am far from being proficient, I still won't use code generators. I do not trust their code. However generating generic functions like constructors, accessors or destructors is a nice feature.
As for version control, I prefer to use it from the command line. I stopped using svn and replaced it with git. I had to go through a whole learning process. Once again, the command line made it so much easier. And it is much easier to do advanced tasks (like branch merging) when you're not looking for the right button in the right menu.
I say if you are willing to learn either Vi or emacs, you'd never go back to IDEs.
xterm, I remember you saying that you used Vi exclusively for a while, I'd be interested to hear the reasons why you switched back.
And it remains the one and only editor i use when i'm either managing the linux based applications/web applications we develop. I've been using it for so long i can't even remember the date, heck it's even back when moving around the view mode was done using H, J, K and L.
Vi is an incredibly powerful editor there's no doubt about it. You can spend a lifetime working on Vi and everyday you'd learn a new shortcut. It works wonders for shell scripting, C/C++, Python, Ruby and any other scripting/dynamic languages.
But when it comes to large scale applications, you *need* an IDE, as much as i hate to say it because i never promote them.
P.S.: You can get the express edition of Visual Studio for free.
Moving around with H, J, K and L, is the reason I use vim. As your fingers remain in the same position all the time, the speed of your typing increases dramatically over long periods of time.
Another thing I love about vim (and Visual Studio is famously bad at) is the handling of regular expressions.
Yes, IDEs could be beneficial for large scale projects. You kinda convinced me. However, we are maintaining a website at work that includes over 100 000 lines of code. We are 6 developers on the team. Each of us is free to use the editor/IDE they want. As long as our versionning system works, there's no problem at all in that.
(PS the project manager uses jEdit as an editor, a couple of guys use Netbeans for the PHP debugger, a guy uses gedit a graphical text editor, ... it's nice to have variety).
Anyway, as usual xterm thanks for your input. I think we are getting too much off-topic. If you have anything more to add, maybe we should open a new thread in the Programming forum.
Cheerios.
rahmu