
Knitting as programming  - ams1
http://infotrope.net/2012/05/16/knitting-as-programming/
======
lifeisstillgood
Well, the Jacquard Loom (<http://en.wikipedia.org/wiki/Jacquard_loom>) was a
massive weaving loom capable of producing highly sought-after intricate
patterns in silk at impressive even-by-todays-standards speeds.

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)

------
Jun8
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.
[http://www.adafruit.com/blog/2012/03/22/the-cool-new-
thing-w...](http://www.adafruit.com/blog/2012/03/22/the-cool-new-thing-with-
tweens-sewing/)). 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.

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.

 _This_ 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.

~~~
nieve
Despite your assertion that the "grandma" mode of knitting isn't programming
and mostly doesn't innovate, that (rather more diverse than assumed) community
is responsible for the vast majority of new patterns and often experiments
extensively. I think it's great that more (computer) geeks are getting into
fields that have always had a high geek percentage and you can definitely make
it a really geeky endeavor, but there's a lot of wheel reinvention and failure
to RTFM. Fun, definitely worth doing as a learning experience, but perhaps we
shouldn't be so much with the patting each other on the back and insularity.
For that matter computer geeks aren't even in the running for geekiest
approach to knitting - for that you have to go to the heavy math folks. It's
intellectually, visually, and tactilely beautiful stuff.

Also you know appear to know little about real world cooking outside of a
recent, highly-distorted, and publishing industry-driven world view. Recipes
may list precise ingredient measurements (though most don't), but they're
rarely intended to be used as-is and there's huge variation in detail. Even
more so, almost all cuisines are more a collection of common techniques and
ingredients than a set of well-defined dishes, with much regional variation,
and huge historical change. Most European-descended Americans and much of
Europe use a _tiny_ subset of the ingredients our ancestors did and have
completely dropped entire genres of food. Just take a look at the actual
variety of citrus fruits versus what we use and the huge range of uses they
were put to.

It's like someone decided Java was the only programming language, the standard
library was the only library allowed, and btw we needed to get rid of half the
syntax! In that metaphor you're lionizing a couple of programmers for making
the jump to Objective-C or C# while somehow overlooking the vast majority of
programmers using everything from for decades Perl to ML and mixing things up
left and right. Yeah, a lot of chefs & professional cooks (these are terms of
art, not just a fame thing) try new things... and no, they're not even close
to the only people doing so. In fact it's mostly a recent thing that chefs are
innovators, for a very long time they were the ones working precisely to
recipe. Consider the formalization of French haute cuisine by Antonin Carême &
Georges Escoffier and the subsequent rigid adherence even now.

Try learning cooking from a cook - not a book - experimenting for yourself,
and reading one of the many books like "Cookwise" that actually get into what
happens and how to change it. It's the antithesis of hacking to assume there's
nothing to learn and no room for experimenting!

------
callan
NASA in fact did knit memories for the Apollo guidance computer.

<http://en.wikipedia.org/wiki/Core_rope_memory>

"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"

------
evincarofautumn
Knitting _patterns_ 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.)

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.

But this shouldn’t be surprising: programming is a craft, and all crafts have
parallels.

~~~
MaysonL
Bobbin lace patterns look like they could be the output of some finite state
automata:

<http://www.vansciverbobbinlace.com/Patterns.html>

~~~
nieve
[Obligatory disclaimer: I am not a lacemaker, but my very geeky SO is (and a
knitter and weaver and so on and so forth) and often delivers discourses on
the subject and several of my friends have been similarly inclined math geeks
who knit & such.]

To a first approximation a lot of them are - simple geometric/topological
rules applied in a loop, a small number of branches, occasionally recursion.
There's a huge amount of technique and no small amount of technical knowledge
in making them work with a relatively high friction material with variable
tensile strength & stretch. Execution on this stuff often involves keeping
more mental state than most of the programming I do so clearly it's not always
as simple an automata as it might seem, but there's a kinship.

------
gouranga
I was looking at this the other day. My other half does a lot of knitting.
Some interesting stuff:

Knitting markup language: <http://www.knitml.com>

Knitting is an acceptable LISP:
[http://wetpixels.blogspot.co.uk/2009/02/knitting-is-
acceptab...](http://wetpixels.blogspot.co.uk/2009/02/knitting-is-acceptable-
lisp.html)

------
ChuckMcM
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.

[1] <http://www.mcmanis.com/chuck/graphics/knit-chart.svg>

------
sp332
Becky Stern is a hacker with some knitting projects. You can use a knitting
machine to iterate your patterns faster :)
[http://sternlab.org/2010/11/hacking-the-brother-
kh-930e-knit...](http://sternlab.org/2010/11/hacking-the-brother-
kh-930e-knitting-machine/)

------
JackpotDen
While carrying out those commands might not be programming, writing them down
should count as programming.

But then again, documenting any algorithmic process could count as programming
by those standards, say, baking a cake.

------
surement
Judging from the 4th episode of the tv show Connections, programming
<i>evolved</i> from knitting, so this is not surprising.

