Wednesday, July 01, 2009

Legacy Code

In computer technology, legacy code is stuff left over from earlier generations -- sometimes from the earliest days of computer programming in the case of mainframes. However, even microcomputer operating systems such as Windows often have substantial amounts of legacy code. Usually it results from attempts to make sure that new versions of software remain backward-compatible with earlier hardware and software -- for instance, so that older versions of a program will still run on the new operating system. Other times it is simply the result of programmers carrying over old code unexamined, either out of laziness or more frequently the result of deadline pressure.

Because I've been working on the story of the Lanakhidzist Revolution since I was in Jr. High, I've got almost thirty years worth of layers upon layers of ideas. The earliest versions were quite crude and simplistic, with no real understanding or appreciation of the societies of which I was writing (for instance, I really didn't appreciate the difference between Georgians and Russians, and the scenes set in Gori had the characters having Russian names and eating typical Russian foods), and even in the late 80's when I was studying Russian at the University of Illinois at Urbana-Champaign and had help from one of the professors, who read a lot of my manuscripts from that period, I still really didn't know how to use sources, or to weave details into the fabric of a story to bring it to life, so the writing was pretty bad.

Not to mention that a lot of the basic ideas still reflected a very youthful view of the world, one that hadn't been tempered with experience in the workplace. So now, as I'm working on Children's Crusade, my current version of the story of the Lanakhidzist Revolution, I'm constantly having to reconsider elements that I assumed would always be integral parts of the story. Should they remain, or is the legacy code a drag on the story that needs to go by the wayside?

For instance, I've corrected a lot of the mis-formed names that go back to the earliest layers of the story, figuring out what the proper forms of them should be (although in several places I've put visibly fake names in the place of the names of actual historical persons who are still living in our world and would obviously have a major role in that universe's fall of the Soviet Union too, such as Mikhail Sergeevich Gorbachev). But some of the relationships and the technologies that go back at least to the UIUC period now seem a little hard to support, at least not without some major changes in how they're presented.

No comments: