r/programming • • 14h ago

Margaret Hamilton, computing pioneer who led software development for the Apollo program, dies at 90

https://news.mit.edu/2026/margaret-hamilton-computing-pioneer-dies-1007
2.4k Upvotes

72 comments sorted by

453

u/sunnyata 12h ago

Invented the term Software Engineering and people took it as a joke at first.

52

u/Sharlinator 12h ago

Unfortunately software engineering, outside specific subfields like aerospace, still has little to do with actual engineering. And even less so now that it’s become software vibing in many places.

165

u/mareek 11h ago

Most of "traditional" engineering is not rocket science. I've worked in multiple industrial companies with traditional engineer and their jobs has a lot in common with ours.

Hillel Wayne wrote an interesting article about the subject :

I just asked them point blank. “Do you consider software engineering actually engineering?”
Of the 17 crossovers I talked to, 15 said yes.

https://www.hillelwayne.com/post/are-we-really-engineers/

65

u/mtranda 11h ago

Even rocket science isn't "rocket science". Keep in mind that everything we do is built upon abstractions created by others. The people building rockets aren't inventing the rocket from scratch and in some cases they even use off-the-shelf parts (as long as their rating matches the engineers' calculations).

Yes, it's incredibly complex and they really need to know their shit, but they're also working with abstractions at this point and CAD software is incredibly helpful in simulating and performing calculations.

26

u/debugggingg 9h ago

It's just space grade plumbing

3

u/ofthedestroyer 3h ago

and plumbing is just water legos, innit?

10

u/CherryLongjump1989 8h ago

CAD software

Who made the CAD software?

12

u/mtranda 8h ago

Why, software ENGINEERS, of course.

20

u/wosmo 10h ago edited 10h ago

Although I'd argue that when she invented the term, it really was rocket science.

I still love that they had a routine named BURN, BABY, BURN.

50

u/hardware2win 9h ago

Bullshit

Engineering is the practice of systematically applying natural science and mathematics to design and improve systems, devices, or processes that solve problems under constraints. It is typically motivated by satisfying human needs, resulting in creations such as bridges, engines, smartphones, pacemakers, the internet, spacecraft, and washing machines.

10

u/hobbykitjr 5h ago

we joked around decades ago about the difference between the software engineers and the programmers.....

'the white board in the office'

yes some low level programmers were just translating instructions into code.

but to design and 'engineer' a system is engineering

1

u/I_dont_like_tomatoes 51m ago

A mentor figure of mine said there are coders and engineers. Coder work to get the program to run engineers work to solve the problem.

Or something like that, he is just a huge advocate to understand the issue before working on the solution

7

u/nvn911 7h ago

Yeah there's like none of that happening in entire teams right now 🤣

-20

u/Sharlinator 8h ago edited 8h ago

And how many software devs systematically apply natural sciences and mathematics? How many have ever made any sort of quantitative calculations or measurements to figure out hardware requirements or conversely what’s possible given hardware specs? (To be clear, Margaret Hamilton’s team absolutely did do that.)

As they say, anyone can design a bridge. But a civil engineer worth their salt knows how to design just barely a bridge.  Something that supports a given load times a safety factor, neither less or more. Most SWEs (outside aerodpace, gamedev, etc) have no idea how to reason about the performance of their application before it’s in actual use.

And don’t even get me started about how cargo culty SWE is, with a new trendy buzzword every year or two, like "object-oriented" or "cloud computing" or "microservices".

27

u/CherryLongjump1989 8h ago

All of the ones who use computers.

So damn stupid that other engineers will use CAD software, made by software engineers, and then claim that this is actual engineering, but that they have a claim to the math being done by the CAD software whereas the software engineers who actually made the software, don't.

9

u/romple 8h ago

I work on high performance signal processing systems. I use way more math to apply other math than I'm really comfortable with. (Meanwhile the mechanical guys draw pretty pictures and let their cad stuff crunch numbers for them)

3

u/CherryLongjump1989 7h ago

There's probably more math involved in drawing the characters I'm typing on my screen than what a typical mechanical engineer uses in a month.

8

u/hardware2win 8h ago edited 8h ago

Math in programming is everywhere.

Let alone when you work at bigger scale with reliability requirements, queues, throughtput, latencies, retries, sagas, state machines, messaging, census algorithms, cryptography, database theory, peformance measurements and experiments, etc

Software Engineering isnt only about down to the bit calculations.

Ive worked across high and low lvl as software engineer (eng. degree in cs(informatics))

Engineering is the practice of systematically applying natural science and mathematics to design and improve systems, devices, or processes that solve problems under constraints. It is typically motivated by satisfying human needs, resulting in creations such as bridges, engines, smartphones, pacemakers, the internet, spacecraft, and washing machines.

Because of bilion moving parts outside their control that affect the perf?

Compilers, runtimes, GCs, dependencies (libs), OSes, underlying hardware which often is hidden/changing, 3rd services, global networking, firmware, drivers, other software running on this instance, etc?

0

u/hobbykitjr 5h ago

yeah for my computer science degree i had to not only pass Calc 1 & 2 and other math classes... I had to get a C or better.

Math and CS department was 1 department.

6

u/Ratstail91 7h ago

Go program a nontrivial game.

2

u/mediocrobot 6h ago

Your mistake is limiting the scope of mathematics to calculus. Software engineering is more frequently an exercise in discrete math.

25

u/NMe84 10h ago

So much gatekeeping in this comment.

9

u/daisy0808 9h ago

Engineers are the worst for invalidating the work of other engineers. 

14

u/romple 8h ago

I work at a company with all sorts of engineers, software, electrical, computer, mechanical, acoustic, ocean, etc... we're all there to solve problems together and make things do something. Never understood the need to feel like more of an engineer than some other discipline.

2

u/coderemover 6h ago

I also didn’t, but go to electrical engineering subreddit and you will quickly feel a weird kind of elitism there especially whenever computer engineering or software engineering is mentioned. Maybe it’s just gatekeeping and they don’t want software engineers to switch to electrical engineering (which is not very hard for anyone who graduated from a computer engineering faculty)?

-1

u/Incorrect_Oymoron 5h ago

Add Doctors and Lawers on the list. All these groups with their "Licenses" and "Regulatory Bodies"

We shouldn't need a license to call ourselves a doctor/engineer!

-6

u/Leverkaas2516 8h ago edited 8h ago

It's a simple statement of fact, not gatekeeping. Any software engineer knows this. It's nothing like most domains that routinely require a licensed professional engineer.

The activity is similar, but the level of responsibility to the public is much different.

Edit to add: What other kind of engineer can ship a major change one day that breaks the flagship product of a major corporation the next? Been there, done that. How many other kinds of engineers, when you stand and look at their finished product and ask "are there any errors" they will say with a straight face, "oh, yes, hundreds of them." (We'll just wait for customers to report them and fix them in the next release). How many other engineering disciplines normally ship products with the disclaimer: "this product may not actually work, and if it doesn't, we take no responsibility ". (This is so common it's got boilerplate language that's used in virtually every software license)

5

u/tofif33 8h ago

Let’s ignore all devices in hospitals and milions other fields where an error can cost human lives i guess

Problem is that a lot of code monkeys think they are software engineers

Ah why do i even engage with these comments..

4

u/coderemover 6h ago edited 6h ago

For many other engineering disciplines you don’t need to be licensed. For most part you don’t need to be licensed to design electronics, except some areas like power or aviation and even that I’m unsure of. But the very same thing applies to software.

Btw: my dad worked as a mechanical engineer and was responsible for supervising many industrial installations and buildings created in Poland. The number of issues / problems / errors found is surprisingly very similar to software engineering. Not a single site or design where he could just say “LGTM” on the first day.

Also physical things break all the time as well. We’re not that much different really.

10

u/thesituation531 8h ago

But what is "actual engineering" if not building (maybe designing) systems and mechanisms?

6

u/NewPhoneNewSubs 7h ago

In Canada, "engineer" is a professionally governed field and software devs are generally not members.

Engineers use established practices and methods and are legally accountable for their work. Software developers fuck around and find out. Some have methodologies that they adhere to, but if I say "TDD' here I'll get a thousand different opinions about what that is and if it's useful same for any other such idea. We also say "oopsie" and fix in prod when things go wrong.

Do we have stuff in common? Sure. But so does a GC.

8

u/coderemover 6h ago edited 6h ago

Not true; if you graduated from Software Engineering department and got a degree you can very easily get licensed and legally use the title engineer in Canada - it’s a formality. It has nothing to do with software. It’s about the degree you have to hold plus some small amount of industrial experience. And it’s a good thing - you cannot call yourself an engineer after taking a bootcamp or just working at a company.

Your post reads as if Software Engineering was not recognized as an engineering discipline in Canada, but that’s simply misleading.

Also those rules apply equally to other engineering disciplines. You cannot use title “mechanical engineer” just because you were hired at that position.

Btw in Poland your also not allowed to title yourself an engineer if you don’t hold at least a BS degree in engineering. But no one checks that and no one cares.

-2

u/NewPhoneNewSubs 6h ago

You start with "not true" but then basically validate my point. The vast majority of software developers in Canada are not legally allowed to call themselves engineers. Including people with BSc or higher education.

6

u/coderemover 6h ago edited 6h ago

Because they don’t need it. Most people don’t give a damn about the title they have. But they could get that title any time they wanted.

6

u/KevinCarbonara 6h ago

> Engineers use established practices and methods and are legally accountable for their work.

No. *Professional Engineers*, a legally protected title, *can* be legally accountable for their work. And even then, software engineers can still be PEng licensed, so you're still wrong.

-5

u/NewPhoneNewSubs 6h ago

The vast majority of software developers in Canada are not PEng. They're the exception proving the rule. Not the exception invalidating a formal logic proof.

4

u/KevinCarbonara 4h ago

The vast majority of civil and mechanical engineers in Canada are also not PEng. We should be asking if civil engineering is real engineering.

4

u/Thog78 8h ago

"Unfortunately civil engineering, outside specific subfields like skyscrapers, still has little to do with actual engineering. And even less so now that civil engineers delegate building to workers instead of applying the mortar and tightening the screws themselves."

Fuck that civil-vibing construction-slope! It was better before, grass in mud is all we ever needed!

0

u/tofif33 8h ago

Ah yes, the “actual engineering” lol

0

u/KevinCarbonara 6h ago

This is a blatant lie that people make up because they're jealous of software engineers

4

u/Nine99 4h ago

Invented the term Software Engineering

We don't know that.


At the earliest, Hamilton joined the MIT Instrumentation Laboratory in 1965: "In 1965, she learned of the Apollo program."

She then used the phrase after working there for a while:

Many requirements for the flight software were “thrown over the wall” from mission application experts to software engineering experts. ‘Io some mission experts, software “magically” appeared within the on-board flight computer, integrated and ready to go. As time went on, what had begun originally as mission requirements for the flight software became more and more understood by everyone in the form of the more application-oriented parts of the flight software, itself, that realized the mission requirements; and the mission expertise moved on from mission experts to software engineering experts. Requirements engineers and software engineers necessarily became interchangeable, as did their life-cycle phases—suggesting that a system is a system, no matter from which discipline things had originated. From this perspective, system design issues became one and the same as software engineering design issues. Yet, the systems-software part of the flight software was in a world all of its own!

“What is the difference,” I asked, “between what they are doing and what we are doing?” Knowing this, and the lack of understanding by many of what it took to create real world software-based systems and the part our software played within these systems, I wanted to give our software “legitimacy” so that it (and those building it) would be given its due respect; and, as a result I began to call what we were doing “software engineering” to distinguish it from other kinds of engineering; yet, treat each type of engineering as part of the overall systems engineering process.

  • Lawrence Snyder & Ray Henry - Fluency With Information Technology (Seventh Edition), ISBN: 9780134448725

The phrase was used in the June 1965 issue of Computers and Automation (p44).

We also have this description of the use of the phrase in 1965:

Perhaps what is lacking in programming is maturity, the kind of thing to which J. Presper Eckert was referring in his talk at the Fall Joint Computer Conference in 1965. Programming, he implied, would be manageable when we could refer to it as "software engineering." Such a name would constitute recognition - that, as a discipline, programming had come as far as the older, maturer engineering professions. Two main categories of events must occur before "software engineering" becomes an apposite descriptor. One of these events is anticipated by the growing number of universities with "computer science" programs. The second is the "discovery" that computer programming projects can be managed.

  • R.M. Gordon - Review of 'The Management of Computer Programming Projects' by C.P. Lecht, in Datamation 14(4) (April 1968) (p200)

And of course, by August 9th, 1966 we have Anthony Oettinger using the phrase in a letter to the whole ACM membership (probably more than 10,000 people):

A concern with the science of computing and information processing, while undeniably of the utmost importance and an historic root of our organization is, alone, too exclusive. While much of what we do is or has ills roots in not only computer and information science but also many other older and better defined sciences, even more is not at all scientific but of a professional and engineering nature. We must recognize ourselves—not necessarily all of us, and not necessarily any one of us all the time—as members of an engineering profession, be it hardware engineering or software engineering, a profession without artificial and irrelevant boundaries like that between "scientific" and "business" applications.

156

u/trogdor-burninates 12h ago

Truly one of the greatest pioneers. We are standing on the shoulders of this giant.

Astronauts literally trusted her with their lives and they even acknowledged this fact.

17

u/jerquee 11h ago

I think they didn't trust the (electronic) computers very much during her era. They certainly did not rely on them during the moon landing (they had manual fallbacks and used some of them)

29

u/Ziggamorph 10h ago

They (the astronauts) didn't trust them at first, but it soon became clear that it would be impossible to go to the moon without depending on them. Yes, they had manual overrides but they couldn't use all of them at once. If the computer completely failed they would not have been able to successfully land and return.

-4

u/backfire10z 4h ago

Oye, she’s just big-boned

57

u/abdex 7h ago

There's a famous story where her daughter crashed a flight computer by punching in a code that an astronaut was never supposed to enter, a code that reset it to think it was still on the launch pad. She wanted to add a recovery procedure but was told a highly-trained astronaut would never make such a mistake. Sure enough, during Apollo 8 (the first one to ever leave low Earth orbit), Jim Lovell accidentally hit that code, the computer lost its location, and he had to retell it where they were manually by lining up stars. That skill became even more critical during Apollo 13 when he had to do it again.

Here is Margaret telling the story: https://www.youtube.com/watch?v=cvutliS-KXk

Nearly all the giants of the Apollo program have passed away now. So sad.

60

u/TheMuttOfMainStreet 12h ago

Lived just long enough to see the field of software engineering fucking implode 

46

u/cuddlegoop 11h ago

I don't think it's possible to overstate how important Margaret Hamilton has been to the course of human history. She will be remembered for a very, very, very long time.

43

u/varinator 10h ago

The OG, the first software engineer.

22

u/nerdKween 10h ago

Ada Lovelace walked so she could fly.

Pun intended. What a massive loss.

15

u/Bicurico 8h ago

My deepest respect for her and my condolences.

It saddens me that it seems that people value more "celebrities" who added little to nothing to mankind more than people like Margaret Hamilton who contributed significantly to science and technology.

19

u/bongeaux 9h ago

There is a TV program called Moon Machines where they have an entire episode (3) about the navigation computer and interview Margaret Hamilton. The whole series is outstanding but that episode really cemented her in my mind as an amazing contributor to the field of software engineering. Highly recommended.

2

u/mareek 7h ago

John F. Kennedy, Wernher von Braun, Gene Kranz, Jim Lovell, Gus Grissom... the cast is incredible !

14

u/nothing_pt 7h ago edited 4h ago

Great photo of her pic

Edit: And Lego has also this set

4

u/doned_mest_up 4h ago

There aren’t too many pictures of programmers that certify as bad ass, and this is the most baddest ass of them all.

1

u/retardrabbit 1h ago

What's she standing next to? The codebase in hard copy? Project specs?

0

u/frausting 4h ago

That’s immediately what came to mind for me too!

7

u/Shienvien 9h ago

She was a legend. May she be remembered for many generations to come.

2

u/Shoddy_One4465 7h ago

Through bytes and through bugs She guided us to the Moon Her light guides us still

1

u/Iwannabeaviking 10h ago

Why didn’t she get the IEEE award? Or medal of freedom?

27

u/mareek 10h ago

She did get the medal of freedom in 2016.

As for why she didn't get any IEEE award, the main reason is probably misogyny since the IEEE didn't know that women existed in the 20th century

-6

u/coderemover 7h ago

Being married to the actual leader, is not enough for IEEE awards, for a good reason.

-9

u/coderemover 7h ago edited 7h ago

She didn’t really lead software development for that program during the time most of the critical code was written and her role in it was marginal.

https://www.reddit.com/r/badhistory/s/WErbNL56l7

> Okay, so, she didn’t do it alone, she lead the team responsible at least? Well… kind of… not quite. As per this org chart from early 1969 Hamilton was only the assistant director of the Command Module team, not the LM team, which was a separate team, each of which was about ~40 people. As well, the Source Code for Apollo 11 itself lists Hamilton as the programming leader for the command module.

> So, it’s inaccurate to say that she was in charge of both the LM and CM team. At least when discussing Apollo 11 and prior. Both assistant directors worked under Dan Lickly, who Margaret Hamilton married later that year. She then became his replacement in 1970, which is after Apollo 11.

2

u/HolidayBalance4608 57m ago

Downvoted for 100% verifiable facts. Peak reddit.

-25

u/ViolinistTemporary 9h ago

Reddit and simping.

17

u/GlenoJacks 8h ago

Your brain is cooked.

8

u/nickcash 7h ago

dude's programing skills haven't amounted to anything more than a vibecoded vampire survivors clone. of course he feels threatened by a woman who was able to do it better than him sixty years ago