Hacker News new | ask | show | jobs
by haihaibye 2859 days ago
It was the first published program but not the first.

To be the first, you have to believe Babbage designed a general purpose computer that could accept instructions and never wrote any instructions.

https://www.bbvaopenmind.com/en/ada-lovelace-original-and-vi...

“I confirm that the manuscript evidence clearly shows that Babbage wrote ‘programs’ for his Analytical Engine in 1836-7 i.e. 6-7 years before the publication of Lovelace’s article in 1843. There are about 24 of such ‘programs’ and they have the identical features of the Lovelace’s famous ‘program’,” adds Swade. The historian says that the new tests are “unarguable” and that they “do not support, indeed they contradict the claim that Lovelace was the ‘first programmer’.”

3 comments

It really depends what you mean by "program". Would you argue that the Euclidean algorithm from two millenia prior was a program?

Ada Lovelace was the first to realise that the analytical engine would perform arbitrary tasks and wrote programs for those arbitrary task, beyond computational operations. Of course Babbage who designed the hardware had some idea of what programs it could run and presented examples, but he did not have the forethought to go beyond as Lovelace is quoted in your articles, "an original understanding of where the power and potential of computers lay."

There has always been a controversy of how much of Lovelace's work is hers and how much is Babbage's in the Menabrea papers, and I don't think Babbage writing a few simple programs settles this controversy one way or another. Lovelace had unique and original insights that should not be downplayed.

> It really depends what you mean by "program".

A [computer] program is a sequence of instructions executable by a machine (the computer).

> Would you argue that the Euclidean algorithm from two millenia prior was a program?

It's in the name: EA is an algorithm.

By that definition, Babbage didn't write a program either. He didn't write opcodes. You still need a human "compiler" to translate Babbage's writing into something that could run on the engines.

Btw, this human "compiler" job was for a long time considered to be inferior work and part of the reason why the first professional software developers in mid 20th century were largely women: it was considered clerical work to translate algorithms from paper into computer programs. The Computer Girls is a good article that describes these attitudes.

http://homes.soic.indiana.edu/nensmeng/files/ensmenger-gende...

Looks like you got downvoted into oblivion, but I believe you bring up an important point that needs to be discussed, and that's "intent".

The string "x=1" can both be a computer program, and something intended only for humans to read. The Euclidean Algorithm was written specifically for humans to understand, with no intent for them to ever be interpreted by a machine. The fact that someone at some point did implement it doesn't retroactively make it the first program. Lovelace's "Diagram" was also not something a machine could directly execute. But the key difference was the intention, she specifically intended that her instructions could be interpreted and executed by a machine.

This is already discussed quite a bit in the article:

"Babbage also wrote more than twenty programs that he never published.19 So it’s not quite accurate to say that Lovelace wrote or published the first program, though there’s always room to quibble about what exactly constitutes a “program.” Even so, Lovelace’s program was miles ahead of anything else that had been published before. The longest program that Menabrea presented was 11 operations long and contained no loops or branches; Lovelace’s program contains 25 operations and a nested loop (and thus branching)..."

A group working on building an Analytical Engine, discovered that Lovelace’s Bernoulli program almost certainly would not be able to run on the Analytical Engine in Babbage’s notebooks. The “instruction set” was missing some required features.

http://blog.plan28.org/2016/10/how-we-got-to-where-we-are.ht...

From what I understand, she clearly understood the limitations of what Babbage achieved and wrote her program to demonstrate the value of extending the hardware in order to run more universal "programs," like the one she writes!

http://rclab.de/rclab/_media/analyticalengine/aal_noteg_glas...

Also note that apparently Babbage later did consider exactly the implementation of the said missing hardware functionality:

http://blog.plan28.org/2016/10/how-we-got-to-where-we-are.ht...

Better yet, that version didn’t have conditionals the user could employ at all, so it isn’t even a proper computer but rather a calculator.