September 16, 2015
MarkBernstein.org
 

Old Software

Moses Malone is dead.

Dave Winer complains that we can’t run software from just 25 years ago.

We can still play music written by people who lived in the 1700s. But for some reason we can't run software written 25 years ago. Technically, if we wanted to develop in a way that made this possible, we could. But each generation apparently believes there's not enough value in the software written by previous generations. Which probably has something to do with why so much know-how is lost every decade or so.

Dave is insightful, intelligent, observant – and wrong.

This summer, I wrote Storyspace again. The original Storyspace was written by Jay Bolter and Michael Joyce and John B. Smith in the mid-1980s, we ended up publishing it in 1991. It was written in Pascal. Not a line of the original remains in Storyspace 2 or Storyspace 2.5. Not a line of Storyspace 2 remains in the new Storyspace 3.

Writing Storyspace 3 was easy. Almost all the heavy lifting involved gratuitously eliminating constraints in the old Storyspace that would be inconvenient or simply embarrassing to preserve. Storyspace used to have lots of rigid limits on the length of strings; the young Jay Bolter just didn’t bother with variable-length buffers. Storyspace used to use a file format optimized for rapid unpacking from incredibly slow disk storage, a format that was vulnerable to losing everything, without hope of recovery, if a single bit was written or read incorrectly. Replacing that with XML was a good idea, and added a day or two.

“OK, Bernstein, if it was easy, where is it?” While I was polishing the brass, I figured out a way to extend the underlying formalism to encompass sculptural hypertexts, as well as the elements we know as “interactive fiction,” and to do so without changing the original Storyspace formalism and without setting a mode switch. Implementing that was fairly straightforward, as it turned out, but documenting it has been a a bear. Soon.”

Do you have a HyperCard stack you really, really want to run. Come visit, and we’ll run it. Want to run it on your machine, which won’t run HyperCard? Send me the stack and a check, and I’ll write it for you.

Why don’t we write software that will run 25 years from now without any effort or expense or bother?

We don’t write software that way because Moses Malone is dead.

Time’s winged fucking chariot is why we don’t write software that old way. We have things to do, there’s not enough time, and the old way we wrote software was clumsy and slow. It didn’t seem slow to us back then: we didn’t know better. Back then, Dave, you and I were writing English prose without using the letter “e”, and we were good at it – you were better, OK, but we were both pretty good. Sure, Turbo Pascal was dandy, and Think C was terrific, and Zmacs was a revelation. Give me Xcode and the STL and ruby any day, thanks.