By Ray Mullins, Sr. Software Developer, Trident Services, Inc.
Good day. Buenos días. Bonjour. 美好的一天. Gudden Dag. Добрый день. नमस्ते. יום טוב. يوم جيد.
Over millennia, humans have come up with many ways to communicate, by making noise or making marks on an object. The English term for this is “language,” which itself comes from a Latin word, “lingua,” which means tongue (as well as language). Languages started as verbal communication, eventually transitioning into written forms that became just as varied as the spoken forms.
One task made easier by communication is to give instructions, whether to another human or to a machine. An early example of directing a machine via instructions is the Jacquard loom, predating Charles Babbage’s first machine explorations by almost two decades. Babbage’s first description of his Analytical Machine used Joseph-Marie Jacquard’s punched cards as the programming interface.
Today’s computers—IBM Z, Intel/AMD, ARM, Unisys, Bull, et al.—use Von Neumann architecture. This means that instructions are stored in and retrieved from the machine’s memory. Each operation code tells a control unit (nominally a central processing unit or CPU) to perform a process—even if that process is to pass information to an auxiliary processor, such as a graphics processing unit or an I/O processor. Just as we humans have come up with many different ways to communicate with each other, we have come up with many ways to impart direction to a computer.
A significant majority of the educational material that SHARE offers, whether in sessions at the semi-annual events, in vendor-sponsored webinars, or in editorial content, reference processes that use programs written in a computer language. Therefore, it’s no surprise that computer languages have been a very important part of SHARE during its over-60 year history, as well as other computer user groups.
Periodically over the next year or so, I will be writing about computer languages—from the earliest days when there were real physical bugs in the machines; through machine language and its natural follow-on assembler language; to compiled languages, interpreted languages, and scripting languages; typed and typeless; symbolic and wordy. I will discuss historical aspects and modern trends, what general process types are best for a language and vice versa, and what lies ahead in the future for getting the most logical thing invented by man to do exactly what you want it to do, which sometimes isn’t what you told it to do. The DWIMNWIW (Do What I Mean Not What I Wrote) interface seems, unfortunately, very far off in the future, if even it will ever come to fruition.
Our first installment is scheduled for the December issue of SHARE’d Intelligence. I look forward to writing these articles, and I hope you are as well to reading them. The Editorial Advisory Committee also welcomes any contributions from the readership for this series; please contact the SHARE editor, Kristin Fields (kfields@share.org), for more details.