"""

Ada Lovelace is known for being the first computer programmer, which is cool, except 1) she never actually ran her programs, 2) the programs were for a machine that was never built, and 3) neither her program or the machine had any influence on modern CS.
[ . . . ]
Why not instead use Barbara Liskov? The "Liskov Substitution Principle", the 'L' in SOLID, is named after her. Her work on CLU has influenced almost all modern languages. She invented abstract data types. She invented ITERATORS!
[ . . . ]
Or Frances Allen? First woman to win the Turing Award. Major, *major* innovations in optimizing compilers that compiled high level languages into FAST bytecode. Without her we might still be stuck writing assembly for anything that needs performance.
[ . . . ]

"""

β€Œnitter.snopyta.org/hillelogram…
I'm glad that Margaret Hamilton has been receiving more recognition in the last few years.

She is receiving the wrong kind of attention, in my mind: People show that picture with the Apollo printouts as her achievement, and then you get nitpickers in the comments about how she didn't write all the code herself blahblah.

While it's cool that she led the Apollo software team, and that's what she received the Presidential Medal of Freedom for in 2016, her real historical contribution is that she founded software engineering as a discipline and coined the term (among others, possibly). She founded two software companies and through them and her work on the Apollo project before then did groundbreaking work on formal methods and software correctness.
Show thread
Grace Hopper does get almost the same level of name recognition as Ada Lovelace, at least in nerd circles. The Department of Information and Computer Science at LinkΓΆping University has e.g. had two conference rooms Ada and Grace for decades.

I think most people who know her name know that she was a military officer in the navy, but on the computer science side I'm not sure everyone knows more than "uh, she was involved in COBOL, I think?".

She wrote the world's first compiler and coined the word.
Show thread
Hopper *was* "involved in COBOL" as a technical consultant and later a committee member, but more importantly she (and the team she led) designed B-0 (FLOW-MATIC), the language that COBOL was standardizing.

A decade earlier, she had implemented the world's first "compiler" while on the Harvard Mark I team, basically a linker or macro assembler, taking machine code as both input and output. This was the work that she formalized as the A-0 language while on the UNIVAC team, which in turn led to A-1, A-2, A-3, AT-3 and finally B-0, which used text input.

en.wikipedia.org/wiki/Harvard_…
en.wikipedia.org/wiki/A-0_Syst…
en.wikipedia.org/wiki/History_…

#WomenInComputerScience
Show thread
Barbara Liskov and Stephen Zilles defined abstract data types (ADTs) in "Programming with abstract data types" (1974), doi 10.1145/942572.807045, web.archive.org/web/2016050806…

She defined what would later be called the Liskov Substitution Principle in "Data Abstraction and Hierarchy" (OOPSLA keynote 1987), doi 10.1145/62138.62141, www.cs.tufts.edu/~nr/cs257/arc…

In this OOPSLA 2009 keynote, "The Power of Abstraction", she looks back at ADTs, her language CLU (which unlike SmallTalk used early binding and compile-time checks and influenced C++), subtyping and inheritance, and takes a brief look at the future:

invidious.snopyta.org/watch?v=… (1h 18 min)
www.youtube.com/watch?v=qAKrMd…

(now watching)
Show thread

@clacke Looking in that 1974 ADT paper, for the examples they use some variant of PASCAL.

I remember coding in PASCAL. Takes me back to my early coding days, it was the second language I learned, after BASIC.

One really good thing in PASCAL that I saw now in that paper, is how you write assignments, to set x to 5 you write
x := 5
In my opinion that was much better than the x=5 that we write nowadays in these fancy-pancy new languages like C. πŸ™‚

@eliasr @clacke > new languages like C

You don't read that kind of thing everyday πŸ˜„οΈ

@lanodan @clacke I had to look it up now, looks like PASCAL appeared in 1970 and C in 1972 so it's only 2 years difference. But C is a new language, compared to PASCAL. πŸ™‚

About the assignment operator, I was teaching C to beginners and there was always the question why we need to write == in if statements. I wanted to say to the students, "well, I often wonder that myself".

It is especially confusing for students who know a lot of math, then assignment with a simple = is really confusing.

Follow

@lanodan @clacke Because in C you can write in your program things like this:

x = 5;
y = 2;
x = y;

that is complete bogus for a mathematician, if we just established that x is 5 and y is 2, then how the hell can x suddenly be equal to y. Madness! πŸ™‚

Mathematicians understandably like the arrow or := much better.

Β· Web Β· 0 Β· 0 Β· 1
Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml