Manipulating a text terminal's display involves using terminal-specific capabilities. In Unix-like systems this is accomplished by outputting special character codes that vary from one terminal to another. For example, on a VT100 terminal the cursor is moved up one line line by

printf("%c[A", 27)

On the other hand, in Windows systems cursor movement is performed by the function


Writing a portable application would require creating many versions for different terminal types. Moreover, every application would have to implement these output routines from scratch, which would be a complete disregard for good programming practices and a big waste of time in general.

That is why the curses library was developed. The goal was to relieve programmers of the burden of writing platform- and terminal-specific code for screen manipulation.

[TODO: more about curses and its implementations]

Curses Sharp is a curses library binding for the C# language. It enables writing portable applications for text terminals in a modern, object-oriented programming language.