Curses is the unix toolkit for displaying text based GUI's.
Curses is used for all sorts of operations on a terminal, the most important of which include drawing and removing text, colouring/hilighting text, and moving the cursor around.
Curses originally grew out of vi(1) I believe, and was very optimised for sending the least number of escape codes to update the screen from the old representation to the new representation, which means that it worked really well over low speed serial. (On the flipside, now it works over very laggy tcp connections really well too :).
Curses has been replaced and rewritten and is usually called "ncurses" now.
make menuconfig
for instance, uses a Curses interface, as do most text editors.
ncurses is simply an implementation of the curses API. ncurses is the implementation used by most Linux software - ncurses is under the GPL so only GPL-compatible programs may link against it.
From the start of the man page:
See the ncurses(3X) man page for an overview and link to the other functions' man pages, or see HowToNCURSESProgrammingHOWTO? for lots of information (including a good introduction to terminals and ncurses).
There is a new port of GTK to text mode (TTY) called Cursed GTK:
(reminds you of Borland's !TurboVision? IDE for DOS doesn't it? :)
6 pages link to Curses: