Recommend IDE for coding in "C"

Buddha Buck blaisepascal at
Wed Mar 20 13:13:00 EDT 2013


As should be clear from the other responses, there's no clear "if you work
in C/C++, then this is the IDE you should use".  Both languages have been
around for a very long time (C since the early 1970's, C++ since the mid
1980's), and have been used across a large number of different
environments, there's no category-killer.

Both C and C++ are old enough languages that they have a certain amount of
cruft in their design with makes it hard for IDEs to get their hooks into
them to provide "advanced" services.  For instance, while there are
"refactoring" tools for Java and C# that work with popular IDEs for those
languages, there are none for C/C++.  So most IDEs for C/C++ are mainly
glorified text editors with syntax highlighting and shortcuts to call
compilers, source control systems, debuggers, and other development tools.
 There are source browsers available (allowing you to go to function/class
definitions, etc), but they are generally not as sophisticated as those in
newer languages.

It should be noted that in Linux/Unix, all the development tools are
command-line based, and so any IDE is going to call make, gcc, git, gdb,
javac, etc behind the scenes anyway to do the actual work.

So which you choose is more a matter of taste than functionality.  Everyone
is going to prefer the one they are most familiar with.

That said, here are the choices I can speak to:

Emacs -- This is an old extensible text editor, nearly as old as C.  Since
it is older than most windowing interfaces, it is very much geared towards
usage on a terminal -- keyboard based commands, fixed window size,
monospace type, etc.  It has, in the past decade or so, added some ability
to be used with a mouse, but the keyboard is really the way to use it.
 Since it is designed to be extensible (it uses elisp, a language similar
to the Guile language GnuCash uses), it has a lot of features available (in
the 1980's it's desktop icon was a kitchen sink).  As far as an IDE goes,
it provides all the basic hooks so you don't have to leave the program in
order to develop, and it has support to handle a large number of languages.
 Emacs has a reputation for being heavyweight and larded with features, but
I've found that compared to modern editors with a fraction of the
capabilities, it's rather lightweight and spry.  The old joke that the name
means "Eight Megabytes And Constantly Swapping" is meaningless when your
browser can take a gig of memory.

Vi -- This is almost as old as Emacs, but wasn't originally written to be
quite as extensible.  Like Emacs, it's text-and-keyboard oriented.  It
provides syntax highlighting, but I'm not sure about hooks to other tools.
 I don't use it for development myself, that much.  It has always been
considered lightweight compared to Emacs.

Eclipse -- Eclipse is a modern development environment, and provides lots
of bells and whistles, especially for Java development.  I haven't really
used it for C/C++ development, though.

I've not used many others.  QtCreator is probably well designed for C++,
and if you do other work with Qt it's probably a good, familiar choice.  If
not, it may be another set of libraries and dependencies to install.

On Mon, Mar 18, 2013 at 2:05 AM, Paul Conrady <audio1953 at> wrote:

> This is not a question about GnuCash per se. Since I would like to
> contribute
> to the development of GnuCash, I thought the developer's here might be the
> best source of information.
> I want to start coding in "C" and "C++". Please recommend an IDE for me.
> After searching through the Ubuntu and Canonical repos, I am leaning toward
> Anjuta DevStudio or maybe CodeLite. Since I am learning the language, all
> that I require is a simple interface; nothing complex.
> Thank you for your help.
> Paul
> --
> View this message in context:
> Sent from the GnuCash - Dev mailing list archive at
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at

More information about the gnucash-devel mailing list