Dijkstra et. al. on software development

In "Why is software so expensive?", Dijkstra wrote:

To the economic question "Why is software so expensive?" the equally economic answer
could be "Because it is tried with cheap labour." Why is it tried that way? Because its
intrinsic difficulties are widely and grossly underestimated.
He said many more good things in that paper.

A similar comment was made on SlashDot yesterday:

The truth is that no one really knows how to do [software development] right.
That is why the methodologies switch around every few years.  — "110010001000"


Management wants soft requirements and hard dates.
Engineering wants hard requirements and soft dates.
  — wrf3
It took me far too long to realize this.

Notes from The Resurrection of Jesus: A New Historiographical Approach

Along with taking the Yale course on Game Theory on iTunes, I’m reading The Resurrection of Jesus: A New Historiographical Approach by Michael R. Licona. It’s over 700 pages. Licona asks the question, “If professional historians who work outside of the community of biblical scholars were to embark on an investigation of the historicity of the resurrection of Jesus, what would such an investigation look like?” [pg. 19]. I’ve made it to page 180 and the book hasn’t yet dealt with the historical evidence for the Resurrection. The book starts by exploring what it means to do historical research and the role of worldview on the evaluation of evidence. This last part is very important. We may think that “seeing is believing” and there is some truth to that. But it’s also true that “believing is seeing,” that is, that our worldview effects how we evaluate data. The resurrection is one of those events that challenges worldviews. If one is a priori a naturalist, the resurrection account simply could not be what the early disciples of Christ claimed it was. If one is a priori a theist, then the resurrection may, or may not, have happened. For example, Christians say it did; Muslims say it didn’t. If one is uncertain of one’s worldview, it may likely lead to an inability to say that the evidence leads to anything conclusive.

Several statements in the book have resonated with me, because they touch directly on topics of several recent internet “discussions” and because they cohere with positions I’ve taken. Several of these deserve further elaboration and may become topics of future posts. Until then, I’ll just present each along with a brief observation.

The first pertains to how worldview influences the evaluation of evidence:

When historians seek to describe the past, they place facts within the framework of a narrative. Numerous interpretations and theories can be quite imaginative. Moreover, many times specific narratives can neither be proved nor disapproved, and historians from every camp often fail to place a sort of disclaimer informing readers of the tentativeness of their narrative, which is stated as fact. [pg. 57]

The second deals with the question of just how literal an interpretation of a text ought to be (see, for example,
Operation Chaos). Are ancient descriptions to be understood as if they were video recordings?

However, no one would charge a portrait as being errant because they portrayed something in the background that was not there during the sitting but was created in order to communicate character or personality. Literary devices such as invented speeches and encomium are common traits of ancient bioi. Thus, in some instances, those who complain of contradictions and inventions in the Gospels are guilty of judging them in terms of photographic accuracy, when this may not have been the intent of the author. Still, this earmark of ancient bioi makes hermeneutical considerations of the Gospels all the more challenging. [pg. 76]

The third ties in with the second when dealing with “young earth creationism,” which I should note that I don’t think does justice to the Biblical text. Are there any good reasons to suppose “
Tuesdayism” is or is not true, other than philosophical ones or a very literal reading of Genesis?

Neither historians nor philosophers can prove that the world is older than 10 minutes at which time everything was created with the appearance of age and that we were created with memories of events that never took place and with food in our stomachs from meals we never ate. [pg. 82]

The fourth is based on the principle of non-contradiction:

Another theory of truth is coherence theory, which states that a proposition is true when all of its components cohere with other propositions believed to be true. This theory of truth may be especially attractive to those historians who excel in forming creative narrative. Their narrative is true because it coheres better with other widely held propositions. [pg. 91]

The fifth echoes Russell’s statement from “
The Problems of Philosophy” that, “All knowledge, we find, must be built up upon our instinctive beliefs, and if these are rejected, nothing is left.” What Licona says about historians is true for everyone:

Historians are required to make numerous philosophical assumptions before entering every historical investigation. For example, they assume the external world is real. They assume our senses provide a fairly accurate perception of the external world. They assume logic facilitates our quest for truth rather than merely functioning as a pragmatic tool that aims at our survival and quality of life. They assume natural laws in effect today were in effect in antiquity and that they operated in a similar manner. More importantly, the majority of historians assume that history is at least partially knowable. [pg. 156]

These last two quotes touch on logic, science, and the nature of truth and deserve a post of their own.

Operation Chaos

Operation Chaos, by Poul Anderson, is a novelization of his stories: “Operation Afreet”, “Operation Salamander”, “Operation Incubus”, and “Operation Changeling”. The artwork is from the serialization of “Operation Changeling” in the May-June 1969 issues of F&SF. The redhead is Virginia Matuchek, witch wife of the werewolf and former Army captain Steve Matuchek. The cat is Svartalf; Virginia’s familiar. In “Operation Changeling”, the three invade hell to recover their kidnapped daughter. While re-reading the novel this weekend, I came across this line which I found highly appropriate as it will fit in with a future blog post on reading Scripture:

...Heaven is not as narrowly literal-minded as hell.

Whatever else one might say about Anderson’s theological musings, this observation is profoundly true.

God, The Universe, Dice, and Man

In the realm of the very small, the universe is non-deterministic. Atomic decay, for example, is random. Given two identical atoms, one might decay after a minute, another might take hours. Elementary particles have a property called "spin", which is an intrinsic angular momentum. Electrons, for example, have spin "up" or spin "down", but it is impossible to predict which orientation an individual election will have when it is measured.

John G. Cramer, in
The Transactional Interpretation of Quantum Mechanics, writes:

[Quantum Mechanics] asserts that there is an intrinsic randomness in the microcosm which precludes the kind of predictivity we have come to expect in classical physics, and that the QM formalism provides the only predictivity which is possible, the prediction of average behavior and of probabilities as obtained from Born's probability law....

While this element of the [Copenhagen Interpretation] may not satisfy the desires of some physicists for a completely predictive and deterministic theory, it must be considered as at least an adequate solution to the problem unless a better alternative can be found. Perhaps the greatest weakness of [this statistical interpretation] in this context is not that it asserts an intrinsic randomness but that it supplies no insight into the nature or origin of this randomness. If "God plays dice", as Einstein (1932) has declined to believe, one would at least like a glimpse of the gaming apparatus which is in use.

As a software engineer, were I to try to construct software that mimics human intelligence, I would want to construct a module that emulated human imagination. This "imagination" module would be connected as an input to a "morality" module. I explained the reason for this architecture in this article:

When we think about what ought to be, we are invoking the creative power of our brain to imagine different possibilities. These possibilities are not limited to what exists in the external world, which is simply a subset of what we can imagine.

From the definition that morality derives from a comparison between "is" and "ought", and the understanding that "ought" exists in the unbounded realm of the imagination, we conclude that morality is subjective: it exists only in minds capable of creative power.

I would use a random number generator, coupled with an appropriate heuristic, to power the imagination.

On page 184 in
Things A Computer Scientist Rarely Talks About, Donald Knuth writes:

Indeed, computer scientists have proved that certain important computational tasks can be done much more efficiently with random numbers than they could possibly ever be done by deterministic procedure. Many of today's best computational algorithms, like methods for searching the internet, are based on randomization. If Einstein's assertion were true, God would be prohibited from using the most powerful methods.

Of course, this is all speculation on my part, but perhaps the reason why God plays dice with the universe is to drive the software that makes us what we are. Without randomness, there would be no imagination. Without imagination, there would be no morality. And without imagination and morality, what would we be?

Knuth on Art and Science

I am rapidly devouring Knuth's Things A Computer Scientist Rarely Talks About. Perhaps too rapidly. But I digress. In Lecture 6: God and Computer Science, he says:

Years ago, I was pondering the difference between science and art. People had been asking me why my books were called The Art of Computer Programming instead of The Science of Computer Programming, and I realized there's a simple explanation: Science is what we understand well enough to explain to a computer; art is everything else. Every time science advances, part of an art becomes a science, so art loses a little bit. Yet, mysteriously, art always seems to register a net gain, because as we understand more we invent more new things that we can't explain to computers. -- pg. 168.


Communication is hard

Communication with people is hard because they don’t always hear exactly what was said. Communication with computers is harder, because they do always hear exactly what was said.

Angry Software Engineers

If I were even one-fourth the writer Harlan Ellison is I wouldn’t be a software engineer. Yet while the skill sets differ, the craft, the art, and the trials and tribulations are similar. In “Somehow I Don’t Think We’re in Kansas, Toto” anthologized in The Essential Ellison, he tells of one dark experience with Hollywood:

Six months of my life were spent in creating a dream the shape and sound and color of which had never been seen on television. The dream was called The Starlost, and between February and September of 1973 I watched it being steadily turned into a nightmare.

The late Charles Beaumont, a scenarist of unusual talents who wrote many of the most memorable Twilight Zones, said to me when I arrived in Hollywood in 1962, “Attaining success in Hollywood is like climbing a gigantic mountain of cow flop, in order to pluck the one perfect rose from the summit. And you find when you’ve made that hideous climb... you’ve lost the sense of smell.”

In the hands of the inept, the untalented, the venal and the corrupt, The Starlost became a veritable Mt. Everest of cow flop and, though I climbed the mountain, somehow I never lost sight of the dream, never lost the sense of smell, and when it got so rank I could stand it no longer, I descended hand-over-hand from the northern massif, leaving behind $93,000, the corrupters, and the eviscerated remains of my dream.

Ellison’s parting words to writers is just as applicable to software engineers:

It is the writer’s obligation to his craft to go to bed angry, and to rise up angrier the next day. To fight for the words because, at final moments, that’s all a writer has to prove his right to exist as a spokesman for his times. To retain the sense of smell; to know what one smells is the corruption of truth and not the perfumes of Araby.


Love & Po-Mos

In 2006, SlashDot ran an article Love Under a Microscope which asked the question “what is love”? I posted the following:

The Greeks had four words for love: agape, phileo, eros, and storge. We English speakers seem to conflate everything around eros and thereby miss the point. Love is the act of the will whereby another individual is placed ahead of yourself. That's why Christians are commanded to "love their enemies" and why the Apostle Paul wrote that the greatest act of love was when God gave His Son as the sacrifice for the sins of the world.

No naturalistic scientist could ever write:

    Love is patient; love is kind; love is not envious or boastful or arrogant
    or rude. It does not insist on its own way; it is not irritable or resentful;
    it does not rejoice in wrongdoing, but rejoices in the truth.
    It bears all things, believes all things, hopes all things, endures all things.
    Love never ends.

What I found interesting was this comment by a reader:

Wonderful post. I love the idea that "love is an act of the will." We mostly think that love is ultimately fulfilled only by the acts we undertake between the sheets. That love can be a deliberate act of the will is shocking to most of us "post moderns."

If the post moderns don’t know this, perhaps it’s because the Church has forgotten Paul’s words to the Christians at Corinth: “And I will show you a still more excellent way.”

Experts and Novices

What distinguishes experts from novices is not that they make [...] choices, but that their choices will provoke fewer questions and their choices will tend to stand up better to those questions that do come along afterward.

--Kent Pittman


Citizen, what do you have to hide?

If you're doing nothing wrong then you have nothing to worry about” is a flimsy rationalization. I'm doing nothing wrong, but I nevertheless worry about the government doing something wrong. Governments exist to increase their power -- at the expense of freedom. Therefore, government should be limited wherever and whenever possible.

C. S. Lewis, for Mike

In Sunday School this morning, Mike M. remarked on the evanescence of earthly government, which reminded me of these words of C. S. Lewis, from The Weight of Glory:

There are no ordinary people. You have never talked to a mere mortal. Nations, cultures, arts, civilizations--these are mortal, and their life is to ours as the life of a gnat. But it is immortals whom we joke with, work with, marry, snub, and exploit--immortal horrors or everlasting splendours. This does not mean that we are to be perpetually solemn. We must play. But our merriment must be of the kind (and it is, in fact, the merriest kind) which exists between people who have, from the outset, taken each other seriously--no flippancy, no superiority, no presumption. And our charity must be real and costly love, with deep feeling for the sins in spite of which we love the sinners--no mere tolerance, or indulgence which parodies love as flippancy parodies merriment. Next to the Blessed Sacrament itself, your neighbor is the holiest object presented to your senses. If he is your Christian neighbour, he is holy in almost the same way, for in him also Christ vere latitat, the glorifier and the glorified, Glory Himself, is truly hidden.


Lewis, Thoreau, River Tam, and Politics

I will probably comment very little on politics. The antics of the kingdom of man, which is destined for the dustbin of history, cannot match the eternal appeal of the kingdom of God. Nevertheless, with an election four days away, I am reminded of this quote from C. S. Lewis:

Of all tyrannies, a tyranny sincerely exercised for the good of its victims may be the most oppressive. It would be better to live under robber barons than under omnipotent moral busybodies. The robber baron's cruelty may sometimes sleep, his cupidity may at some point be satiated; but those who torment us for our own good will torment us without end for they do so with the approval of their own conscience.

I mentioned this to a co-worker earlier this week. It reminded her of this saying of Thoreau:

If I knew for a certainty that a man was coming to my house with the conscious design of doing me good, I should run for my life ...

This sentiment is echoed by River Tam in the movie Serenity:

Teacher: So with so many social and medical advancements we can bring to the Independents why would they fight so hard against us?

River: We meddle.

Teacher: River?

River: People don't like to be meddled with. We tell them what to do, what to think. Don't run, don't walk. We're in their homes and in their heads and we haven't the right.

We're meddlesome.

Unfortunately, having turned away from the Heavenly Shepherd, we look to a supposedly omnicompetent, hopefully benevolent government to take care of us. Professing to be wise, we have become fools...


The Cost of Developing Software

Well, it has been said over and over again that the tremendous cost of programming is caused by the fact that it is done by cheap labor, which makes it very expensive...

Dr. Edsger W. Dijkstra


Social Security Software

No, this isn't about the code the runs the Social Security Administration. Alan Perlis once said,

In the long run every program becomes rococco - then rubble.

Fred Brooks, in The Mythical Man Month, expands on this idea:

All repairs tend to destroy the structure, to increase the entropy and disorder of the system. Less and less effort is spent on fixing original design flaws; more and more is spent of fixing flaws introduced by earlier fixes. As time passes, the system becomes less and less well-ordered. Sooner or later the fixing ceases to gain any ground. Each forward step is matched by a backward one. Although in principle useable forever, the system has worn out as a base for progress. ... Program maintenance is an entropy-decreasing process, and even its most skillful execution only delays the subsidence of the system into unfixable obsolescence. [Anniversary Edition, pg. 123]

While inevitable, one can either struggle against the eventual collapse of the system, or hasten its end by poor engineering and management practices. One can also fail to prepare by not working on the necessary replacement. Social Security Software, then, is participating in the collapse of the system, while hoping it fails after your time.

Speech Codes

Asserting a right that you do not have (to not be offended) over a right that someone has (free speech) is to deny the US Constitution.
-- wrf3, 2 Feb 2008