COBOL apps, mainframes, and screen scraping
There are plenty of bits of zombie technology in the stream of things I'm about to describe, so enjoy: often, businesses and organizations are running crucial processes not on shiny new computer equipment programmed with the latest object-oriented application frameworks, but on old mainframes running COBOL programs. And now it's years later, and it's hard to find someone who can really get at the guts of that business logic, and it's working fine, so why mess with it, but you need the modern computers that sit on your current employees' desks to interact with it, you know? Back in the day you could tell your workers to just walk down to the mainframe room and use the terminal, but now they expect to have everything handed to them right in their cubicle. But setting that up can be tricky, as this nicely anxious passage from Wikipedia explains:
As a concrete example of a classic screen scraper, consider a hypothetical legacy system dating from the 1960s -- the dawn of computerized data processing. Computer to user interfaces from that era were often simply text-based dumb terminals which were not much more than virtual teleprinters (such systems are still in use today, for various reasons). The desire to interface such a system to more modern systems is common. A robust solution will often require things no longer available, such as source code, system documentation, APIs, and/or programmers with experience in a 50-year-old computer system. In such cases, the only feasible solution may be to write a screen scraper which "pretends" to be a user at a terminal. The screen scraper might connect to the legacy system via Telnet, emulate the keystrokes needed to navigate the old user interface, process the resulting display output, extract the desired data, and pass it on to the modern system.
We suppose this is less zombie than Frankenstein's monster -- various parts hacked together to form a shambling whole, a ghastly imitation of the beautiful multi-system applications you learned about in your programming classes. And yet we're willing to bet that almost all of you have had to interact with one of these systems at some point, with no real end in sight. (Yes, there's even a terminal emulator for the iPad.)