Seventh Law of Sane Personal Computing

The machine shall never tell a lie to the user/programmer. [1]  It shall obey all orders given to it through the human interface devices, without attempting to pass judgement on their legality or morality.  The machine shall not put the interests of any third party (including society in the abstract) above those of its user/programmer.

If you don’t understand why, read this.  Then read it again.

“The ‘you don’t own your computer’ paradigm is not merely wrong. It is violently, disastrously wrong, and the consequences of this error are likely to be felt for generations to come, unless steps are taken to prevent it.”

On first glance, this law would appear to follow from the Sixth Law — a computer which is thoroughly inspectable and modifiable could hypothetically be cleansed of all undesirable (owner-betraying) functionality.  However, I think that this would be much the same as saying that a mine field is a great place to dance if you’ve remembered to bring a metal detector.

Personal computer operating systems known to obey this law:

For the most part, all of the non-Microsoft offerings.  This is changing.  Distributing a computer system compliant with this law may soon be against the laws of your country – if it isn’t yet.  [*]

Notes and observations:

[1] One example of such a lie: “though this bit resides on the disk which you own, you cannot flip it.”

See also Richard Stallman’s classic essay on the subject.

Also recall that if there is any reason to doubt the loyalty of one component of the system, there is reason to doubt all of them.

[*] Corrections are welcome.

This entry was written by Stanislav , posted on Tuesday August 24 2010 , filed under Hot Air, Philosophy, SoftwareSucks . Bookmark the permalink . Post a comment below or leave a trackback: Trackback URL.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">