Have the days of writing code in VIM ended? Is Emacs ready to be put to bed? Are we destined to spend the rest of our development lives heads-down in a bloated and expensive Integrated Development Environment (IDE)?
IMHO, this argument is very much a Linux vs Windows style argument.
To those long term VIM and Emacs users, there’s no reason to go an IDE like Visual Studio. Both of those editors are customisable, flexible and support a plethora of plugins and utilies. They even support a scripting language which lets you add your own special functionality. While it may not be supported “out of the box”, you can have features such as intellisense, debugging support and source code browsing. They both work on lots of platforms - actually, they’re usually installed by default on quite a few Linux distributions. They also cost you nothing, zip, nada, nought and stuff all. I this this last point tends to be a winner - especially to those in the open-source and free software camps. The power of these applications is not to be underestimated - there’s little they can’t do or can’t be made to do.
To those long term IDE junkies who have lived their lives in Visual Studio and/or Borland IDE, the comfort of the tool coverage in a single window is something that can’t be missed. The IDEs contain a plethora of information and features - source browsing, project support, generation of makefiles, in-built debugging with call-stack and memory views, intellisense, SCM integration, etc. Some even make the tea!
Well, not really.
So who wins? What’s the point of going for one instead of the other? Of course, my list of editors and IDEs is far from exhaustive, but the ones mentioned are the ones that most people will know about and have an opinion on (so you’re by no means constrained to this pitiful list! :)).
One of the things that stands against the likes of VIM and Emacs is that they’re both very tough to learn. Initially, the interface and shortcuts are very hard to grasp, and it feels like it takes an ice-age to get anything done. Time is something that is required to fully realise the power of these tools. IDEs tend to be a lot more intuitive (note the word tend), and people are generally able to get up to speed with using them in a fairly short period of time.
Personally, I can see a lot of value in both. I try to do development work on a variety of platforms (my current targets are Windows XP x64 / x86 and Gentoo Linux AMD64), which doesn’t make an IDE such as Visual Studio an option for me despite the fact that it does make debugging applications an absolute breeze. I (try to) use VIM as much as I can but I find myself getting frustrated because I’m still not yet at that point where I don’t have to think about the shortcuts before I use them. I also find that since I’ve had to use Visual Studio so often in my day job as a contractor that I’m very used to this IDE as a development tool, which again makes me frustrated when dealing with VIM as I know I’d be able to use Visual Studio a lot quicker.
This isn’t putting me off though. I know from dealing with so many different people at work that VIM really can give you a huge productivity boost. This reason alone is enough to make me continue trying to learn it, although I’m sure there are many others. I like the idea that I can have a single editor that I’m familiar with that works on any development platform that I might find myself using - and not just a single editor, but one that has a great deal of power (as opposed to the likes of nano).
So where am I goingn with this rant? The answer is simple - where is the editor that encompasses all these features? Why am I yet to find an IDE with the text-editing capabilities of VIM? Yes, I’m aware of some psuedo-plugins that make VIM work in Visual studio, but it just doesn’t nail it. We need a cross-platform IDE that contains the power, speed, and text-editing capabilities of VIM, and the ease of debugging that comes with Visual Studio.
My image of a development studio might seem a little skewed, in fact I can’t really picture in my mind what would make an IDE the perfect IDE. This guy attempted to put his thoughts down on paper on what things should be like in the future, but I’m not sure he’s nailed it.
What I do know is this - we have a long way to go before we get to development tool utopia. VIM and Emacs do lack some of the development ease of Visual Studio with regards to debugging, and on the flip side Visual Studio’s text-editing just bites compared to the power of VIM/Emacs. I hope that someone somewhere somehow manages to bring it all together - as that means I don’t have to do it :)
If any of you have any thoughts or links on the text editors and development environments you use and feel are good, then I’d love to hear about them. Until I find something more worthy, it’ll continue to be VIM and Visual Studio for me :D