Network services/Left out

From WikiDotMako
< Network services
Revision as of 16:14, 14 March 2008 by Evan Prodromou (talk | contribs) (Free software non-requirements)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

In creating a new definition for free network services, it may be worthwhile to note some requirements or expectations for "good software" that were left out of software and content definitions in the past. We may want to think twice about including these requirements in a free network services definition.

Good behaviour
Free Software can do bad things. Viruses, spyware, and other malware can be Free Software. Software that does damage to the user's health, computer, data, or reputation can still be Free Software.
Good intentions
The intentions of the licensor are not part of any Free Software definition. Releasing Free Software in order to further some nefarious plan does not make the software any less Free. Very, very bad people can make Free Software.
Universality
Free Software does not have to run on every kind of computer, on every operating system, on every GUI desktop. It's OK to make niche Free Software.
Reliability
Free Software does not have to meet any requirements of reliability. It can work incorrectly; it can cause errors that stop the computer from working. Free Software doesn't even have to compile or run on the user's computer.
Open data formats
Free Software can read and write data in any format whatsoever, and isn't required to meet any standards for data formats. It does not have to produce data that can be read or written by any other program. It does not have to have well-documented data formats.
Programming language
Free Software does not have to be written in any particular programming language. Free Software can be written in obscure or just plain bad programming languages. Some people put a practical limit on this, at the point where the programming language processor needed to run the program is not publicly available.
Code quality
Free Software does not have to meet any code quality standards. It doesn't have to have comments, be modular, be object-oriented, or be easy to read. Variables and functions can be badly named and magic values can be hard-coded. Many people put a practical limit on this, such that purposefully obfuscated code is not considered Free.
Documentation
Free Software can be undocumented, have poor documentation, or have documentation in only one language.
Open protocols
There's no requirement that Free Software comply with "open" protocols, like IETF RFCs, ISO standards, W3C standards, or any other formal standards.
Interact at all with other Free Software
Free Software is still Free even if it only runs on a proprietary operating system, proprietary desktop environment, or is written in a proprietary programming language.
Interact only with other Free Software
Free Software can have dependencies on proprietary software. It can link to libraries or use other interfaces to proprietary tools. It can be written in languages for which there is no Free compiler or interpreter.
Non-discriminatory
Free Software does not have to be accessible to everyone. It can have bad accessibility for people with disabilities; it can have documentation or a user interface that's not in every human language.
Security
Free Software doesn't have to be bug free, have a good security interface, or protect the user's privacy or confidentiality.