Tuesday, February 12, 2013

Levels of Abstraction and Alienation

In my first post for this class, I thought about how it must have felt psychologically for people to suddenly not be completely in control of their devices. Going from purely mechanical machines that could be disassembled and their secrets laid bare, digital machines must have felt strange and alien. The same thought struck me while I read the section about how the old guard fought against higher level languages, preferring to stay with the lowest levels for the sake of efficiency. I wonder if there wasn’t also some element of alienation they faced as programming moved towards the more abstract, losing touch with the connection to the hardware. I took the first two courses in the computer science department, cs61a and cs61b, and one of the programming projects that stands out distinctly was writing a basic compiler, moving from one level of abstraction to another. While I was considering taking cs61c and moving further down in the abstraction hierarchy, what appealed to me was understanding those murky levels between the high level programming I had been doing and the basics of ones and zeros and logic gates I was somewhat familiar with. It must have felt strange going in reverse, for those original programmers to see their field going in the opposite direction - away from the “real” programming they knew and off into unknown territory. I might be reading too much into that section, but since our class is about the culture surrounding these transitions, I hoped we could focus a bit more on the human element as well.

1 comment:

  1. I really enjoyed this post, Annalise, not only because it draws on your personal experience with programming but also because it picks up nicely on the culture shifts hinted at in the Edwards. On a slightly later but relevant period, a fair bit has been written about early hacker culture and the ways that hackers are now seen as criminal elements, juvenile pranksters, etc. when in fact they were originally an essential part of computing culture, with strict standards of integrity regarding openness of code, and so forth. We could also talk more about "black box" vs. "white box" approaches to technology, as well as the tendency to valorize those with "deeper" or more esoteric access to machine language. Great post to get us thinking!

    ReplyDelete