• futatorius@lemm.ee
    link
    fedilink
    English
    arrow-up
    16
    ·
    edit-2
    2 days ago

    When I started in software, my first employer was just phasing out punched cards for programming. One of my jobs was to work out how programming would be done using terminals instead of the old workflow of submitting coding sheets to card-punch operators who would then pass the jobs on to operations. Typically you’d find out if your code compiled the next morning. There was a big basket by the computer hall where they’d deposit your card deck and a massive printout on fanfold paper of the job status and (if it went tits up) the stack dump.

    By that time (late 1970s), cards had sequence numbers (usually numbered 10, 20, 30 so you could interpolate a few cards if need be). If you dropped a deck on the floor, you had to carefully gather them back up (so they wouldn’t get bent or torn), feed them into a card sort machine, and wait until the deck was sorted. You could also run a special batch job to clone a card deck, for example if you wanted to box it up and ship it to another location.

    The big challenge with cardless programming was that computer reliability wasn’t great in those days, so you needed reliable persistent storage of some kind. That was generally magnetic tape. Disk drives were way too expensive, and optical disks hadn’t been widely adopted yet. So to save your work, you used tar or some non-/Unix-OS equivalent. There was version-control software, but it was primitive (rcs, which later had svn built over it).

    On the positive side, you could compile and build without an overnight wait.