I've been programming in python and C for a little less than a year, now. I switched from OSX to Ubuntu about a month ago. I'm learning C++, and most specific (non-beginner, I.E.: an SFML tutorial I'm using) tutorials that I've seen talk as if I use an IDE. I've used Textwrangler (OSX), gedit (Linux), and nano (Both; With built-in syntax highlighting and other extras turned on) for programming, along with the terminal and "make" so far, and I'm perfectly happy with them. I would use emacs, but I really don't like the way it looks. Should I use an IDE for C++? If so, why? Honestly, I'm just scared of being a ctrl-space'ing heathen. Thank you for any responses, and take the previous sentence with a grain of salt.
-
Most Linux developers I know use command line for C++, but many Windows developers use IDE. They seeem to be equally productive, so I wouldn't switch unless you feel like you are hitting productivity limits on the command line. – merlin2011 Jun 06 '14 at 05:21
-
How think about read this [article](http://stackoverflow.com/questions/208193/why-should-i-use-an-ide?rq=1)? – JuHong Jung Jun 06 '14 at 05:21
-
I will also mention that most command line users will learn a Window manager like `tmux` and one of the two editors `vim` or `emacs` for increased productivity. – merlin2011 Jun 06 '14 at 05:22
-
`merlin2011`: Thanks, merlin. I thought that might be the case.; `JuHong Jung`: I'll read it.; `merlin2011, again.`: I'll check out tmux. I was thinking about switching to emacs once I had the time to learn its lisp-like language and customize it to fit my needs. – mckryall Jun 06 '14 at 05:46
1 Answers
Short answer: Use an IDE if you feel comfortable with one. Don't use an IDE if you don't feel comfortable with one.
To really answer this question, though, we should probably look what using an IDE gets you. Here's the Visual Studio interface for C++:
(source: msdn.com)
The first thing you notice, of course, is the code windows with the pretty highlights. However, that's not the IDE; that's just the text editor part. The rest of it is what's really important. Visual Studio includes a debugger, a file/project manager, a compiler, support for source control... the list goes on. The first letter of "IDE" is the most important one - integrated. It includes everything you need to develop in one neat package.
However, this has its downsides, too. Maybe you don't like VS's text editor. Then, you have to have two windows open, and use the IDE only for debugging, compiling, and source control, wasting most of the screen space. Maybe, after a while, you start to think maybe GCC optimizes your code better, so you start using that. Eventually, the "integrated" part of IDE goes out of the window, and you're using only a few features of the product. At that point, it might be more productive just to find replacements for everything.
Of course, there are extensions and plugins for some of these things, but the point is: an IDE is generally only useful if you spend all or most of your time in it. If you like the entire or most of the IDE, great. If you don't, then use something else, whether that's another IDE or a bunch of command line tools or something else.
Addendum: I used to use Visual Studio, and then moved to Linux with Vim
, gcc
, and gdb
. I work with SFML a fair amount in personal projects, and I don't feel that an IDE is especially suited to it in any particular way; I do just fine with the command line tools. The tutorials are most likely written that way because most people begin coding with an IDE, and SFML attracts a lot of beginners.

- 21,988
- 13
- 81
- 109

- 949
- 1
- 10
- 20
-
I was just using a two-window setup with the `terminal` and `gedit`, but I switched to `nano`. Honestly, I prefer typing `nano code.cpp` than pressing `ctrl+alt+(arrow key)` to switch windows. `nano`, actually, isn't that bad an editor with the extras enabled. Now, I just have to read about how to use the `cut` feature. I don't feel any more productive with an IDE, but the whole integrated source control part would be nice. – mckryall Jun 06 '14 at 16:52
-
Yup, if you feel comfortable with it, don't switch. I have basically the same setup, except it's `vim` for me. – Chaosed0 Jun 06 '14 at 17:20
-
`Chaosed0`, do you mean the terminal version of vim? I might try that. – mckryall Jun 06 '14 at 17:33