Thursday, December 07, 2006

Programmer's Almanac: Dec 9, 2006

Back on December 9th in 1928, the mother of all programmers, Grace Murray Hopper, was born. A mathematician and gadget freak, she was literally one of the first computer programmers.

In 1943, Grace Hopper wrote programs for the Mark I Calculator, an electro-mechanical computer developed by Harvard/IBM that was the first fully-automated computer requiring no human intervention (once programmed). The Mark I was nothing like today's computers: It was 51 feet long and 8 feet high, and five feet deep. It utilized paper tapes, rotating shafts, clutches and other eletromechanical components.

We haven't found record of that first program, although it's rather certain that the program didn't print out: "Hello, World."

There's a story about Dr. Hopper finding a moth in one of the circuit boards of her computer -- but that's not the origin of the software "bug." It's thought that Thomas Edison used the term "bug" for glitches in electrical systems as early as the 1870's.

Grace Hopper pasted that particular bug into her engineering notebook, and that may have been a first, though:

















Dr. Hopper is credited with the invention of the idea of using a human readable language for writing software, which is then converted to machine language. Today this is known as a compiler. At the time, many people believed a computer could (and should) only be programmed in machine language. In the 1950's, this idea led her to create FLOW-MATIC, an English-like language for data processing that was a precursor to COBOL. Source code in FLOW-MATIC would have looked like this:

COMPARE PRODUCT #A WITH PRODUCT #B.
IF GREATER, GOTO OPERATION 10.


Of course, as the saying goes: "The pioneers get the arrows, and the settlers get the land." So, we may know who to blame to for the Dijkstra's dreaded GOTO statement, and (luckily) for the later rise of structured programming.

Dr. Hopper went on to a distinguished Navy career, winning the highest peace-time defense award, being appointed to Rear Admiral, and at one point being the oldest person in the Navy.

Dr. Grace Hopper served as a tremendous role model to women in the computing field. Today women are under-represented in computer science, and their numbers seem to be decreasing, especially in comparison to Science and Engineering.

Grace Hopper died in 1992. Today would have been her 100th birthday.

Addendum: Today is also the birthday of the computer mouse.

(c) 2006, Jorge Monasterio


No comments: