Computing has two versions of 'necessary'

May 25, 2014

In various fields of computing we often wind up either saying that something is necessary or arguing about whether it is necessary. One of the things that complicates these discussions is that in computing we have two versions or meanings of 'necessary', the mathematic and the pragmatic.

The mathematical version of necessary is minimalism. At its strongest, the mathematical 'necessary' means that this feature or thing is essential, that you have to have it, that things do not work without it. The pragmatic version of necessary is what I'll call economy of effort, the idea that something is necessary when it is the best way to achieve something. The pragmatic version of necessary is a humanist vision.

A mathematically necessary feature can also be pragmatically necessary; it is great when this happens because both sides get to agree. However it's common for pragmatically necessary things to not be mathematically necessary (at which point they often get called unneeded) and sometimes for the mathematically necessary things to not be pragmatically necessary (at which point they can get called too low-level).

A strong adherence to the mathematical version of necessary drives a lot of what I consider pathologies in computing. But a strong adherence to the pragmatic version of necessary also has its downsides, including clutter and incoherence when carried to extremes (which it often has been). And in general adherents of each side not infrequently wind up talking past each other.

PS: I suspect that you can come up with some examples of the mathematical necessary and the pragmatic necessary on your own, so I'm not going to fan the flames of argument by picking out ones here. There are some very obvious suspects among, eg, computer languages.

(I've touched on this idea before back here, among other entries.)

Written on 25 May 2014.
« What ssh-agent does with multiple keys loaded
Firefox, DRM, and reality »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun May 25 00:48:50 2014
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.