Usually used in reference to a computer application, a text-based application is one whose primary input and output are based on text rather than graphics or sound. This does not mean that text-based applications do not have graphics or sound, just that the graphics or sound are secondary to the text.
Before the 1980s, most computers were text-based. The operator used the keyboard as the main input device to type in necessary commands into the terminal that could only display text on a low-resolution monochrome video monitor. The majority of end-user software was also written in text-based mode during this time. During this era, operating a computer was considered to be a challenging task because of the complexity of the text-based environment.
However, with the development of the graphical user interface and the improvement in hardware, many software engineers started adding graphics for their applications. As a result, the pointing device that controls the coordination of the cursor on the screen became a primary input source (such as a mouse), and the graphics displayed with some text on the screen became a primary output source.
There is a lot of text-based software in modern operating systems, particularly in Unix and Unix-like, which can usually be accessed through the shell running in a system (or virtual) console or a terminal emulator. In these operating systems text-based programs continue to be the primary software for system administration, programming and scripting. On the contrary, Microsoft Windows contains far less text-based software, which is essentially the remnants due to the MS-DOS ancestry, even though there are still several programs for system administration and critical maintenance.
When the method used to access the operating system itself is text-based, the interface is usually referred to as a Command Line Interface (CLI). This function is carried out by various shells in Unix and Unix-like operating systems, and CMD and PowerShell in Microsoft Windows.
Benefits of text-based software
Text-based applications typically run faster than software involving graphics does. Text-based applications run faster because the machine does not expend resources on processing the graphics, which generally requires more system resources than text does. For the same reason, text-based applications use memory more efficiently.
Command line interfaces often provide the user more control on the software than a graphical user interface, by taking all the details of a command as parameters and/or by redirecting the outputs between commands. Since the available parameters are not explicitly enumerated, the application can accept many more options than an equivalent GUI-based software: a high number of options in a GUI would make it too complex and impractical, but that doesn't happen in a CLI. Thus the text-based input can provide more flexibility at the cost of learnability and a burden on user's memory.
As a result, text-based software can offer more powerful features than graphic-based software, such as combining the command using a pipeline that allows output of the first command to be used as the input of the next command. Using this, a complex operation can be accomplished in a single command line using a sequence of commands connected together in a pipeline.
In certain circumstances, text-based application offers faster user interaction than the graphic-based software does. Assuming that the user is fluent with typing, the user can enter commands faster than when using the graphical interface, because the users do not have to move their hands from the keyboard to enter different commands.
Limitations of text-based software
Many users may not find an application with a text-based interface very user-friendly. This is especially true for beginning computer users. While the user may learn how to operate the software by simply playing around or navigating through given options, a text-based system usually requires users to have a more detailed understanding of the commands. Many text-based applications have a menu or help system that shows the user some (or all) of the available options of the software.
Text-based software also has limitations on its output as well. Text-based output may not be considered very attractive to many users, and may be difficult to understand (compared to an output involving graphics). Therefore, certain operations cannot be implemented using text-based software, due to its limitation of range in its input and output.