Live data from Hacker News

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

twobithistory.org

61–70 of 138 posts

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

#61
post #7

> In her “diagram of development,” Lovelace gives the fourth operation as v5 / v4. But the correct ordering here is v4 / v5. This may well have been a typesetting error and not an error in the program that Lovelace devised. All the same, this must be the oldest bug in computing. I marveled that, for ten minutes or so, unknowingly, I had wrestled with this first ever bug. The real mark of a non-trivial program is that…

> The real mark of a non-trivial program is that it doesn't work on the first try.

not true.

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

#62
Regarding the dispute of whether Ada wrote the first program.

On a related topic, I believe that credit for the invention of hashing should go to certain scholars in China.

The invention of a data structure and algorithm must not be confused with its first implementation in electronic computers.

For at least a century before the computing revolution, hashing was used in China to find characters in dictionaries.

First, a character is examined, and reduced to a numeric code according to steps that constitute a hashing function. For instance the Four Corner Code.

The code is then used to find a page or section of the dictionary by direct access: the mapping between codes and dictionary sections is straightforward. The character is then found within a small bucket of collisions by a linear search.

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

#63
post #7

> In her “diagram of development,” Lovelace gives the fourth operation as v5 / v4. But the correct ordering here is v4 / v5. This may well have been a typesetting error and not an error in the program that Lovelace devised. All the same, this must be the oldest bug in computing. I marveled that, for ten minutes or so, unknowingly, I had wrestled with this first ever bug. The real mark of a non-trivial program is that…

+1 for Babbage/Lovelace history, however IMO, although the two facts are separately true:

(1) he was let down by precision machining not existing (Tim Robinson https://www.meccano.us/difference_engines/rde_1/ says that "I have no doubt that if the Meccano of the 1920's had existed 100 years earlier, Babbage would have been entirely successful in his quest"), and

(2) he designed a more complex system, tried Italy, etc,

I don't think it's fair to say that he decided that (2) was the best way forward from (1); it's rather that both were consequences of his ideas outpacing what was realistically feasible: he was a software guy thrust into hardware, coming with up ideas that seemed straightforward and discovering that manufacturing was impossible. Apart from his lack of business/project-planning sense (scope it down; don't aim for 10 digits etc), I think other complicating factors that went into the tragedy of Babbage were:

(1) He kept coming up with new/better ideas and pursued them (basically rabbitholing as mentioned),

(2) He had won a bunch of awards at a young age simply for proposing the Difference Engine (everyone could see it was a good idea and also seem to have expected it to be straightforward to build: a fait accompli) — so in the intervening decades he must have felt like he couldn't give up,

(3) He got entangled with the government. IMO the tragedy here is that he was just middle-class enough to have a romantic idea of government: while the nobles distrusted government/politics as they sort of looked down on it, and the lower classes distrusted government as it had never done anything much for them, he was of just the right class (his father came from humble origins and had made money in banking) to have patriotic notions of government and all that — he wanted to offer his invention to "the nation" (government), and conversely thought the government "ought to" reward him for it, rather than understanding the practical problems of government officials in funding his project. (The government offered to give his invention back to him, but he refused.)

(4) Possibly as a result of these awards, he seems to have been attached to the idea of being a "smart" person (many examples, e.g. the anecdote quoted in one of the appendices in Sydney Padua's wonderful book, where he refused to judge an award along with Faraday — he thought he "deserved" to be the sole judge) — this also probably got in the way of doing practical things rather than pie-in-the-sky "genius-type" ideas.

I think the government entanglement is probably a big part of the story (he asked them basically "I haven't completed the Difference Engine but I have a much better Analytical Engine that I could implement with more money, what should I do?" and they sat indecisively for twenty years!), and it's interesting to read his accounts (in his memoirs) vs others', e.g. Lord Playfair's account from the same appendix:

> "He was in chronic war with the Government because it refused to furnish supplies for his new machine, the ground of refusal being that he never completed the first. […] Babbage always considered himself a badly treated man, and this feeling at last produced an egotism which restricted the numbers of his friends. […] Babbage, who was delighted with the suggestion, but made it a condition that he alone should be appointed, as a reparation for all the neglect of the Government towards his inventions. Even the association of such a distinguished man as Faraday would take away from the recognition which was due to him."

Anyway Padua's book (The Thrilling Adventures of Lovelace and Babbage) seems very well-researched (I admit I haven't read much of it but read all the appendices in detail; would strongly recommend anyway).

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

#64
post #7

> In her “diagram of development,” Lovelace gives the fourth operation as v5 / v4. But the correct ordering here is v4 / v5. This may well have been a typesetting error and not an error in the program that Lovelace devised. All the same, this must be the oldest bug in computing. I marveled that, for ten minutes or so, unknowingly, I had wrestled with this first ever bug. The real mark of a non-trivial program is that…

I had an employee like that. He'd want to do something, and hit a roadblock, so he'd design his own tool (He wrote his own font, once, because he didn't like the way the built-in ones worked at teeny point sizes). Best damn engineer I ever knew, but I had to keep an eye out for rabbitholing.

We had a developer write his own System.out.println in Java. But it wasn't because he didn't like the built-in System.out.println, it was because he didn't know it existed. He had a PhD and was supposedly a senior developer. He didn't last very long.

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

#65
post #7

> In her “diagram of development,” Lovelace gives the fourth operation as v5 / v4. But the correct ordering here is v4 / v5. This may well have been a typesetting error and not an error in the program that Lovelace devised. All the same, this must be the oldest bug in computing. I marveled that, for ten minutes or so, unknowingly, I had wrestled with this first ever bug. The real mark of a non-trivial program is that…

I had an employee like that. He'd want to do something, and hit a roadblock, so he'd design his own tool (He wrote his own font, once, because he didn't like the way the built-in ones worked at teeny point sizes). Best damn engineer I ever knew, but I had to keep an eye out for rabbitholing.

> (He wrote his own font, once, because he didn't like the way the built-in ones worked at teeny point sizes).

That's similar to how Donald Knuth came up with TeX and Metafont.

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

#66
post #58

> In 1975, Paul Allen flew out to Albuquerque to demonstrate the BASIC interpreter that he and Bill Gates had written for the Altair microcomputer. Because neither of them had a working Altair, Allen and Gates tested their interpreter using an emulator that they wrote and ran on Harvard’s computer system. The emulator was based on nothing more than the published specifications for the Intel 8080 processor. When Allen…

In 1976 my first commercial programming job was converting a 8008 emulator written in Fortran to work on a Data General mini as an 8080 emulator, so another programmer writing 8080 firmware for a plotter could debug his code. The emulator source code originated with Intel as something called INTERP/8 8008, and I believe that's what Allen and Gates also used, as suggested in other online posts.

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

#67
post #63
post #7

> In her “diagram of development,” Lovelace gives the fourth operation as v5 / v4. But the correct ordering here is v4 / v5. This may well have been a typesetting error and not an error in the program that Lovelace devised. All the same, this must be the oldest bug in computing. I marveled that, for ten minutes or so, unknowingly, I had wrestled with this first ever bug. The real mark of a non-trivial program is that…

+1 for Babbage/Lovelace history, however IMO, although the two facts are separately true: (1) he was let down by precision machining not existing (Tim Robinson https://www.meccano.us/difference_engines/rde_1/ says that "I have no doubt that if the Meccano of the 1920's had existed 100 years earlier, Babbage would have been entirely successful in his quest"), and (2) he designed a more complex system, tried Italy, etc…

Reminds me of Bell who was funded to work on an update to the telegraph, but got distracted by his side-project, the phonograph.

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

#68

Regarding the dispute of whether Ada wrote the first program. On a related topic, I believe that credit for the invention of hashing should go to certain scholars in China. The invention of a data structure and algorithm must not be confused with its first implementation in electronic computers. For at least a century before the computing revolution, hashing was used in China to find characters in dictionaries. First…

The Four Corner Code is not really a hash, just an index. Do you have evidence of the use of unnatural, random-looking "hash" functions for the sake of an even distribution? That's the key insight that makes a hash table what it is.

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

#69
post #4

Earlier quoted context omitted.

Difference Engine basically implemented one algorithm in hardware, while Analytical Engine was supposed to run a program. I believe that could make the latter one a computer.

> Difference Engine basically implemented one algorithm in hardware So, did Pong run on a computer?

Is my toilet tank a single-algorithm analog computer?

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

#70

Earlier quoted context omitted.

I had an employee like that. He'd want to do something, and hit a roadblock, so he'd design his own tool (He wrote his own font, once, because he didn't like the way the built-in ones worked at teeny point sizes). Best damn engineer I ever knew, but I had to keep an eye out for rabbitholing.

We had a developer write his own System.out.println in Java. But it wasn't because he didn't like the built-in System.out.println, it was because he didn't know it existed. He had a PhD and was supposedly a senior developer. He didn't last very long.

Some of the worst (and some of the best) developers I've known, have had advanced degrees.

This guy has a high school diploma, and regularly stunned the Ph.Ds in Japan.

Post reply on HN