programming is terriblelessons learned from a life wasted

The price of Reliability

I think there is an opportunity to make consumer software that doesn’t shit itself, or that if we don’t move to highly reliable software, we’re doomed.

“A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable”

With the advent of ‘multicore’ and 'cloud’ and the inevitable ubiquity of computing, we’re moving to a world where data lives on different machines, and processing happens across cores— failure is rampant and destructive.

For the existing real time developments, programmer time is cheaper than run time. it is better to make the programmer do more work than to have something fail. Almost everywhere else, programmer time is at a premium. It simply isn’t economical to develop reliable software.

I’d like to think that HFT will lead to popular adoption of real-time constraints and techniques, but I have the feeling it will end up like computer gaming, where fast is almost universally better than correct.

Another hope might be academia, but much of the focus is on program verification, rather than reliability. Well typed software will eliminate some failure classes, but it doesn’t give you robustness. Mainstream academia worries about writing correct programs over programs that handle failure. Paxos just isn’t as cool as Hindley-Milner.

Really, we don’t know how to write and maintain software, let alone reliable software, without throwing vast amounts of time or money at the problem. when we come up short we’re left with the inevitably bug-ridden fruit of our labours.

I don’t think we’re going to see a renaissance of reliable software, until software failures become expensive, or reliability is cheap.