This question was asked a while ago on stackoverflow.com, the programming website built on the same engine that powers askubuntu.com.
The accepted answer to the question
What [C++] IDE do you propose (given your
experiences), and why?
was
Actually, I recently made the switch
from Visual Studio (years of
experience there) to Linux and the
first thing I did was try to find a
reasonable IDE.
And then I noticed that this simply
isn't how you work there*, and I threw
everything out, spent a few days
reading manuals, set up my shell
(bash), set up a GVIM environment,
learned the GCC/binutils toolchain,
make and gdb and lived happily ever
after.
There are certainly disadvantages but
I am sure that I work much more
productive since making the switch.
*) It really isn't! And that's not an anachronism either because the
toolchain described above is
incredibly mature and powerful. Any
IDE has to replicate hundreds of
unique features to get anywhere near
the power of these tools that have
been honed to the point of perfection
for decades. The learning curve might
be quite steep, but much less so than
I expected.
As a new C++ developer who has tried out various IDEs on both Linux and Windows, I wholeheartedly agree with this answer. As well as the points made in the answer given above, I'll add a few of my own here.
While IDEs are designed to make programming easier, that isn't necessarily a good thing. This may sound rather outlandish and somewhat pretentious, but programming is an art, an act of creation, and like any other art form, you can't create a masterpiece unless you fully understand the medium, and IDEs hide too much of the underbelly of programming from the programmer. If you want to understand programming, then you're best to 'get back to basics', so to speak. One guiding principle that many industrial programmers use with regard to tools is start with the basic tools and only move on to more complex ones when you feel you've outgrown those one.
Another reason I don't use an IDE is I like to use the same development environment for all my programming practices, including C/C++, C#, Python, LaTeX, HTML/CSS, Javascript, PHP, etc, and by using the basic but ubiquitous text editor, I can jump between all of these without having to figure out what all the buttons do.
Personally, I use Gedit whose functionality I extend with some of the plugins.
vimwas complicated to learn, and that it would lack some features that GUI IDEs do have, but once I learned about some of the great tools thatvimhad, I started using it and every time I use it I get more convinced of how I wouldn't change it for any other IDE. And I know how to do about 0.1% of the things you can do in it. – Wolter Hellmund Oct 31 '11 at 4:57