Saturday, March 20, 2010

S03 Powerful Interfaces

On our visit to the Cave we were shown a number of student projects. I found myself especially interested in the Cave in the context of the limits it imposes on the process of production. In Professor Cayley’s class Cave Writing, students use software developed by other students to create programs which can be run in the cave. This intermediate software is an “easy-to-use application that allows non-programmers to create projects on their own laptops and install them in the Cave without the intercession of computer programmers” (http://courses.brown.edu/page.php?key=LITR:1010G:2010-Spring:S01). Since the programs which run in the Cave are designed for such a specific medium (i.e. they can’t be accurately translated onto, say, a computer), such a tool is extremely convenient. In a certain sense, every program can be considered a descendant of the interface used to write it and the sequence of interfaces preceding it—it is thus also the culmination of collaboration among the programmers of each interface.
I find this hierarchy of programs interesting not only in terms of ownership, but also because of its implications for software development itself. A programmer who writes low-level code (i.e. code which is closer to hardware) has more freedom than a programmer who writes high-level code (i.e. code which provides greater abstraction from machine language), and can therefore also be seen as more powerful. Different programming languages such as Python and Java differ not only in semantics—there are disparities in the structure underlying the syntax as well. While at a lower level both may execute the same function, the structure of the interface affects what functions the user believes to be possible and how he/she organizes the program (e.g. if the user is employing object-oriented programming, his/her design will need to follow the rules and structures dictated by OOP).
I thus found it interesting to consider how much freedom authors of the Cave programs had to construct their creations, and how much of their code had been predetermined by the authors of the cave-writing interface. To what extent is allowing students to create projects “without the intercession of computer programmers” facilitating creative expression which would otherwise not be possible? To what extent is it limiting their imaginative freedom by supplying them with predetermined structures for executable programs? How much power do our interfaces really have over what we program?

No comments: