Breaking

Wednesday, 20 January 2021

The Origin of Cut, Copy, and Paste

I’m always fascinated that someone designed just about everything you use, no matter how trivial it is. The keyboard you type on, the light switch you turn on, even the faucet handle. They don’t just spontaneously grow on trees, so some human being had to build it and probably had at least a hazy design in mind when they started it.

Some things are so ubiquitous that it is hard to remember that someone had to dream them up to begin with. A friend of mine asked me the other day why we use Control+X and Control+V to manipulate the clipboard almost universally. Control+C for copy makes sense, of course, but it is still odd that it is virtually universal in an industry where everyone likes to reinvent the wheel. I wasn’t sure of the answer but figured it had to do with some of the user interface standards from IBM or Sun. Turns out, it is much older than that.

Back When CTRL-C Only Meant Break

If you recall, though, Control+C hasn’t always been synonymous with copy. Control+C was well known as a break command in TOPS-10, CP/M, MSDOS, and several other systems. This might have been because C was for “cancel” or it could be because the ASCII for “end text” is Control+C. So I knew there was some point in relatively recent history where the control keys took over the world.

Then again, the clipboard itself isn’t that old and it also needed inventing. Pentti Kanerva, from Stanford, was using delete buffers to hold text for later, a technique that caught the attention of Larry Tesler. Larry worked for Xerox PARC — the people who more or less invented the graphical user interface. In the book, Designing Interactions by Bill Moggridge, there is mention that the team was already working on cut and paste of elements as part of a desktop publishing application for Ginn and Company, and they knew of Kanerva’s work. It was a natural idea to extend the cut and paste concept to text.

Early PARC

The only problem with the original system was the wording of “delete” sounded too permanent. Early PARC software sent deleted things to a trashcan and set cut things to a wastebin. Talk about confusing. The new cut and paste metaphor also used fewer keys than Kanerva’s system.

It may seem obvious now, but the right way to move text around was highly debatable back then. While some designers favored the cut/copy/paste method we have now, others wanted a move/copy/delete/transpose. This is more akin to how some older systems like WordStar did things. The commands operated on a block of text on the screen with no intermediate step. Even the ideas of putting the cursor between letters, the shape of the cursor was not obvious at the time.

The Xerox Alto was ahead of its time and it offered a graphical text editor, Gypsy. This 1975 word processor did allow cut and paste as we know it. However, the commands used the Escape key. As far as I can tell, the actual control commands we think of today originated with the Apple Human Interface Standard.

The Apple Standard

Bruce Tognazzini, otherwise known as Tog, was an early and influential Apple employee and wrote much of the original standard for the 1984 Macintosh. However, there were many people involved and you can catch a video of Larry Tesler and others discussing the early history of Apple GUI and the PARC influence on it, below.

According to the video, the team knew that people would use cut, paste, copy, and undo quite a bit and they wanted a standard way to do that across applications. The official story is that C was for copy, X looks like a crossout or a pair of scissors, and V looks like an insertion mark. The Z just happens to be the next character in that cluster–we might well have had Control+B as undo.

CUA

IBM CUA from 1988 via the Internet Archive

It is hard to remember, but Apple didn’t always set market direction. IBM’s Common User Access (CUA) standard came out in 1987 and — not wanting to conflict with Control+C as a break character — defined different characters for cut, copy, and paste. This was three years after the Apple document and early versions of Windows used these keys. However, the Control+C,V,X trinity was so prevalent, that Windows eventually allowed both sets of characters. Today, programs like emacs support CUA mode which allows for Control+C,V,X even though those weren’t in the original CUA standard.

Unix would see a similar effort to standardize on the Common Desktop Environment as part of the Common Open Software Environment in 1993, nine years after the Apple document. By that time, most programs had already adopted what we think of as normal keystrokes.

Our Designs

Today it seems only natural how the clipboard works and the keystrokes you use. Programs that buck this trend — I’m looking at Eagle — take a lot of flack for making you pick a command like copy and then making a selection.

Still, I’m struck by how many times a casual decision winds up becoming a big thing. Which way do electrons flow? How many buttons should a mouse have? To their credit, the Apple team seemed to understand that even tiny decisions could become a big deal and they put a lot of thought into things.

What causal decision will you make this week that will have a far-reaching impact? Most of us won’t get a chance to set the keystrokes used by everyone on the planet. But how many times have you written a quick shell script that turns into something used for years, or made up a quick cable that becomes a permanent part of a lab setup? Something to think about before your next causal hack.



No comments:

Post a Comment