Curses (programming Library) - Curses-based Software

Curses-based software is software whose user interface is implemented through the Curses library, or a compatible library (such as Ncurses).

Curses is designed to facilitate GUI-like functionality on a text-only device, such as a PC running in console mode, a hardware ANSI terminal, a Telnet or SSH client, or similar.

Curses-based programs often have a user interface that resembles a traditional graphical user interface, including 'widgets' such as text boxes and scrollable lists, rather than the command line interface (CLI) most commonly found on text-only devices. This can make them more user-friendly than a CLI-based program, while still being able to run on text-only devices. Curses-based software can also have a lighter resource footprint and operate on a wider range of systems (both in terms of hardware and software) than their GUI-based counterparts. This includes old pre-1990 machines along with modern embedded systems using text-only displays.

Curses was used in the implementation of a language called FMLI, which was used to present a user friendly textual interface called FACE in SVR4 systems, to provide basic systems administration functionality. FMLI based upon Curses was later also used in Solaris, to provide an interface for higher level functionality, for commands surrounding Live Upgrade.

However, not all Curses-based software employs a text user interface which resembles a graphical user interface. One counterexample would be the popular vi text editor, which while not being CLI-based, uses memorized keyboard commands almost exclusively, rather than the prompting TUI/GUI style, which relies more on recognition than recall.

Curses is most commonly associated with Unix-like operating systems, although implementations for Microsoft Windows also exist.

Read more about this topic:  Curses (programming Library)