Thoughts on design patterns, object oriented programming and designing for & by the pluriverse
As I was going through some old notes on how python works, I could not stop thinking about this particular image below. It intrigued me because python was designed this way.
Everything is an object in python and OOP programming languages; these objects are organized into classes, which allow individual objects to be grouped together. It reminds me how ”...this objectivizing stance leads to the ethos of human dominion over nature that forms the basis for patriarchal culture and capitalist societies”, as Escobar mentions.
In Designs for the Pluriverse : Radical Interdependence, Autonomy, and the Making of Worlds; distinguished critic of development, Arturo Escobar writes against nothing less than all of modernity, a “particular modelo civilizatorio, or civilizational model… an entire way of life and a whole style of world making.”
Let’s go back to the image above; that is part of python design patterns: “Design Patterns are the most essential part of Software Engineering, as they provide the general repeatable solution to a commonly occurring problem in software design. They usually represent some of the best practices adopted by experienced object-oriented software developers.”
But who are these developers that adopted best software design practices? (mostly males & white & privileged or intersections thereof).
Design, by virtue of its materiality ‘hardwires’ particular kinds of politics into bodies, spaces, or objects. Quoting Finnish architect Juhani Pallasmaa, “A building is not an end in itself. A building conditions and transforms the human experience of reality; it frames, structures, articulates, links, separates and unites, enables, and prohibits.”
In object oriented programming, the paradigm that has dominated software engineering for the past 15–20 years, information usually gets filled into an object. And that object is supposed to represent a feature of the real world.
In systems with users, the likelihood is that you, the user, are represented by an object: one of thousands of copies (or instances) of a User class. As an object you will have predefined properties, that will then get filled in by you. Probably when you fill in an online form declaring what attributes you have.
Escobar (2018) points out: *“The entire edifice of modern Western civilization (with its particular forms of patriarchy, racism, and capitalist exploitation) is based on this objectivizing operation—on this dualist ontology, as we will call it— because it is based on a strict separation between subject and object, reason and emotion, and many other dualisms that we will uncover in this book, and yet more dualisms that readers will go on to discover on their own.”*
This. The objectivizing operation. In software systems, we are represented as objects and as the word objectivizing means: to make objective or impersonal; objectify. We become objects.
“This objectivizing stance leads to the ethos of human dominion over nature that forms the basis for patriarchal culture and capitalist societies...”, Escobar mentions.
A long time ago, Marc Andreessen famously said that “Software is eating the world”. But now, AI Is Eating Software.
AI is increasingly encroaching all parts of software development and eliminating mundane tasks of coding and programming rapidly.
Apart from assisted decision making, diagnostic and prediction, work of AI researchers and influencers have led to a hyper acceleration wave: Software powered by AI does not only achieve performances comparable to the human level, but creates something that would challenge an average person’s imagination and perception of their own abilities.
Interestingly, one of the first books on Computer Science foundations states:
“Every other science deals with the universe as it is. The physicist’s job, for example, is to understand how the world works, not to invent a world in which physical laws would be simpler or more pleasant to follow. Computer scientists, on the other hand, must create abstractions of real-world problems that can be understood by computer users and, at the same time, that can be represented and manipulated inside a computer” (Aho & Ullman).
It makes you wonder where today's mindset around tech saving the world may come from.
But representation doesn’t just go one way. We create something to represent us, but once created, we allow it to change how we see what was there to start with.
So, can tech really help in designing for the pluriverse? As sociologist Boaventura de Souza Santos says: “We are facing modern problems for which there are no modern solutions, hence the need to learn from non-modern or a-modern worldviews.”
Arturo Escobar. Pluriversal Politics. https://www.dukeupress.edu/Assets/PubMaterials/978-1-4780-0846-0_601.pdf Tarry Singh. https://www.forbes.com/sites/cognitiveworld/2019/08/29/software-ate-the-world-now-ai-is-eating-software/#592cadb95810 Anna Leach. https://medium.com/@annajleach/forget-special-snowflake-theory-object-oriented-programming-caused-identity-politics-d06d2d6ca8e0 Matt Thompson https://anthrodendum.org/2018/08/27/designs-for-the-pluriverse-book-review/