It’s hard to imagine now, but there was a time before the existence of the computer “mouse” and even word processing programs. Back in these ancient times called the 1970s, users accessed their computers via a command line to write text, code software, issue commands and view results. If a user wanted a copy of what was appearing on the computer terminal, then they simply redirected the character stream to a file (fprintf) or postscript printer (printf or sprintf). Of course, such activities required a basic understanding of the Unix operating system to issue the proper command in the right form, for example:
int printf(const char* str, ...);
Then came Larry Tesler and his work with Tim Mott to create a word processor called Gypsy which coined the terms of “cut,” “copy,” and “paste.” This work was done under the auspices of the famous Xerox Palo Alto Research Center (PARC), where the mouse-driven graphical user interface (GUI) was developed. Many of the creations that came out of PARC found their way into Steve Jobs early Apple Macintosh computer. Sadly, Tesler died on February 17, 2020, but his legacy lives on.
Today, everyone who uses a computer takes the ability to cut, copy and paste for granted. These simple features have allowed computer workers to be amazingly productive. Sadly, plagiarists have the same advantage. But for software programmers, there is a darker side to the copy-paste feature, namely, the dangers of duplicate (potentially bad) code.
“A young or even experienced software programmer…working in a big company…may not know if other programmers are creating similar code in parallel,” explained Cristian Amitroaie, CEO of AMIQ. “So, they develop the same code over again although maybe slightly different. Now you have code duplication in the overall code base.”
Duplicate code is not the only problem with copy-paste activities. To learn more, check out the video interview below.
John Blyler is a Design News senior editor, covering the electronics and advanced manufacturing spaces. With a BS in Engineering Physics and an MS in Electrical Engineering, he has years of hardware-software-network systems experience as an editor and engineer within the advanced manufacturing, IoT and semiconductor industries. John has co-authored books related to system engineering and electronics for IEEE, Wiley, and Elsevier.