“More than anything, people describe today’s computers not as calculators but as media.”
— Casey Alt
In Objects of Our Affection: How Object Orientation Made Computers a Medium, Casey Alt explores the history of object-oriented programming and how it has changed the way we interact with computers in general. In a way, computers have become media, according to Alt’s assertions.
Media is a very strangely flexible word — I can see why Alt would question how it has become such a catchall to represent different things and ideas. It’s easy to overlook the history of programming and technology in general, but I do feel like it’s valuable to still learn about these things.
For me in particular, it’s helpful to learn about the humble origins like Smalltalk and how they impacted our modern object-oriented languages. Even as I learn how to make objects in p5.js, I feel like I have very little understanding of just how much object-oriented programming can be used for. I understand the basics of what an object is, but it’s hard for me to even imagine what all the different potential applications could be when I’m still such a novice.
Object-oriented design started before the world had a name for it.
It’s also interesting to think about how object-oriented design was already starting to happen before we gave it that name, as the case with Spacewar! It’s always entertaining to me when some sort of technology is advanced or pushed to its present limit with video games, which aren’t always regarded as something technologically revolutionary by a lay audience.
Looking at the next example of early object-oriented technology, Sketchpad is fascinating to me. I’m amazed that the earliest predecessor of our modern-day drawing tablets was a pen-on-screen interface like the Wacom Cintiqs of today. I realize that the Sketchpad of 1963 is nothing like the precise drawing devices we have today, but most professional pen tablets like the Wacom Intuos still lack a screen. Among the hobbyist drawing community, Cintiqs are a costly luxury. Given how pen tablets without screens are cheaper and more plentiful, I would have guessed that the first pen-computer interface would have been more like an Intuos.
The way technology develops isn’t always a picture-perfect pipeline of advancement.
Alt lays out how all of these early systems weren’t perfect embodiments of object-oriented programming. Looking back on all this history, it seems like there are a lot of unrelated attempts to advance programming technology. Yet in each application, the goal of the product was very different, making it harder to see how they advanced the idea of object-orientation.
This is a lengthy quote from Alt’s paper, but it sums up the situation quite clearly.
“This difficulty in disentangling the language from the rest of the medium underscores the deeper fact that, from its very outset, object orientation was imagined not just as a language but as a complete medium or interface between humans and computation.”
He goes on to write about how the members of computer scientist Alan Kay’s Learning Research Group “considered Smalltalk and object orientation not just as a medium for computer-human interface but rather as the medium for bridging the gap between the digital machine language of computers and the embodied thought processes of humans.”
When I think about programming, I just think of a bunch of confusing code that can build a website or an app. However, this line of thought is extremely limited. It feels a lot more exciting to look at it for what it is — the interface between humans and computers and a method for communication between the two entities. This almost philosophical view of what programming is makes it more intriguing.
Everything looks like “spaghetti code” to a beginner, but the different generations of languages show a great deal of change and growth.
Additionally, during the late 1960s and early 1970s, third-generation languages increasingly adopted structured programming approaches, which sought to eliminate the often convoluted “spaghetti code” produced by GOTO statements by establishing standardized control structures for common processing tasks, such as sequencing, selection, and iteration.
I think it’s very clear how object-oriented programming has changed through the different generations of coding languages. Frankly, even just seeing how multiple circles can move in p5.js without hundreds upon hundreds of lines of code sheds a lot of light on just how powerful object-oriented programming is in comparison to hardcoding everything. Abilities like polymorphism make it much easier to create dynamic effects and systems.
For me, thinking about media archaeology just makes me want to understand how the systems we use daily work behind the scenes. Toward the end of his chapter, Alt mentions how World of Warcraft or Second Life count as object-oriented. I stumbled across an article about what World of Warcraft would look like today if it was built in Unreal Engine 4, which allows game designers to create extremely advanced interactions without ever directly touching code.
As systems let people do advanced things with end-user interfaces rather than with direct code, it makes me wonder if the dream of computer scientist Alan Kay of having people learn programming as fluently as they learn to read and write would ever be realized.