Default (computer science)

A default, in computer science, refers to the preexisting value of a user-configurable setting that is assigned to a software application, computer program or device. Such settings are also called presets or factory presets, especially for electronic devices.

Default values are standards values that are universal to all instances of the device or model and intended to make the device as accessible as possible "out of the box" without necessitating a lengthy configuration process prior to use. The user only has to modify the default settings according to their personal preferences. In many devices, the user has the option to restore these default settings for one or all options. Such an assignment makes the choice of that setting or value more likely, this is called the default effect.

Application software preferences
One use of default parameters is for initial settings for application software. For example, the first time a user runs an application it may suggest that the user's delivery address is in the United States. This default might be appropriate if more users of that application were in the US than any other country. If the user selected a new country, it would override the default, and perhaps become the default for the next time the application is used on that computer or by that user. Changing the default for the next run would involve storing user information in some place, such as in cookies on the user's computer for an Internet application. In Microsoft Windows, default file associations associate applications with file types.

Television or computer monitor
A TV or computer monitor typically comes with a button to "restore factory presets". This allows the settings for brightness, contrast, color, etc., to be returned to the defaults recommended by the manufacturer. This button may be used when the settings get badly adjusted (say by a toddler playing with the controls). Some "fine-tuning" of the settings may still be needed from the factory settings, but they will likely be closer to the desired settings than random settings.

In application software
Using a default involves two goals which sometimes conflict:


 * Minimal user interaction should be required. Setting defaults to the most commonly selected options serves this purpose.
 * Panel entry errors should be minimized. Using defaults will tend to increase errors, as users may leave incorrect default settings selected. In cases where the value can be verified, this is not a severe problem. For example, the delivery country can be checked against the street address or postal codes and any mismatch can generate an error panel displayed to the user, who will then presumably make the correction.

In cases where there is no clear majority and the results cannot easily be verified by other available information, such as the gender of the individual, no default should be offered. Some software applications, however, require that default values be supplied.

A 1982 Apple Computer manual for developers warned: "Please do not ever use the word default in a program designed for humans. Default is something the mortgage went into right before the evil banker stole the Widow Parson's house. There is an exhaustive list of substitutes (previous, automatic, standard, etc.)".

In computer languages
Many languages in the C family (but not C itself, as of C11) allow a function to have default parameters or default arguments, that are used if the function is called with omitted parameter specifications.

In C and programming languages based on its syntax, the  statement (which dispatches among a number of alternatives) can make use of the   keyword to provide a case for when no other case matches.

In Fortran, the INIT parameter on a declaration defines an initial default value for that variable.

In Rust, types that implement the  trait can produce a default value. For example, the primitive integer types in Rust implement the  trait by returning 0.

In operating systems
In operating systems using a command line interface, the user types short commands often followed by various parameters and options.