Last blog, I wrote about using C# to get some of the benefits of F# partial function application. In submitting the blog, I was asked by Rick C. about the phrase “newing up”. That got me thinking about the jargon we use day to day and how it comes to be.
When I was in high school, I did a small amount of electronics work with my dad. He introduced me to perfboard, which we used for making small circuits by using a wiring pen to make circuits – bread-boarding he called it. From that point on, I had internalized the jargon. I never really thought about it much – it was just a word. It’s kind of like how most people don’t think about the word ‘handicapped’ which derives from a lottery game called “hand in cap”. My after school job was working at Bell Laboratories for Max Mathews as a violin builder. The necks of the violins were made from glued-up pieces of poplar. Max sent me to the Bell Labs stock room with a shopping list of things I’d need. The list included “bread boards,” which I found in the stock room. They were exactly that: bread boards. Large wooden boards for rolling out bread dough and which were repurposed by electrical engineers for making prototypes. In my case, I cut them up and, after much carving and other work, turned them into the final product.
Yup, that’s me circa 1982.
And in software engineering we make up jargon all the time. We use metaphor, make up new words, and repurpose old words. We talk about visitors, enumerators, events, and so on deftly. Sometimes the origin isn’t always clear. My friend Jim Blandy was given a task to port the text editor sam and was trying to figure out some of the code. Completely out of context, he asked “Hey Steve, what’s a rasp?” I answered simply, “a file with holes in it.” This was a forehead-slapping moment which Jim no doubt punctuated with a lot of laughter. He had been trying to work out the meaning of the Rasp struct, which was intended to be a representation of a partial file – a literal file with holes.
And so we come back to the phrase “to new up”. I consulted a friend of mine who is a dictionary researcher was unable to shed deeper light on the origin of the phrase beyond the earliest I’d heard it which was in 2008, spoken by Anders Hejlsberg at the PDC 2008 conference as a substitute for the word “instantiate”. The first I saw the keyword ‘new’ in a programming language was in Pascal, but compared to a typical object-oriented implementation of operator new, the Pascal’s version is little more than syntactic sugar giving the language type-safe memory allocation. I had expected it to be an older keyword, considering that the English word ‘new’ is very old, but didn’t find earlier programming languages that use it. Heard it earlier than that? By all means, let me know.
About the AuthorFollow on Twitter More Content by Steve Hawley