"Properties" versus "settings"

Solution 1:

All of this is in the context of computer user interfaces, I can't really comment on the more general meaning.

Properties are attributes of a thing that are somehow inherent to it. Examples of properties are:

  • the amount of memory in your computer
  • the type of processor/CPU in your computer
  • the size of a hard disk in your computer
  • the size of a given file

You can't usually change properties directly. You can open the computer and add more memory, but you can't just pull a "memory" slider to the right to add more memory.

Settings are attributes that can easily be modified. Examples of settings are:

  • the background color and/or image of your desktop
  • the format used to display the time of day
  • the location where your browser stores downloaded files

Note that there is a separate meaning of this in the world of object-oriented programming (a part of software development) where a property is any attribute of an object, no matter if it's changeable or not. But even here the terminology can vary a lot between languages.

Solution 2:

Every software developer will say, that "computer" object has neither properties (except for some software languages, where property is a method with special syntax) nor settings.

Settings is more of a set of external data, that specifies the behaviour of computer entity - application as a whole or some submodule in it. In UI they are frequently refered as options or preferences.

Properties (if we are not talking about special syntax I mentioned earlier) - I can't say I hear this word applied to computer entities often. I'd say it can be applied to a special kind of settings, that are stored in external files on disk (called property files or configuration files).

Solution 3:

When talking about objects (instances of classes in an object-oriented language) you should use the word properties.

Settings apply more properly to applications and environments; they are changes in configuration. A setting may be controlled entirely by a single property of a single object in some cases, but the object itself doesn't have a setting, it has a property.

(There is a little room for confusion here, since the act of changing a property is often accomplished using a method called a setter, and in many languages the setter is named by convention setPropertyName(). And it doesn't help at all that Java uses *.properties as the default name for an application's configuration file.)