Easy to use, virus free, secure: Aaah, how I miss my MAINFRAME
Back when installing drivers was someone else's problem
All that code wrote last night before checking it in? Well, your dying C:\ ate it
Working locally on a desktop workstation means being excluded from various safety nets that are provided by centrally managed networks and were literally unavoidable with mainframes. The most obvious of these is backups. Since there was no hiding from the central storage devices connected to a mainframe, everything you did, every line of code you wrote and every database record you stored, was backed up at least nightly and sometimes as often as hourly.
Today many users and even developers store data, whether work-in-progress or live applications and databases, on local C: drives. Even “temporary” storage of files on a local drive has a way of becoming permanent through neglect or laziness. Needless to say, having one un-backed-up copy of any file is living on the edge: One wrong keystroke on the command line is all it takes to vaporise a lot of work before you could check it into the version control system.
One under-the-radar use of desktop workstations that is the bane of system administrations and tech managers everywhere is the installation of unauthorised software.
The most obvious risk is malware. Viruses and worms unintentionally installed on your machine and possibly spread from there throughout the corporate network. (This brings together the worst of both worlds: the ability of PC users to load software directly onto their own machines and the ability of malware to cause widespread damage when installed on a networked computer.)
Far less devastating, but still a potential source of problems if you’re part of a much larger IT group, is the introduction of legitimate software that deviates from the company’s standards. This is not to advocate blind obedience to the arbitrary, if not outright ridiculous, rules often set down by management. But when everyone at your firm is using CVS for source control and you (or even you and three colleagues) make an impulsive decision to switch to Git, chaos ensues.
Is that a USB stick in your pocket?
A more common situation is one where a developer loads an obscure and possibly questionable software package or compiler onto a local PC. This can lead to ugly infrastructure splits, where one person has unilaterally decided to develop an application using a pet language or package that no one else in the group knows or, worse, introduces incompatibilities with other apps. Naturally this situation can also arise with networked workstations, where the unauthorised software is downloaded from the web and installed on the corporate network—obviously a much more common and easier approach than loading software locally from a CD or flash drive.
But with mainframes, the in-house machine was effectively walled off, and you were required to go through proper channels to get something like a new compiler installed. A potential bureaucratic nightmare, certainly, but one that at least ensured people were adhering to standards and using well-tested software.
Just as local drives allow PC users to introduce arbitrary software and data onto a corporate network, they also allow the opposite. If you’re a system administrator concerned about the possible theft of sensitive code or information, the ability of users to download gigabytes of data onto a USB drive with no effort probably keeps you awake at night. Again, theft or unauthorised distribution of code is far easier via email or FTP, though any competent network administrator can detect that. But either way, with a network that is essentially wide open to the outside world, and ports that allow data to be copied to a device smaller than your palm, pretty much any collection of bits can leave the building easily. Score another point for mainframes.
The development of tiny, powerful, and fully user-configurable computing devices (and, for that matter, the microchip itself) represented a leap forward that no reasonable person would want to undo, and I admit that my defence here of the glory days of the mainframe is somewhat tongue-in-cheek. Though I do occasionally get nostalgic for the gargantuan Amdahl 470 I developed systems on at my first job.
However, it’s silly to think technology can regularly take five steps forward without even one step back. There were benefits to working on mainframes: a full-service environment where round-the-clock teams took care of virtually all support, allowing application developers to focus on their real work; the freedom to be blissfully unaware of how the 20,000-kilogram computer, six-foot-tall tape drives, and other monstrosities in the computer room operated; and, mostly, enforcement of various kinds of discipline in building and maintaining code that are often non-existent today.
There’s no reason developers can’t be just as disciplined in the post-mainframe era, but rather than being forced to by the rigid topology of the development environment, they have to rely on themselves and their human colleagues to keep each other honest. Good luck. ®