Margaret Hamilton has died(news.mit.edu) |
Margaret Hamilton has died(news.mit.edu) |
Noting Ada Lovelace Day was a few days ago also https://findingada.com/.
But... Margaret Hamilton was one of those forbears. She got the ideas out there; PRIDE just commercialized them and made them palatable to business IT shops.
Why didn't they add her most famous photo in the article!
> Original Apollo 11 guidance computer (AGC) source code for Command Module (Comanche055) and Lunar Module (Luminary099). Digitized by the folks at Virtual AGC and MIT Museum.
Other Moon things of note:
- There are various open RL approaches for lunar-lander the computer game. GitHub topic lunar-lander: https://github.com/topics/lunar-lander?o=desc&s=stars
- They probably should have landed that payload gently on the moon in order to not collapse any existing cave systems in order to develop competency to land the ISS on the moon.
- There is a new orbital deceleration and landing approach for the moon;
- "A rough guide for going back to the Moon" (2026) https://news.ycombinator.com/item?id=49755912 :
> "Earth–Moon transfer via the L1 Lagrangian point using the theory of functional connections" (2026) https://link.springer.com/article/10.1007/s42064-025-0297-x
What a loss!
Tangent: Her LEGO minifig next to the Apollo code is one of my, and my daughter’s, favorites.
https://www.lego.com/cdn/cs/set/assets/blt75c3f3f6b4cb0e7c/2...
Margaret Hamilton Led the NASA Software Team That Landed Astronauts on the Moon - https://news.ycombinator.com/item?id=36720448 - July 2023 (32 comments)
Margaret Hamilton oral history (2017) - https://news.ycombinator.com/item?id=30668338 - March 2022 (7 comments)
An interview with Margaret Hamilton - https://news.ycombinator.com/item?id=20453737 - July 2019 (12 comments)
Grace Hopper and Margaret Hamilton Awarded Presidential Medal of Freedom - https://news.ycombinator.com/item?id=12991524 - Nov 2016 (70 comments)
Profile of Margaret Hamilton, programmer of the Apollo software - https://news.ycombinator.com/item?id=10379904 - Oct 2015 (58 comments)
Margaret Hamilton, lead software engineer, Project Apollo - https://news.ycombinator.com/item?id=8735912 - Dec 2014 (94 comments)
I feel from personal experiences as well as from many close people that often the corporate world really struggles on dealing with talent. And I don't mean autistic savants doing obscure things but relatively normal but very competent people doing actual well based comprehensive business helping work - but you have to do something in a very dumbed down way because the organization is built in a way to only accept small changes to the state of the art.
I stayed at a major chain hotel this weekend and it was a fine stay, the staff was great, but... there were just numerous little tech problems. Like the USB chargers had bad connections so I plugged in my phone overnight and it didn't charge and the next morning I found I had to twist the connector to get it to work. And then when I tried to connect to the WiFi with a Steam Deck [1] it wanted my personal info to join their rewards program, but the complicated Javascript-based dropdown menu to pick a state barely worked and after a minute of screwing with it I was able to pick the wrong state but not pick my real state so I looked up a zip code in that state and entered it.
When I got home I got an email from "no-reply@thathotelchainfoundedbyparishiltonsgreatgrandfather.com" gushing about how they want me to have the perfect experience and how badly they want to hear from me. Like yeah, they want me to call their 800 number and give me a piece of my mind.
It bugs me because I spend my day fixing problems with Javascript apps and I know all about those overcomplicated dropdowns. I get the feeling that if a staff member screwed up they'd be held accountable but people act like technology problems are like the weather and there is nothing we can do about it.
[1] granted an unusual device BUT... I don't travel with a laptop anymore, don't need to connect my phone with WiFi in 5G country and may or may not connect my iPhone. They could have just used the <select> that comes with HTML and it would have "just worked" and today you have so many options to style those with CSS
The thing I've taken away most from my multidecade career is that the hardest part is getting any group of people all marching in the same direction, of their own volition. Everyone's motivations always differ. And leadership that just tries to force one direction almost always fails to consider enough viewpoints. And the alternatives, a deliberate rhizomatic chaos, or cutthroat competition, can be entirely demoralizing.
https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apo...
Such a brilliant person, such an incredible body of work. And yet she indulges in a fun and silly photo shoot. It's a wonderful moment of humanity, and a reminder that the history of computer science is fundamentally about people.
>
> During the early days of Apollo, software was not taken as seriously as other engineering disciplines. Though in fact we had a complex system of systems, we weren’t getting credit for what was a legitimate field. It was out of desperation I came up with the term, to say: “Hey, we’re engineering too.” It was an ongoing joke for a long time. Then one day in a meeting, one of the most respected hardware gurus explained to everyone that he agreed with me. The process of building software should also be considered an engineering discipline, just like with hardware. It was a memorable moment.
The idea that it was believed you could build a reliable and deterministic system without proper engineering methods, today, would get a laugh out of most people in the industry. Interesting how the times have changed.
In Levy's "Hackers" there is a story about late night hacking on the TX-0 that fouled-up some weather simulation code an academic user of the computer was running. After hearing this oral history I believe Margaret was the programmer and the code was for Prof. Edward Lorenz.
Is the link to Edward Lorenz just a guess based on the name and subject matter of the project given in the Hackers extract? Or do you have information from some other source that Margaret Hamilton wrote code for Lorenz?
Edit; It looks like I misremembered the machine. Seems like it was the PDP 1.
It's fascinating she was at the intersection of so many foundational points.
When I started working on this field I dreamt of working on things like that. Not sending anything to the moon, but code that would achieve difficult stuff, challenging tasks, things I would be proud of.
Today I mostly do silly APIs, and with AI is worse and worse... I wonder if there are still jobs where you have to do novel stuff, new algorithms, more like a scientific approach to the code, instead of just deploy the same thing every other company has already done.
Much of the interesting stuff I was able to do in the past was a result of being at the right place at the right time, but others were because I took some wild chances. I realize it can be a privilege to take wild chances and it isn’t an option for many.
When I read this site, or the media in general, AI exuberance and/or doom and gloom is everywhere. I also felt like the opportunities you are thinking about are vanishing. My current job is actually pretty exciting to me; building a new distributed audio software and hardware solution. The hardware element makes it very real; there are no endless cloud compute resources to help out. I guess what I am saying there still seems to be interesting and challenging tasks out there, but the green fields do seem to be vanishing.
But, I also wonder if that ethos was apart of early NASA before they had failures to learn from... Hmm...
The pic here is often people's first intro to her https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apo...
https://en.wikipedia.org/wiki/Margaret_Hamilton_(actress)
I am pleased to have now learned more about the Margaret Hamilton of "software engineering."
The book "The Apollo Guidance Computer: Architecture and Operation" by Frank O'Brien is also good and goes into more technical detail. I'm told he gets a few things wrong, but it's a generally good treatment. There are several videos on YouTube that discuss the AGC at various levels of detail, including the excellent series by CuriousMarc where he and his team restore an AGC into working order, an astonishing accomplishment.
If only!
rest well pioneer.
Edit: this may or may not be true. From what I can find it's probably a combination of both.
IIRC she was running the simulation side of the lab that produced the AGC and LEM guidance software at the time of Apollo 11, then the AGC side, then the unified lab when it was reorganized in 1970.
https://news.ycombinator.com/item?id=50000624
AFAICT the comment is spreading false claims about Margaret Hamilton at about the worst possible moment, so no surprises that it's been flagged.
> at about the worst possible moment,
The tweet was made in 2023
The NYT obituary, for instance, notes that she married her boss. That lines up with many of the complaints in the twitter feed.
> In the early days of this project, software was treated like an adopted child and not taken as seriously as other engineering disciplines, such as hardware engineering, and was thought of as art and magic, not science. I have always believed that art and science were involved in its creation, but at the time most people thought otherwise. Knowing this, I fought to legitimize software so that both software engineering and those who built it would receive the respect they deserved, so I began using the term “software engineering” to differentiate it from hardware and other forms of engineering. When I first started using these words, they were considered funny. It was a running joke for a long time. They liked to make fun of my radical ideas. Software eventually earned the same respect as any other discipline.
found another retelling: https://www.theguardian.com/technology/2019/jul/13/margaret-...
> During the early days of Apollo, software was not taken as seriously as other engineering disciplines. Though in fact we had a complex system of systems, we weren’t getting credit for what was a legitimate field. It was out of desperation I came up with the term, to say: “Hey, we’re engineering too.” It was an ongoing joke for a long time. Then one day in a meeting, one of the most respected hardware gurus explained to everyone that he agreed with me. The process of building software should also be considered an engineering discipline, just like with hardware. It was a memorable moment.
It reads like a lead engineer walking a new hire through the codebase.
One of the founders of our industry.
You think of the immense advantages we have now whereas back then, they had none. Which makes her contributions as a scientist that much heavier and important.
Tangential: the software documented in the books next to her were likely developed with a level of rigor that consumer software can only dream of, per the seminal article on similar matters: https://www.eng.auburn.edu/~kchang/comp6710/readings/They%20...
During the Apollo 11 descent to the lunar surface, Buzz Aldarin pressed a button to display altitude and position during the landing sequence. As it turns out, this was the 8th task the Apollo 11 lander's guidance computer was asked to run, and it was only capable of running 7 tasks in real-time. Thanks to Hamilton and her team's priority scheduler, the guidance computer threw an alarm, killed the lowest priority task, and then resumed the execution of the other 7. If that hadn't been programmed to rescue itself like that, the computer would have crashed, and the Apollo 11 lander would not likely not have been the success that it was.
also, she should not be confused with the other Margaret Hamilton you might recall
https://facts.net/wp-content/uploads/2024/11/35-facts-about-...
Why link to an article instead of an actual picture?
The page you linked failed to show any image without JS enabled (although my ad blocker might share some of the blame, there are a handful of trackers on that site) and the article doesn't link directly to it either. I'm guessing you mean the pic here: https://www.thetechoutlook.com/wp-content/uploads/2023/01/Ma...
And it seems like she reflected on it quite light-heartedly.
As you can easily see from the HN thread, yes, it is false that she was (as claimed in the tweet) hired for an entry level role in 1968. See https://news.ycombinator.com/item?id=50002873
Who she was married to is neither here nor there, and you are doing your case no favors by fixating on that.
If it doesn’t matter then surely you have no concerned with sharing it? (with the corrected manager title date)
I think you may have a personal bias on this topic.
[1] https://en.wikipedia.org/wiki/Apollo_Guidance_Computer#1201_...
Like it wouldn’t even be describable as a “rescue itself” if the response was simply “No. Too many jobs running. Please kill one to continue”
A thing no other computer had ever done before, so, they had to come up with the idea in the first place - a brand new idea. But it was not only that - IIRC, the alarm happened when the OS (a tiny sliver of software not many computers even had at the time) skipped a less important task so it could run the more important ones before their configured deadlines.
At a time when the contemporary computer systems that used asynchronous, priority-scheduled multitasking operating systems were things like IBM OS/360 mainframes and DEC PDP-6/PDP-10 minicomputers.
It was like having an Apple II in mid 1960s with double the word size.
Every 1970s videogame has some sort of scheduler that moves actors, draws the screen, and play sound. Depending on the computer, it might be very easy (some could interrupt when the VDP got to a specific spot) or require you to count cycles. If, for instance, your game is for an Apple II and you have background music, you need to hit the speaker at the frequency of the currently playing note WHILE you move things, do physics, and redraw the screen. And you need to count cycles, because there is no reliable counter you could use (I remember how awesome it'd be if I could write 0 to a memory location and read it later to know how many clock cycled passed, or one I could read to get which scan line of the image the video hardware was outputting).
The kind of example for man-rated I was expecting would be dealing with really nutty edge cases (perhaps like correctly operating under arbitrary bitflips) or the LISP recovery system from Deep Space 1.
Handling an expected error condition under normal operation is not, in my mind, a good example of man-rated robustness. It might be a good example of other things.
> Handling an expected error condition under normal operation
Nothing in the Apollo program was "normal operation" by any standard. The thing is the alarm elegantly - and correctly - handled a situation that should never have happened in the operation, that only happened because the simulators the procedures were developed against did not accurately account for the workload of having both docking and landing radars on at the same time (IIRC, this was the issue).
This kind of robustness in the face of unexpected misuse is required if you want to qualify your hardware as "man-rated".
I had read the setup as the 8th task being user error (you have 20 things to do, I can only run 7 at a time, and it’s an user error to submit the 8th task while the 7 are running)
You can look at the code here.
https://github.com/kororos/AvrX
Compiles down under 2k.
The thing is while actually doing that isn't crazy hard, they did that with hardly any existing examples to go by. And without modern tools.
Now I don’t know about you, but I think she still has a pretty cool job and did cool things. Why do we need to exaggerate?
No, this is not outstanding. The comment I linked to already pointed out that Hamilton is shown as the head of CSM programming in the following org chart dating 9/30/68. Apollo 11 launched July 1969.
https://www.ibiblio.org/apollo/Documents/ApolloOrg-Group-23B...
That org chart of course gives the latest possible date of her appointment. The general consensus appears to be that she was appointed to this position in late 1967 (see footnote 102 of https://www.ibiblio.org/apollo/Documents/Birth%20of%20Softwa...) And we know from the source code that her overall involvement in the project dates to before 1967.
As for overstatements and exaggerations: by all means say what you like about Margaret Hamilton if it's true and you've checked that it's true. However, the claims that you keep repeating from the tweet aren't true, which is why the comment containing it got flagged. If you want to post a considered comment about how some aspects of Hamilton's role have been exaggerated, then go do that, rather than flogging the dead horse of this trashy tweet.
Terminology can help elevate something that's often overlooked, but if every programmer gets called a "software engineer" there's no way to distinguish the special stuff.
I believe in some European countries you’re not allowed to call yourself any kind of “Engineer” without being a member of a professional body?
So ironically if that was the case Margaret Hamilton would not have been allowed to coin the term
It is easy to see how gatekeeping is particularly valuable for those with the means to distinguish themselves. But for the rest of us, people who want to work on or consume a product, does a field benefit more from having an open gate or closed?
"Engineer" isn't in the US. P.E is.
You only need a P.E license if you are going to perform certain specific tasks. For example, in some jurisdiction, plans for a building above a certain height or floor size must be signed by a licensed P.E.
Not all engineering disciplines are covered by a P.E exam.
> I believe in some European countries you’re not allowed to call yourself any kind of “Engineer” without being a member of a professional body? > So ironically if that was the case Margaret Hamilton would not have been allowed to coin the term
Had she been in Europe, she would not have been a part of the Apollo project, something so cutting edge it required new disciplines to be invented like Software Engineering, for the term to be coined in the first place.
It's a master's degree but not all masters are engineer degrees. It's from the "Grandes Ecoles".
And yes, most software engineers in France have an engineer degree.
How would you feel about flying in a plane done with AI without the involvement of any engineers?
Or just accept terms change as society and technology does.
This is so jumbled. You mean to say that before software, all work was physical? Nah, engineers spent and spend a lot of time at the drawing board, too. It's just that they're not sitting at the plastic table with a sticker of a dog with a toolbox on it.
If you don't follow rules and practices that are external to you and your employer, as you might in aviation or nuclear reactor software, there's not even a chance it's engineering. It can be "software engineering", sure, just the same way "software architect" is not an "architect".
https://ncees.org/wp-content/uploads/Software-Engineering-ex...
> NCEES will discontinue the Principles and Practice of Engineering (PE) Software Engineering exam after the April 2019 exam administration. Since the original offering in 2013, the exam has been administered five times, with a total population of 81 candidates.
If you don't want the same rigor, if you can't handle the same rigor, you don't get the same respect. Because you don't deserve it.
>A link [...] argues [...] that she did not participate in the moon landing project to the extent suggested here [i.e. in the article]
And what do we find in the article? A statement of exactly the facts we've tediously established above:
> Hamilton worked first on the software for the uncrewed Apollo missions and then was promoted into leading the team developing the on-board flight software for the crewed missions. By 1968 she was assistant director in charge of the Command and Service Module team, and more than 400 people were working on Apollo’s software.
There have been accredited Software Engineering programs in Canada for more than 20 years now.
https://engineerscanada.ca/accreditation/accredited-programs...
One of the requirements to become licensed (if one desires to) is to graduate from an accredited programs.
Several programs have been accredited for software engineering for 20+ years now.
https://engineerscanada.ca/accreditation/accredited-programs...
>
> If you don't want the same rigor, if you can't handle the same rigor, you don't get the same respect. Because you don't deserve it.
It's an interesting opinion, but the reason nobody took the exam is that, unlike other PE disciplines, there are no jurisdictions with legal requirement to hold a PE license to write software.
For example, here for a building to be constructed, the plans need to be approved by a licensed PE if it's above a certain height and footprint. Note that you only need one PE to approve, not that all engineers working on the design have to hold PE licenses.
So it is a contradiction if you support gatekeeping but also only when its convinient to you.
That is the point I am making.
And if the "convenient to you" point is also supposed to apply to me, nope not at all. My programming would not qualify.
> A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing, and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character.
[..]
> His/her education will have been such as to make him/her capable of closely and continuously following progress in his/her branch of engineering science by consulting newly published works on a worldwide basis, assimilating such information, and applying it independently. He/she is thus placed in a position to make contributions to the development of engineering science or its applications. His/her education and training will have been such that he/she will have acquired a broad and general appreciation of the engineering sciences as well as thorough insight into the special features of his/her own branch.
If programmers can't be bothered, if their employers don't want that, either (if not even less), and yet you say times just magically change, so now people who don't fit that description get called engineers -- how do you call those who do fit that description, who still do those things? "Real engineers"? "Classic engineers?" I don't even care, but you gotta have something, you can't just pretend the real, practical, night and day difference between these things doesn't exist.
That's a quote from the 1961 Conference of Engineering Societies of Western Europe and the United States of America, not a dictionary definition.
Canada uses a different definition. The state of Missouri uses another.
"One who is trained or professionally engaged in a branch of engineering. "
Gains you nothing.
> Canada uses a different definition. The state of Missouri uses another.
So? Are you lazily and deceptively suggesting that makes a difference? Or are you even imagining they are using dictionary definitions?
https://engineerscanada.ca/become-an-engineer/use-of-profess...
> Misuse of the title engineer
[..]
> Areas of concern
> There are several places where the use of engineer is often used improperly. They include:
> Software or data engineer: In most provinces*, unless someone is licensed with a provincial or territorial engineering regulator, they cannot use the title engineer, or any variation. This applies even if the title is assigned by the employer. Alternative titles can include:
> Data analyst, Data scientist, Software specialist, Software technician, Data technologist, Data manager, Data technical expert.
As for Missouri:
> [..] any person using the word "engineer", "engineers", or "engineering", alone or preceded by any word, or in combination with any words, may do so without being subject to disciplinary action by the board so long as such use is reflective of that person's profession or vocation and is clearly not indicating or implying that such person is holding himself or herself out as being a professional engineer or is willing or able to practice engineering as defined in this section
https://revisor.mo.gov/main/OneSection.aspx?section=327.181
So I say the title "software engineer", in the slop hallucination sense it's too often used, where the sources either don't exist or say the opposite when you look stuff up, carries no information, other that a person is dishonest, or got fooled into repeating something dishonest. They may or may not be a programmer, they may be a man or a woman, but they're a charlatan or victim of charlatans for sure. And furthermore, the petty and stupid way people react to this fact being pointed out means they either have bad motives or Stockholm syndrome. I don't care which is which, since both are wrong.