So, Fox cancelled Drive.
I watched the first episode, but now I'm not going to watch any of the others. It's no Firefly, but it is something I'd like to see where they go with it; there's a lot of potential there for a good four or five seasons.
What mystifies me is why Fox bothers with this stuff. Clearly, they want a show that will be a top 10 hit overnight.
In my continuing series on why software is special, motivating writing a book about it, this post discusses how software is chaotic.
Here I refer to the mathematical definition of chaos, which I will define as: "A chaotic system is one in which small changes in the initial conditions can cause large and unpredictable changes in the system's iterated state." This is based on the mathematical definition(s), but simplified for our purposes. It's not just a word, it's a quasi-formal concept.
Do you live in civilization?
Like so many such questions, the answer entirely depends on your definition of "civilization"; once you've accepted the definition, the answer is obvious. Another of my favorite examples is "Is X art?"; once you accept the definition of art, the answer is usually obvious. It's the accepting of a definition that's the interesting part, not the question itself. Often it's not even meaningful to try to say which definition is "
In 2007, with a well-loaded Linux desktop installation, my /usr/bin is 257 megabytes, with debugging off and dynamically-linked libraries not contributing to that count. My particular copy of the Linux kernel 2.6.19 with certain Gentoo patches has 202,381,268 bytes of C code alone. If I'm computing this correctly, at a constant 100 words per minute (5 chars/word), that's 281 24-hour days just to re-type the C code in the kernel.
I've gone on before about how distrustful of metaphors I am, and it seems like every year I'm getting more distrustful of them. Either deal with the thing as it is, or just give up understanding it. Metaphors lead to the beginning of understanding, but no farther.
Programmers aren't immune to the metaphor sickness, and if there's one metaphor you can expect to see trotted out at the earliest available opportunity, it's the "programming as construction" metaphor. This metaphor has been skillfully deconstructed many many times before, but I'm going to deconstruct it from the opposite angle... what if construction was like software engineering?
I've chickened out on going to see The Last Mimsy. Subsequent reviews make me fairly convinced that the scriptwriters completely missed the point of the original story, or simply didn't care, and took the opportunity to turn a story of wonderment into yet another polemic about how the world is doooooomed. (Sure, in the movie it's saved in an utterly unbelievable way, but since that's not going to happen in the real world, it's just another Doomed World story, in the vein of Spielburg's AI.
A heads up on what's coming with the Programming Wisdom series: Since it's both a "book" and a series of "blog posts", some of the writing priorities are different than they might otherwise be.
The next few posts are primarily intended to motivate the work, so as standalone pieces they are less than compelling, although they still have some interesting points, I think. After the next three or four posts, it starts getting meaty.
Engineers of other disciplines often take offense at the claim that software is uniquely difficult. They do have a point. As pointed out by Fred Brooks in hyper-classic The Mythical Man Month, one reason software is hard because software is so uniquely easy.
We fundamentally built on top of components that have reliability literally in the 99.999999999% range and beyond; a slow 2GHz CPU that "merely" failed once every trillion operations would still fail on average in eight hours at full load, which would be considered highly unreliable in a server room.
The first step to attaining wisdom is to understand why special "programming wisdom" is needed in the first place.
It's easy to get the idea that software is easy to create, because it is partially true. Computers get more powerful every year, and we trade in on that power to make programming easier. Every year results in more and better libraries. Changing software is very easy, and it's relatively easy to test compared to an equivalently-complex real-world object.
Expanding on my quote by John Stossel: I know a lot of people accuse the Bush Administration of trying to build up fear and then take advantage of it.
The latter point is partially true, but the more I think about it, the more clear it is that the fear is almost entirely a media construct. The proof is that fear of (direct) terrorism is only one particular example of a pattern of over-blown media-induced fears, including death by plane, gun violence (for most people), and child kidnapping.