Total Programming

I've an overwhelming desire to program in systems without dark corners, systems in which every small
detail has an explicit answer.  Very few systems provide this; even machine codes leave bit patterns
or other details unspecified in certain instances; the more mathematical systems leave less unknown.

An unpleasantry, but perhaps a necessity, is the bottom value for handling such things; systems like
Smalltalk and REFAL have few or no errors beyond a subprogram having no handling for some parameter,
and this is probably like what every system should look.  Perhaps even one error so be one too many.

A related idea is ``Hyrum's Law'' and, while not a true law in any sense as the other such ``laws'',
it makes a good point about large systems programming: Every detail will be a dependency of someone.
The only reasonable solution is to specify all observable behaviours of such a system, including its
performance if necessary, and to break anyone who even tries to circumvent the system specification.
I'm not aware of any large effort to document systems so thoroughly, however, down to the complexity
analysis and whatnot, but it's clearly necessary at some point.  Programming would look so different
with such attention to detail.  It should be obvious, that better time and space complexity ought to
be a compatible change to any system, but I suppose even that's not necessarily so true, in general.

I recently read about an attack on SMTP related to ``Postel's Law'' and servers allowing braindamage
from UNIX.  Different line endings, proper and incorrect, would cause some servers to send an e-mail
that lied about its provenance.  It's clear the one solution to such stupidity is the total shunning
of any deviation from the standard.  Any implementation of anything should detect such cases and not
only reject them, but do so mockingly.  Any other policy promotes deviance and leads to such issues.

I once had a catchy name for this rejection policy, belligerent acknowledgment or something similar.

It occurred to me that human language also has dark corners, places where some answer is either very
obscure, unknown, or unspecified, and I avoid them when I speak or write, but no programming systems
should be constrained by something unnecessary, and that includes problems affecting human language.

This article was, perhaps, a little rushed; I suggest checking back in a few days for any additions.