Fifth Law of Sane Personal Computing

If the machine encounters an error condition requiring the user’s manual intervention, the state of the now-halted process prior to this event shall be preserved, and the user given an opportunity to correct the error using an interactive debugger and resume execution from the saved-and-corrected state.  The debugger shall display the code which generated the […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 1 Comment

Fourth Law of Sane Personal Computing

Compilation is to be considered a form of caching, and thus shall happen solely behind the scenes, like all other forms of caching. (See: the Third Law.) The machine is to accept no externally-introduced executable code except in the form preferred for making modifications (i.e. source.)   All executable code visible during any kind of debugging […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 1 Comment

Third Law of Sane Personal Computing

Volatile storage devices (i.e. RAM) shall serve exclusively as read/write cache for non-volatile storage devices.  From the perspective of all software except for the operating system, the machine must present a single address space which can be considered non-volatile.  No computer system obeys this law which takes longer to fully recover its state from a […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 9 Comments

Second Law of Sane Personal Computing

Information which entered the machine through deliberate user action shall never be destroyed or otherwise rendered inaccessible except as a result of deliberate user action to that end.  No user action shall lead to the destruction of information unless said destruction is the explicit and sole purpose of the action.  If all non-volatile storage space […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 1 Comment

First Law of Sane Personal Computing

Assuming physically-intact hardware, the user shall retain full control of the machine at all times.  In particular, the handling of the keyboard, mouse, and other human interface devices must take absolute priority over all other processing.  The user shall have the ability to issue commands and receive immediate confirmation of said commands at all times, […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 8 Comments

The Wisdom of Erik Naggum

Erik Naggum died slightly more than a year ago. I have never met the man in the flesh, and yet he is the one person who had most often and most radically re-shaped my opinions at their core, solely through the printed word – not only on the subject of computer programing, but on every […]

Posted in: Lisp, NonLoper, Philosophy, ShouldersGiants by Stanislav 7 Comments

Non-Apple's Mistake

I’ve been patient, I’ve been gracious And this mountain is covered with wolves Hear them howling, my hungry children Maybe you should stay and have another drink and think about me and you. Jonathan Coulton, “Skullcrusher Mountain” The howls of protest coming from iPhone and iPad developers are loud and shrill, and are sure to […]

Posted in: Hot Air, NonLoper, Philosophy by Stanislav 87 Comments

The Performance of Lisp, or Why Bean Counters Need Bigger Bags of Beans

One critic, echoing the voices of thousands, asks: “Surely if Lisp makes a programmer N times more efficient, then it would be easy to study scientifically. Have there been any studies comparing productivity?” I wish I could reply with the immortal words of Babbage.  But alas I cannot.  Sadly, I can indeed “apprehend the kind […]

Posted in: Hot Air, Lisp, NonLoper, Philosophy by Stanislav 3 Comments

Where Lisp Fails: at Turning People into Fungible Cogs.

A favorite conundrum of many Lisp aficionados is why the language appears to languish in disuse.  Talk of cultural problems, “the library question” (which usually boils down to nonsensical circular reasoning), too many parentheses, and other absurdities simply dances around the blindingly obvious explanation – one which is able to make sense not only of […]

Posted in: Hot Air, Lisp, NonLoper, Philosophy by Stanislav 45 Comments

You have made your bedrock, now lie in it.

As a child, I was quite fond of old-fashioned Lego bricks.  One very endearing but rarely discussed property of such bricks is their durability, bordering on the indestructible.  Almost any abuse inflicted on a Lego structure will, at worst, leave you with a pile of bricks entirely like the one you started with.  Even the most […]