Hacker News new | past | comments | ask | show | jobs | submit login
Knitting as programming (infotrope.net)
49 points by ams1 on May 17, 2012 | hide | past | favorite | 12 comments

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)

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

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!

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


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

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


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

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

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

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

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.

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

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact