Hacker News new | past | comments | ask | show | jobs | submit login

Many programmers talk about Ada Lovelace, who was certainly awesome, but should be talking about Margaret Hamilton. Before anyone heard of Dijkstra's work, Hamilton was straight up inventing everything from real, software engineering to properly handling fault-tolerance and human interfaces. Here's what she was doing (see Apollo Beginnings rather than USL):


Her Wikipedia page gives her due credit and shows just how much she and her team pulled off:


Also note the size of that printout of her program. Try to think about how many people make one like that which doesn't fail in the field even when parts of its environment and hardware are failing. Also while using low-level code with little to no tool support on 60's era, embedded hardware rather than a JVM, etc. Margaret Hamilton was the first in the field of high-assurance programming that I've seen. A lot of firsts.

So, I give her credit where possible. The industry should even more as she wasn't a theoretical programmer like Ada Lovelace: she engineered actual software, co-invented many of the best practices for it, deployed them successfully in production, and then made a tool that automated much of that from requirement specs to correct code.

While programmers and industry ignore her, at least NASA gave her positive mention as the founder of software engineering and ultra-reliable software along with the biggest check they ever cut to an innovator:


Where would our systems and tools be if more attention was put into her methods, even just principles, than informal use of C? ;)

Another woman computer science first seldom celebrated is Kateryna Yushchenko, who invented a high-level programming language with pointers in 1955, 3 years before FORTRAN: https://en.wikipedia.org/wiki/Kateryna_Yushchenko_%28scienti...

Sadly, being behind the Iron Curtain was likely a primary reason for her relegation to obscurity.

I didn't know about her either. Thanks for the reference. The Wikipedia page on the language looks like it was hit with some nationalist propaganda: claims credit for all kinds of concepts without backing it up. Her page looks legit, though. I'd like to see English versions of her original work and subsequent papers.

I also like that they tried the automatic programming with algebraic methods. Their approach might be interesting. A few correct-by-construction software and hardware approaches developed here took that approach. DDD toolkit for hardware comes to mind.

Hmm, we need more info on her to see just how much credit she's missing and give it to her.

Meet USN Rear Admiral Grace Hopper:


Inventor of the compiler, early advocate of machine-independent computer languages, creator of COBOL, originator of the verb debugging.

Not really the creator of COBOL, it seems http://cacm.acm.org/magazines/2015/9/191176-innovators-assem... [A¢M paywall]:

> On page 117 Isaacson credits Hopper as "the technical lead in coordinating the creation of COBOL," a hugely important standard language for business programming that was defined jointly by several computer companies. Standards committee work is a difficult thing to dramatize, which is presumably why Isaacson gives COBOL no more than a passing mention, but as historian of technology Janet Abbate recently noted, his omission slights several women who, unlike Hopper, were on the technical committee in question. Among them is Jean Sammett, who made the largest single contribution to the design of COBOL. Sammet has stated that Hopper was "not the mother, creator, or developer of COBOL," an idea Hopper reportedly endorsed by calling herself the "grandmother of COBOL" rather than its creator.

> [...] Sammet has not been forgotten, as a fellow of the Computer History Museum and a winner of the IEEE Computer Pioneer Award, but sits on the wrong side of a growing chasm separating the handful of women chosen for public veneration from those whose names are known only to specialists.

> This is an example of what sociologist of science Robert K. Merton called the "Matthew Effect," the tendency for the most famous person involved in any collaborative project, however peripherally, to be remembered by the public as the key contributor. He named it after a passage in Matthew's Gospel, noting that "unto every one that hath shall be given, and he shall have abundance: but from him that hath not shall be taken away even that which he hath." Over time the famous become more famous, while the moderately well known are forgotten.

There is essentially nothing about COBOL in Sammett's Wikipedia page.

edit: that is not disagreement with your point, but pointing out there may be a deficiency in Wikipedia that needs correcting.

Well-written. I'll certainly look into this further.

Really sorry to rain on your parade, and it certainly doesn't take away from her other great accomplishments, but she really didn't originate the term[0]. It's a nice story though.


As she said, her famous "debugging" story is likely the first time the bug was caused by an actual arthropod.

(A moth in a relay in a truly large piece of big iron.)

I think it's interesting that this folk etymology has had such a long life; it's easy to debunk, and Admiral Hopper certainly doesn't need another feather in her cap, yet it persists.

> and Admiral Hopper certainly doesn't need another feather in her cap, yet it persists

That's how it works with humans - when you have a cap full of feathers, people keep adding more and more.

So true. That's why the internet is full of bogus Thomas Jefferson quotes.

Another great example. I've given her plenty of praise as well. I've always credited her as inventing English-language programming and compilers. Are there any before her mid-1950's work? And that actually worked? ;)

So, Hopper is the first, great programmer that women bring us. Helps lay the foundation for all HLL programming. Hamilton took it to the next step to true engineering practice. Kind of set the bar high. So, she's my main mascot. Hopper's is great, though. Should probably present them all as a group with their contributions to foundations.

Ada Lovelace's story is a jumping-off point to talk about other achievements of women in science, technology, engineering and mathematics. http://findingada.com/ You're quite right that Margaret Hamilton's achievements should be talked about more.

P.S. Happy Ada Lovelace Day!

I see you're point there. Her story did kind of become a meme about women in science in general. I surely don't mind it but think Hamilton's accomplishments are more empowering. And not just to women: anyone trying to deal with the mess that is software.

"P.S. Happy Ada Lovelace Day!"

Back at ya!

> Also note the size of that printout of her program.

That print out is not the source code. I'm pretty sure it's a listing of test results. The Apollo computers couldn't store that much in either (the equivalent of) RAM or ROM.

Hamilton herself says otherwise:

> "In this picture, I am standing next to listings of the actual Apollo Guidance Computer (AGC) source code," Hamilton says in an email. "To clarify, there are no other kinds of printouts, like debugging printouts, or logs, or what have you, in the picture." It's just her and her code.


If she says so of course I'll concede the point. I don't really understand how it can be true, since the recorded specs of the AGC were 4K RAM and 64K ROM. That's only a few pages of text even in assembly code.

There is a scan of the program here [0], which is 1,746 pages. That seems much less than the number of pages in the photo (by maybe a factor of 10 or so?).

If I had to guess, maybe they printed out each revision of the program? Apparently there were seven different versions [1], so if the stack contains all of them, that would account for the difference pretty well.

[0] http://authors.library.caltech.edu/5456/1/hrst.mit.edu/hrs/a... [1] http://www.ibiblio.org/apollo/links.html#Software_manuals_an...

Ok I'll buy that. The claim is "listings of the code" so several iterations of the code is consistent with that, if superficially misleading.

As will I. Over 1,000+ pages of source is believable and still one hell of an accomplishment at the quality level. I still consider the possibility that the stack included specs of successful or error states given the importance of those for a working program. I know she liked including tons of error handling in everything. Most might have done that with tests but she did it in primary stuff. So, there's room for stuff in there that's not pure source as modern developers would consider.

Also before the picture lies this statement - Here's an amazing picture of her next to the code she and her colleagues wrote for the Apollo 11 guidance computer that made the moon landing possible:

I knew I read it was the code somewhere but lacked a link past Wikipedia. Thanks for that one! Original claim stays and remains at elite level it was. :)

> but should be talking about

No reason not to talk about both of them!

I agree. As I told another, I essentially meant that as they're both great. Just more emphasis on the one that invented our field and put it into production nearly flawlessly. A lot more inspiring than even the heavy-hitters from academia because she didn't build "toy" systems. ;)

To be fair hardware failure tolerance comes from Antonin Svoboda. He worked on that from 1951.

I thought I said "fault tolerance" rather than "hardware fault tolerance" to reduce confusion. I failed: inherently confusing I guess haha. To be clear, I was mainly referring to her use of the asynchronous, priority-based model. That combined with self-checking/adaptation and human-in-the-loop, priority displays. Most of what I read mention those specifically as her contributions. Do correct me if she didn't invent any of these or was merely the first wise enough to apply them to production systems. I like keeping the facts straight so right people get credit for building better parts of our field. :)

Thanks for the Svoboda reference as I didn't know about him. His is our vanilla approach for reliability so he deserves credit. Might look up his papers.

> Hamilton received a check for $37,200

Should have been $32,768.

I'll admit I was slow enough to check if AGS had a 32,768Hz oscillator: crystals are a common usage of that number. Then, I realized I was overthinking it, it's HN, and you're probably a programmer. How would you interpret that number? Confirmation with the calculator leads to my final, hopefully-correct answer.

"Should have been $32,768."

No, it should be $37,200 because Ms Hamilton only accepts unsigned integers on her checks. Insists you pay her rather than the other way around. :P

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact