My wife asked me and my son to change some carpet that had two desks and a chest of drawers on it. I was not enthusiastic, my son even less so. Took two hours or so, moving the furniture around in a Japanese apartment with limited space.
My son was making quite a bit of fuss about the imposition on his time, so I mentioned that computer programming often has a similar sort of problem to solve -- updating or changing software underneath live data in a limited space without damaging things, with minimum interruption to access.
My wife heard that and asked a very interesting question.
Who was the first programmer? Do we know?
One standard answer to that is Ada Lovelace, Charles Babbage's correspondent. From what I have read, I would include Babbage as well, and lean towards calling their work an early example of what we now call "pair programming".
Babbage's differential and analytic engines are said to be the first known devices in which direct corollaries to the elements of modern computers are found. However, they are not the first mechanical computers. As I have tried to demonstrate elsewhere, computing devices have been in use for all of recorded history, and some probable examples pre-date our extant records.
The engineers and artisans who have created these devices built programs into their structure. The diameter of a cog, with the number of teeth and their position, the lengths and orientations of rods and levers, the structure and design of these devices constitute their programs. Thus, Da Vinci was a programmer. Those who constructed astrolabes were programmers, and I would include the designers of Stonehenge.
Re-programmability is not the only yardstick of computing devices, nor is it required for a programmer to do his or her job.
Babbage is said to have conceived his differential engines in response to perusing a table of logarithms with known errors. That table was prepared with the assistance of a computer system, but the computers in the system were humans, computer being, in essence, a task or job title. A mathematician with advanced understanding formulated a series of simple steps which less skilled mathematicians followed to construct the tables.
Defining the steps and coordinating the system were essentially programming tasks. (And humans are definitely re-programmable in this sense, for what it's worth.)
With this concept in mind, we can safely say that any specification of a first programmer, short of God, Himself, is arbitrary.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Courtesy is courteous.