I think that as programmers we need to pick the _appropriate_ level of
abstraction, but often that's hard, and we tend to use too much rather
than too little.
To expand on this, one concept I really like from Latour is his idea of "empirical metaphysics": the idea that each actor in the network has their own ideas about the fundamental nature of the world. He says "actors incessantly engage in the most abstruse metaphysical constructions redefining all the elements of the world" (p. 51). He worries that traditional sociologists have pre-decided the metaphysical issues at stake and have done so in a way that reduces the number of agencies that are "really acting". They've done this, he says, "in order to prepare the ground for social engineering on a grand scale and smooth the path towards modernization."
So this is exactly what is being obscured by the "map": the "metaphysical innovations proposed by ordinary actors". By instead following the tracings, we can reveal a wealth of maps, one for each actor in the network.
To bring it back around to software, another thing we know is that all abstractions leak. Latour would council us that this is not some unfortunate quality of reality that disappointingly foils our plans as engineers. Instead, he says that "controversies" like these leaks are opportunities: they are an instance where the black box of some assumed collective opens and the previously invisible actors of which it is constructed become visible, with all of their rich metaphysical innovations: their own diverse ideas about what the system is.
Rather than repressing these and reclosing the black box as soon as possible we should learn from these actors (which, remember can be anything from individual API calls, to a particular user role, to one of the layers of network agreement, to the social conditions in the open source project behind one of the frameworks, ete etc). If the system is in the process of changing (which it always is) then it is likely that one or more of these newly visible actors is in the process of gaining a more prominent place in the network, of building up more alliances with other actors. The only way we can hope to adapt to this change is to carefully observe the metaphysics each of these actors proposes: what system do they seem to imagine they're part of?
I'm not well versed in Latour, so I may be misunderstanding ... But I think it's very important to draw distinctions between behavior and identity.
One of the problems we get into when pursuing a Aristotlian classification of things is that it always breaks down when you look deep enough. In software this leads to the occasional horror show of OO inheritance, interfaces, and traits. In philosophy this leads to the indeterminable questions of "who am I" and "what is art."
But, back to behavior vs identity. If one changes their perspective from attempting to identify and isolate things, to attempting to describe interactions ... You can reach some fun conclusions.
Instead of looking for the atomic thing that defines Peat, you look for a collection of interactions over time that share a high degree of commonality -- but not perfect. Or for a tree, it's the interaction with air, sunlight, soil, water, etc. Calling something Peat or a tree is a convenient abstraction for communication, but it's an awful description of reality.
Applying this to software -- it seems that the object oriented approach is oriented towards identity, whereas functional languages seem oriented towards behaviors.
(Fans flames, drinks another beer)
//Ed--
You received this message because you are subscribed to the Google Groups "Philosophy in a time of Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to philosophy-in-a-time-o...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Applying this to software -- it seems that the object oriented approach is oriented towards identity, whereas functional languages seem oriented towards behaviors.
(Fans flames, drinks another beer)