Live data from Hacker News

What did Ada Lovelace's program actually do? (2018)

twobithistory.org

11–20 of 138 posts

Re: What did Ada Lovelace's program actually do? (2018)

#11
A really cool article. From the Intro:

> She thought carefully about how operations could be organized into groups that could be repeated, thereby inventing the loop. She realized how important it was to track the state of variables as they changed, introducing a notation to illustrate those changes. As a programmer myself, I’m startled to see how much of what Lovelace was doing resembles the experience of writing software today.

> So let’s take a closer look at Lovelace’s program. She designed it to calculate the Bernoulli numbers. To understand what those are, we have to go back a couple millennia to the genesis of one of mathematics’ oldest problems.

It does a nice job getting into just enough detail to make you appreciate what she did. If she were alive today, you could imagine her down the hall grinding away on some problem in Rust (I have a feeling she'd have a strong preference for statically typed languages).

Re: What did Ada Lovelace's program actually do? (2018)

#12

> The Difference Engine was not a computer, because all it did was add and subtract. The definition of computer is pretty grey for the pre-digital era, and it wasn't turing complete, but is it actually controversial whether it was a computer?

I'm not sure I have a direct answer, but I agree something shouldn't be called a computer if it just does a one-shot, fixed-length calculation before requiring further human intervention. To be a "computer", and be associated with that general conceptspace, it should be Turing-complete and thus capable of running arbitrarily long (up to the limits of memory and hardware rot).

Earlier comment expressing annoyance at a mislabeling:

https://news.ycombinator.com/item?id=40077408

Re: What did Ada Lovelace's program actually do? (2018)

#13
post #12

> The Difference Engine was not a computer, because all it did was add and subtract. The definition of computer is pretty grey for the pre-digital era, and it wasn't turing complete, but is it actually controversial whether it was a computer?

I'm not sure I have a direct answer, but I agree something shouldn't be called a computer if it just does a one-shot, fixed-length calculation before requiring further human intervention. To be a "computer", and be associated with that general conceptspace, it should be Turing-complete and thus capable of running arbitrarily long (up to the limits of memory and hardware rot). Earlier comment expressing annoyance at a…

Separate comment to address a subtlety that comes up a lot:

Often you'll hear about fully homomorphic encryption (FHE) being Turing-complete. But you can't actually have a Turing complete system with variable-run-time loops that's homomorphically encrypted, because that leaks information about the inputs.

When they say FHE is Turing-complete, what they mean is that you can take an arbitrary program requiring Turing completeness, then time-bound it, unroll it into a fixed-length circuit, and run that homomorphically. Since you can keep upping the time bound, you can compute any function. So the system that translates your programs into those circuits, with no limit on the bound you set, could then be called Turing-complete -- but you couldn't say that about any of those circuits individually.

Earlier related comment: https://news.ycombinator.com/item?id=40078494

Re: What did Ada Lovelace's program actually do? (2018)

#14
post #2

What I think is the coolest part is her actual work in the "notes" she attached to the translation. See: https://upload.wikimedia.org/wikipedia/commons/c/cf/Diagram_... and: https://en.wikipedia.org/wiki/Note_G The article also references this python translation of her work: https://enigmaticcode.wordpress.com/tag/bernoulli-numbers/

Half the article is about Note A and Note G.

Re: What did Ada Lovelace's program actually do? (2018)

#15

> In fact, aside from the profusion of variables with unhelpful names, the C translation of Lovelace’s program doesn’t look that alien at all. Clearly the author never met my coworkers.

...or worked with any mathematicians/physicists/engineers who program. As soon as I saw that, I thought "typical quant".

Like my dad (A chemical engineer) learned to program in FORTRAN, which used to insist variable names were 1 letter and up to 2 digits. He later learned Basic, but his code was still spiritually FORTRAN so the one-letter-two digits thing stuck. I thought that was just him but then much later I went to work on Wall St and had to work with quants who were copying code out of "Numerical Recipes" and it was exactly the same just now in C.

Re: What did Ada Lovelace's program actually do? (2018)

#16

> The Difference Engine was not a computer, because all it did was add and subtract. The definition of computer is pretty grey for the pre-digital era, and it wasn't turing complete, but is it actually controversial whether it was a computer?

That the Difference Engine and Analytical Engine belong on the timeline of computing history isn't particularly controversial, but the Difference Engine itself I've never seen anyone try to claim was a computer (it's a mechanical calculator)--the Wikipedia page doesn't even try to link it directly to the history of computers, you have to go to the Analytical Engine to see the Difference Engine's place in the "history of computing" timeline.

Re: What did Ada Lovelace's program actually do? (2018)

#17
post #14
post #2

What I think is the coolest part is her actual work in the "notes" she attached to the translation. See: https://upload.wikimedia.org/wikipedia/commons/c/cf/Diagram_... and: https://en.wikipedia.org/wiki/Note_G The article also references this python translation of her work: https://enigmaticcode.wordpress.com/tag/bernoulli-numbers/

Half the article is about Note A and Note G.

Sure, but it is spoken about in the abstract. I enjoyed the article, but why not at least include "some" of the actual notes she wrote or at least a screenshot?

Re: What did Ada Lovelace's program actually do? (2018)

#18
post #6

Earlier quoted context omitted.

Probably not, it's stated in the TFA, the controversy is because Lovelace was a woman and some people think propping her up is basically a DEI retcon in history, the rest of us don't care. But I don't think it's anything whatsoever to do with actual computers

That's so funny... Mathematicians for 150 years: Ada Lovelace is kind of on top of it. Random from 2024: probably just a diversity footnote.

Seriously. As the article states, while everyone else was like "Wow cool we will make a machine that makes calculating things easier"

Meanwhile Ada over here going "Oh shit this can do literally anything that can be done by steps of math. Someday machines following that formula will make music"

Ada is not the first programmer. Ada is the first computer scientist. She understood the ramifications of what we would eventually call "turing complete" systems, and understood the value of "general purpose" in a general purpose computer, and seemingly understood that more than just numbers could be represented and calculated in a computer.

Re: What did Ada Lovelace's program actually do? (2018)

#20
post #6

Earlier quoted context omitted.

That's so funny... Mathematicians for 150 years: Ada Lovelace is kind of on top of it. Random from 2024: probably just a diversity footnote.

Seriously. As the article states, while everyone else was like "Wow cool we will make a machine that makes calculating things easier" Meanwhile Ada over here going "Oh shit this can do literally anything that can be done by steps of math. Someday machines following that formula will make music " Ada is not the first programmer. Ada is the first computer scientist . She understood the ramifications of what we would ev…

Yes this is the most interesting thing about her writing - she foresaw a lot of later work.
Post reply on HN