World Builder: The Recovery and Archeology of Old Programs
In 1983, when personal computers were precious, BASIC the language of the hour, and 64k a lot of memory, small magazines with program listings were common. One of the best of these was Creative Computing, unfortunately now deceased. In it they ran an article by Steven Kimmel, a science fiction writer, who released a program to help science fiction authors create reasonable human habitable worlds.
This program made a significant impact on me. I suspect it was the choice of language, the bits of speculation, the fact that a small interactive program made some exotic possibilities come alive. I translated the program at the time into Commodore 64 basic and then lost my version over time.
These days Basic isn't the lingua franca anymore. More common and portable these days are the interpreted languages Perl, Python and Ruby. Interpreters for these languages can be moved from operating system to operating system, and for the most part, carefully written programs can be run on any of the OSs without change. Further, the newer languages have more powerful features than the original microcomputer BASICs. And since people generally download programs in the 21st century as opposed to typing them in, the programs can be made larger.
Partly out of nostalgia, and partly out of an argument between old friends about the nature of carbon dioxide, circumstances led me to consider getting a copy of this program and running it again -- Venus is, of course, test case number 1 for the powers of carbon dioxide to heat things up. However, my copy of the magazine was old, and the BASIC listings on the Internet had bugs due to scanning artifacts. I had been reading Mark Dominus's "Higher Order Perl" and after some thought felt it would be a good exercise in using a dispatch table.
I've discussed parts of the programming issues on Perl Monks. And I've contacted Steven Kimmel and asked permission to use his code (he has granted that permission). So, I present a copy of WorldBuilder in Perl here. Instructions for installing a version of Perl are given here. And a zip file containing the source code and the installation instructions are here.