Well, the Jacquard Loom (<a href="http://en.wikipedia.org/wiki/Jacquard_loom" rel="nofollow">http://en.wikipedia.org/wiki/Jacquard_loom</a>) was a massive weaving loom capable of producing highly sought-after intricate patterns in silk at impressive even-by-todays-standards speeds.<p>It was one of the first programmable things of any kind, and its punch card approach inspired Babbage (who was a contemporary - yes this was programming, industrial style in 1815)
I think for clarity it's useful to differentiate two forms: (i) the "cool", hacker mode of knitting and the (ii) the grandma mode. Knitting and sewing have become popular in hacker circles (e.g. <a href="http://www.adafruit.com/blog/2012/03/22/the-cool-new-thing-with-tweens-sewing/" rel="nofollow">http://www.adafruit.com/blog/2012/03/22/the-cool-new-thing-w...</a>). The main differences between the two, I think, are that in (i) the practitioners formalize and think about the system for improvement whereas in (ii) knowledge is learned by informal apprenticeship (my grandmother did great needlework and knitter, never saw her read any patterns like the ones given in the OP) innovations are rare, maybe 2-3 new patters per decade.<p>Similar differentiation apply to cooking and other disciplines which require discrete, well-defined steps to arrive at a precise result, the number of dishes in any given cousine are tiny compared to the menus of recent innovative chefs.<p><i>This</i> I think is a great analogy for programming, there are programmers who learn their trade from copying code, reading guides, etc. and these guys can churn out useful code. However, unless you think about what you are doing, formalize it, reify it, and search for ways to improve it you won't invent anything new.
NASA in fact did knit memories for the Apollo guidance computer.<p><a href="http://en.wikipedia.org/wiki/Core_rope_memory" rel="nofollow">http://en.wikipedia.org/wiki/Core_rope_memory</a><p>"Software written by MIT programmers was woven into core rope memory by female workers in factories. Some programmers nicknamed the finished product LOL memory, for Little Old Lady memory"
Knitting <i>patterns</i> constitute programming—straightforwardly Turing-complete, thanks to conditionals and recursion—but knitting itself, the object produced by knitting, does not. It’s just output, unless of course someone writes a very very clever knitting pattern that lets you simulate Rule 110 by tugging bits of yarn. (I’m not holding my breath.)<p>But knitting is not the only programming language for string-based objects. There’s weaving, crochet, lace, macramé, and more—ostensibly you could make all the same things with these techniques as you can with knitting, but you will go about many things differently, and different languages are suited to different kinds of problems.<p>But this shouldn’t be surprising: programming is a craft, and all crafts have parallels.
I was looking at this the other day. My other half does a lot of knitting. Some interesting stuff:<p>Knitting markup language: <a href="http://www.knitml.com" rel="nofollow">http://www.knitml.com</a><p>Knitting is an acceptable LISP: <a href="http://wetpixels.blogspot.co.uk/2009/02/knitting-is-acceptable-lisp.html" rel="nofollow">http://wetpixels.blogspot.co.uk/2009/02/knitting-is-acceptab...</a>
So one of my daughters is a knitter, we wrote a perl script together to convert text instructions to charts [1]. Some folks find the charts easier to understand. During the process she really got a feel for how similar knitting and programming are.<p>[1] <a href="http://www.mcmanis.com/chuck/graphics/knit-chart.svg" rel="nofollow">http://www.mcmanis.com/chuck/graphics/knit-chart.svg</a>
Becky Stern is a hacker with some knitting projects. You can use a knitting machine to iterate your patterns faster :) <a href="http://sternlab.org/2010/11/hacking-the-brother-kh-930e-knitting-machine/" rel="nofollow">http://sternlab.org/2010/11/hacking-the-brother-kh-930e-knit...</a>
While carrying out those commands might not be programming, writing them down should count as programming.<p>But then again, documenting any algorithmic process could count as programming by those standards, say, baking a cake.