Recommend IDE for coding in "C" -- some historical context

Hendrik Boom hendrik at
Thu Mar 21 14:31:33 EDT 2013

On Wed, 20 Mar 2013 13:13:00 -0400, Buddha Buck wrote:

> Paul,
> 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.

The macro preprocessor for C/C++ really gets in the way of an external 
program making sense of the code.


> 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.

And C was originally invented jointly with a command-line Unix system.  
So using it this way fits with tradition.

> 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.

What emacs accomplished in those early days was to be a UI for text 
terminals.  You had multiple 'buffers', which could be put in differennt 
places on the screen, or placed in the background to be recalled later.  
Some buffers would contain files t edit, others aould act as command-
language terminals, and so forth.

Emacs  i those days was as much of a way of life as desktop GUIs are now.

That's why it was big.

But compared to today's memory hogs, it's tiny.

> 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.

The first time I saw vi, it was already on a system that had mouse-and-
windows.  Whether vi or X windows was first, I suspect that functionality 
that might have drifted into vi got placed in the window system instead.

-- hendrik

More information about the gnucash-devel mailing list