Comparison to other interfaces Command-line interfacesA modern CLI.Since the commands available in command line interfaces can be numerous, complicated operations can be done using a short sequence of words & symbols. This allows for greater efficiency & productivity one time plenty of commands are learned, but reaching this level takes some time because the command words may not be basically discoverable or mnemonic. In addition, using the command line can become slow & error-prone when the user needs to enter long commands, comprising plenty of parameters and/or several different filenames directly. WIMPs ("window, icon, menu, pointing device"), on the other hand, present the user with numerous widgets that represent & can trigger some of the system's available commands.On the other hand, GUIs can be made hard by burying dialogs deep in the process, or moving dialogs from place to place. Also, dialog boxes are considerably harder for the user to script.WIMPs extensively use modes as the meaning of all keys & clicks on specific positions on the screen are redefined on a regular basis. Command line interfaces use modes only in limited forms, such as the current listing & surroundings variables.Most modern operating systems provide both a GUI & some level of a CLI, although the GUIs usually get more attention. The GUI is usually WIMP-based, although occasionally other metaphors surface, such as those used in Microsoft Bob, 3dwm or File Process Visualizer (FSV).Applications may also provide both interfaces, & when they do the GUI is usually a WIMP wrapper around the command-line version. This is common with applications designed for Unix-like operating systems. The latter was implemented first because it allowed the developers to focus exclusively on their product's functionality without bothering about interface details such as designing icons & placing buttons. Designing programs this way also allows users to run the program non-interactively, such as in a shell script.