upvote
The core requirement for “programmability” is a machine whose behavior can be changed by altering symbolic instructions without rebuilding the machine.

The Banu Musa automatic flute player doesn’t meet this bar. The flute player was mechanically configured, not symbolically programmed. It had no conditional logic or flow control. No stored symbolic instructions.

To contrast, the Jacquard Loom used an externally stored instructions (punch cards). It allowed arbitrary-length instruction sequences, which is a primitive form of control flow.

reply
Punchcards are also mechanically configured, not symbolically programmed. If you see huge semantical difference between a card with holes and a cylinder with pins or a cam with groves, please explain that difference. Or is the "arbitrary length" the main difference?

I'd imagine something that changes operation based purely on state (position of a dial, presence of a peg in a slot etc) conceptually being "symbolic". Punchcards are not it.

reply
I used to have colleagues who literally learned to program on punched card machines. As in they wrote a program on paper in symbolic assembler, manually converted it to machine code, punched the machine code onto a card,and then carried the cards to the nearby university so that they could run their school homework program.

They would be amused by the idea that this wasn't computing.

Punched cards store bits. Bits can store symbols.

reply
As a teen I first learned to program on a pdp-8 with a teletype terminal. Then moved on to mainframes - we wrote out the code on paper (lined in 80 columns), then punched the cards out and submitted the deck to be run. punch card machines were available all over the university campus. BTW, I had a colleague programmed by plugging wires in a plug board. So, yeah, punch cards are definitely computing.
reply
> Punchcards are also mechanically configured, not symbolically programmed.

I don’t know that I said the punchcards are programmable.

It is the machine that is programmable via the punchcards.

reply
By these criteria printing press was much more programmable than the loom. The Babbage's machine was not notable for being "symbolically programmable", it was a machine capable of universal computation. That is huge step beyond any complex programmable automata such as were made for clocks and music boxes.

The "It had no conditional logic or flow control. No stored symbolic instructions." you mention applies to the loom too. It copied what was poked into cards to different medium, not unlike Gutenberg's press did.

I'm obviously missing the big differentiator of Jacquard's loom, but so far I have not seen it clearly explained in the articles I've read.

reply
The loom allowed for interchangeable weaving sequences to be saved on a cheap medium for later reuse. Movable type presses didn't make that practical with the cost of fonts.
reply
Here is a 1746 machine loom that used perforated tape, half a century before Jacquard:

https://www.arts-et-metiers.net/musee/metier-tisser-les-etof...

Nor is it first such device. Here is the nice image of barrel with pins that controls the 14th century machine organ:

https://www.pianola.org/history/history_mechanical.cfm

Again, while impact of Jacquard's loom was indisputably huge, ascribing origin of computers to it seems like calling Ford model T the origin of personal transportation.

reply
Wikipedia suggests that the Jacquard loom introduced Babbage to punched cards, which would be why it, rather than the others, is associated with the origin of computers.
reply
The usual argument is that the Jacquard's loom inspired Herman Hollerith’s tabulating machine, used to tally the 1890 census, and became the basis of IBM.

Essentially, the speedups in textiles, inspired a speedup in computing (tabulating initially), which kicked-off the modern information technology industry.

And even if there wasn't any computation, it still is automated data processing (albeit simple).

reply
> To those who are acquainted with the principles of the Jacquard loom, and who are also familiar with analytical formulæ, a general idea of the means by which the Engine executes its operations may be obtained without much difficulty. In the Exhibition of 1862 there were many splendid examples of such looms. It is known as a fact that the Jacquard loom is capable of {117} weaving any design which the imagination of man may conceive. It is also the constant practice for skilled artists to be employed by man­u­fac­turers in designing patterns. These patterns are then sent to a peculiar artist, who, by means of a certain machine, punches holes in a set of pasteboard cards in such a manner that when those cards are placed in a Jacquard loom, it will then weave upon its produce the exact pattern designed by the artist. 〈WEAVING FORMULÆ.〉 Now the man­u­fac­turer may use, for the warp and weft of his work, threads which are all of the same colour; let us suppose them to be unbleached or white threads. In this case the cloth will be woven all of one colour; but there will be a damask pattern upon it such as the artist designed. But the man­u­fac­turer might use the same cards, and put into the warp threads of any other colour. Every thread might even be of a different colour, or of a different shade of colour; but in all these cases the form of the pattern will be precisely the same—the colours only will differ. The analogy of the Analytical Engine with this well-known process is nearly perfect. The Analytical Engine consists of two parts:— 1st. The store in which all the variables to be operated upon, as well as all those quantities which have arisen from the result of other operations, are placed. 2nd. The mill into which the quantities about to be operated upon are always brought.

- Charles Babbage, Passages from the life of a philosopher.

reply
Thank you for this relevant quote!
reply
I think you are implicitly invoking Turing completeness as opposed to “fixed-step recipes on a punchcard” as your requirement for something to be considered computing.

If a loom had a jump instruction, would you change your mind? (They did not.)

And yet we still have IDE defaults of 80 characters because of FORTRAN punchcards. That’s the heritage being invoked.

EDIT: I think all of these early devices also helped us to understand how to build multiplexers, which are the basic building block of any CPU. Given this instruction, I do a different thing.

reply
Yes, my main confusion is — what did the Jacquard loom do that all the prior art did not. I'm looking at it, at many much older devices, and am led to conclude it is only because of popularity.
reply