Even in terminal one can have menus, menubars, tree navigation, folding views, scrolling lists, dialogs, windows, frames, textual buttons, editor buffers with specialized functionality, etc. That means one can have backtrace frames, steppers, data inspectors, configuration menus, preference dialogs, class browser, call graphs, restart menus, read-eval-print loops, refactoring dialogs, ...