Sunday, July 06, 2014

Software: Studied, World: Eaten

Well that was different. It՚s been a long time since I hung out in a real academic environment. The workshop was oriented around the organizer Warren Sack՚s book-in-progress, which is intended to connect the humanities and software in a variety of ways. The main goal was, I think, to explore and promote the idea that software is a bona fide medium of expression, which means at least (a) it is in some respects an extension of the unaided mind (b) and thus makes new forms of thinking possible, just as writing made new forms of art possible that were not available to the pre-literate, and (c) that software itself should be studied (and critiqued) as intellectual and artistic expression, just as we study and critique novels or paintings.

If this sounds too rarefied for what is usually thought of as an engineering discipline (and I admit that it does to me some of the time), the author is at least trying to ground his efforts in the works of certain famous and classic (and beyond dismissal) computer scientists, including Donald Knuth, Alan Kay, and Abelson and Sussman, all of whom were extremely technical but also accurately saw software and computation as important intellectual developments, not mere gadgetry.
The other important intellectual ground of the workshop was Marshall McLuhan and other media theorists, who emphasized the way in which media technologies have the power to reshape human thought and society.

Some secondary goals of the workshop:

(1) teasing out the non-technical intellectual roots of computational concepts, which are usually taken as givens that sprung fully-formed from the brow of Alan Turing. This is an entirely worthwhile project – somewhat more scholarly than the others – and it is one that connects to my own dissertation work. And it was the richest, newest, and best developed, in my inexpert opinion.

(2) trying to get humanists (artists, anthropologists, philosophers, etc) to understand software. Also a worthwhile project, but I wasn՚t sure the book՚s method, which consists of taking a few classic programs and attempting to step the reader through both their machinery and their intellectual background, was the best way to accomplish the goal. If I had a young arty, critique-y, politically intense young student who wanted to gain some understanding of the technological world, I՚d tell them to grab an Arduino and hang out in a hackerspace for a month and build a few things. Then they՚d have the necessary background to ask the right questions.

(3) trying to get technologists to think critically about the systems they build. This wasn՚t really a primary goal of the book, which seems to be strictly aimed at an academic market that is already open to interdisciplinary thought. But that idea is present in this community and from my outsider perspective seems to be one of the more important contributions it could make. As someone in industry, we build representations, abstraction, and systems all the time, and the ways we have for thinking about them are impoverished, we need all the help we can get.

So, combining all these goals sounds challenging; I think Warren is trying to do too many things at once. I empathize because I have the same problem when I try to write anything with more structure than a blog post – all the things I am interested in are connected and they all seem to want to be included.

A note on the workshop itself and interoperating with humanities types (cultural anthropologists, feminist studies people, etc): When I was in a 1-on-1 conversation or small circle, I had no problem at all in understanding these scholars and making myself understood. However, the larger-scale discussions seemed to devolve to a useless ritual of name dropping philosophers and flinging around trendy ideas (eg, yes, you can find racial or colonialist or militarist assumptions in software from the 60s/70s – so what? I know this, what I want to know is how to operate in the world even with all the racial and colonialist underpinnings that lie underneath it). This really grated on me; possibly it՚s because I am just not a native to this kind of discourse, but I suspect that something has gone wrong in academia. I՚m hardly the first to be unhappy with “critical theory” or whatever it is properly called, although I tend to be more sympathetic to it than your typical tech weenie (which is why I was there in the first place).

One of my right-wing trolls like to accuses academic critical theory as being symptoms of “cultural Marxism”, a program to subvert the West, but a real Marxist, if one could be found and dusted off, would scoff at this stuff because it is so goddamn inward. You can find coded racism all day long and not have any good ideas about what to do about it. And I think people in this world know it. The concepts of critical theory aren՚t that generative, and they don՚t fit naturally into the American mind. Phil Agre, my role model for this world, had the ability to digest this stuff, pull out key ideas, and express them in ways that were non-jargony and made technical sense. But he՚s not in the business any more, and I՚m not sure anybody else has really managed to move that particular ball further down the field.

Software on the other hand is eminently pragmatic: it gets stuff done. And the people who live inside it all day long tend to be gruff pragmatists themselves, without a lot of time or tolerance for the merely intellectual. This is a healthy attitude to some extent, but we are long past the point where software as a discipline has to grow up and acknowledge its connections to the rest of the human project. It is, of course, quickly infiltrating our social lives, our work lives, our political lives -- eating the world, in the celebratory/threatening tones of the industry. It hasn't yet interpenetrated very much with the world of ideas, which makes efforts like this workshop difficult, important, and exciting. We are in a revolutionary moment in history and it's eat or be eaten whether you are an anthropologist or an accountant.


jed said...

Something odd about the meaning of "world of ideas" in your last paragraph. Software (and more generally systems that are made largely of software are *made* of ideas. Software people talk mostly about ideas to each other.

Can you be more specific about the world you mean? Perhaps there's some potential for mutual opening?

kay schluehr said...

One of my right-wing trolls like to accuses academic critical theory as being symptoms of “cultural Marxism”, a program to subvert the West, but a real Marxist...

You have to take the people up where they are. The Frankfurt School or French (Post)Structuralism felt more an ambient solidarity to Marxism than analyzing the situation of the working class or having millenarian hopes for an end of history. They were more about reforming ( or revolutionizing? ) the bourgeoisie from the inside and this is not quite something everyone wanted to see applied on themselves.

They succeeded to some extent though as a moment of modernity and we are still puzzled about what that means? Maybe pragmatism / instrumentalism is already one of its residuals and it is inert to criticism. It doesn't decay under criticism like traditional values. It isn't a self-contradictory idealism whose subconscious traits can be laid bar and then it loses its power as a mighty fetish that it was once. You cannot unmask it and reduce it to a cargo cult. It is anti-fragile with respect to ideas and programs: if one fails two others take over. Finally, there is no ground but physics. The human history is a beginning, not an end. If software eats the world it won't stop eating at the boundary of human skin and the human brain. Technology treats the human as a challenge to overcome. This is also why Marxism is dead. There is nothing to boot from its humanist roots and its historical materialism.

Software studies. Turing anticipated already critical thinking targeted on his imitation game proposal. It is implied in the process of making technology and an annoyance. The most obvious defense of the human being has been that machines can't do this and can't do that and this might be our game. It is tiresome and we sense that we will lose it in the end but it must be played as long as we can.

Hal Morris said...

A major aspect of the post-modernist, critical theory or whatnot cloud of ideas is kind of a radical refactoring of the subject matter of literary studies, deemphasizing authorial intentions, freeing the text to be the thing in itself perhaps, and inviting readers to make what they will of the text.

The defining quality of computer programs is that they cause a computer to do something more or less well defined. It is no doubt possible to make up more than one story about what the program is doing, and one might even demonstrate some refactoring that would move a program from one story to another without changing what it makes the machine do. Perhaps that would be giving the lit crit crowd something more concrete than they are used to -- something with actual conditions of satisfaction.

Hal Morris said...

There is something very attractive and endearing (strange word to use but it pushed its way in) about Knuth's Literate Programming, though I haven't gotten far into it.

A philosophy of software I might like to pursue is one in which the transition between different levels of interpretation would be far smoother than is usually the case. This seems connected (in my mind) with a philosophy of ladders that enable one to ascend from beginner's GUI manipulation to more and more powerful levels of access. The ability, perhaps to lay out some report format with a GUI, and not only have it generate a script, but really do a lot to facilitate the user's skill at mapping the GUI layout onto the script and back again. One little piece of that might be you click on one box in the GUI layout and the corresponding piece of the script lights up. Then you change a parameter in the highlighted part of the script and watch the box change.

kay schluehr said...
This comment has been removed by the author.
kay schluehr said...

The defining quality of computer programs is that they cause a computer to do something more or less well defined.

Sure, a computer is the interpreter in the last instance but this only shapes the "cultural context" of the programmers subculture. However not even what a computer is, is well defined. You might understand enough about them to see the same core principles everywhere roughly summarized as the "von Neumann architecture" or some of its shallow generalizations.

Also changing the program text when you attempt to "port" it to a new operating system or treat it disrespectful because you want to remove cruft, is quite convenient. You might not want to alter other parts because for your life, you don't have a clue what they are for, which specs they refer to and what problems the ancestors tried to fix. Encountering a holy text doesn't imply that it is well written. Also, you know, most programs are broken in one way or the other on a functional level. It is not the machine which tells you that.

Programmers culture is actually a pretty good model for cultural practices in the large. There are also significant differences. A running program is not software and it is of no importance what it means, on which computer it runs, who the author is etc. It becomes a material or virtual reality. Actually I do think the philosophical vocabulary is quite poor. You might just say it produces "behavior" but this is still a metaphor and there doesn't need to be anything that behaves in any way. If you want to provoke discussion, say that a running program is a subject or a proto-subject or a soul. Why not?

Hal Morris said...

Kay S.: "If you want to provoke discussion, say that a running program is a subject or a proto-subject or a soul. Why not?"

OK: A running program is a subject or a proto-subject.

This way corporate "persons" may be able to generate 100s of millions of virtual persons, all with free speech guarantees and voting rights.

Lately, I've noticed Steve Fuller, #1 mastermind of what might be called the postmodern wing of social epistemology getting all Humanity 2.0 and transpersonal at

Hal Morris said...

For more CS meets postmodernism action, you might tune in to a not yet begun series on Ribbonfarm described this way:

Totalizing Views by Keith Adams. Sub-disciplines of computer science secretly think that their view of computing is correct, and other views are really degenerate, half-formed, ad hoc approximations to their correct view. E.g., information retrieval thinks all computing is really search, machine learning thinks all computing is really traversing an error surface, systems people think that computing is fundamentally about physical machines that do stuff in the world, etc. In this series, Keith will explore different totalizing views of computing.


Totalizing narratives of the meaning of computing. What will they think of next?

kay schluehr said...

Totalizing narratives of the meaning of computing. What will they think of next?

We are past the Church-Turing peace. Those who refer to safe mathematical foundations will be told that we aren't living in a Turing Tarpit anymore. We learn that people with good foundations are not much happier than those without.

Totalizing narratives in computing have long been known as "programming paradigms", another 1970s term. I love all that stuff.

Hal Morris said...

Google{ "church-turing peace") ==>
"no results found"

I'm afraid you sound rather like a computer pretending to be the Delphic Oracle.

kay schluehr said...

I'm afraid you sound rather like a computer pretending to be the Delphic Oracle.

A human who sounds like a computer which pretends to be an Oracle. That's no reason to be afraid. It gives a taste for the neurotics to come but it can also just be a sign of boredom.

The Church-Turing peace. I think it is a nice idea to perceive an equivalence proof of various different approaches to computing which states that they have all the same power as a peace agreement. A wise man can close a battle between excited youngsters with the words that a good programmer can express any program in any language once the language has surpassed a certain threshold. This is true pluralism. Of course the youngsters still find ways to combat, no matter what the elders say.

mtraven said...

I'm an elder (no white beard, but I work with people who are mostly 25 years or more younger than me) and I take the opposite tack -- that all programming languages may be capable of expressing the same algorithms but differ vastly in their ability to readily capture design ideas, which is what the activity of software construction is really about. And I try to teach them the ancient languages of a more civilized age.

Maybe I am beyond the Church-Turing Peace? Never was really that peaceful, language wars have always been with us.

kay schluehr said...

Maybe I am beyond the Church-Turing Peace?

All of us are - though I'm somewhat tired and often block discussions at work, except when colleagues want to build an XML based "simple" programming language, where I demand a minimum of taste and education. Last time I failed grossly and they built it nevertheless. They said, it was a customer demand, I replied that the customer was misadviced ... It is mostly on this kindergarten level, which seeks for a conclusion via autoritah. It is brave to not give up on the ideal of civilization.