Like may others, I recently received the fateful email notifying me that Lutz Roeder will be giving up his work on .NET Reflector, the brilliant and essential tool he developed to peer into the internal implementation of .NET assemblies. Of course the whole idea of reflecting into an assembly is cheating a bit, since one of the principles of OO design is that we don’t care about implementations, only about contracts. It gets worse, since one of the main reasons for using .NET Reflector is to reverse engineer someone else’s (particularly Microsoft’s) code. Yet it is the perfect tool when one is good at reading code and simply needs to know how to do something special — something that cannot be explained, but must be seen.
While many terms in computer science are drawn from other scientific fields, reflection appears not to be. Instead, it is derived from the philosophical “reflective” tradition, and is a synonym for looking inward: introspection. Reflection and introspection are not exactly the same thing, however. This is a bit of subjective interpretation, of course, but it seems to me that unlike introspection, which is merely a turning inward, reflection tends to involve a stepping outside of oneself and peering at oneself. In reflection, there is a moment of stopping and stepping back; the “I” who looks back on oneself is a cold and appraising self, cool and objective as a mirror.
Metaphors pass oddly between the world of philosophy and the world of computer science, often giving rise to peculiar reversals. When concepts such as memory and CPU’s were being developed, the developers of these concepts drew their metaphors from the workings of the human mind. The persistent storage of a computer is like the human faculty of memory, and so it was called “memory”. The CPU works like the processing of the mind, and so we called it the central processing unit, sitting in the shell of the computer like a homunculus viewing a theater across which data is streamed. Originally it was the mind that was the given, while the computer was modeled upon it. Within a generation, the flow of metaphors has been reversed, and it is not uncommon find arguments about the computational nature of the brain based on analogies with the workings of computers. Isn’t it odd that we remember things, just like computers remember things?
The ancient Skeptics had the concept of epoche to describe this peculiar attitude of stepping back from the world, but it wasn’t until Descartes that this philosophical notion became associated with the metaphor of optics. In a letter to Arnauld from 1648, Descartes writes:
“We make a distinction between direct and reflective thoughts corresponding to the distinction we make between direct and reflective vision, one depending on the first impact of the rays and the other on the second.”
This form of reflective thought, in turn, also turns up in at an essential turning point in Descartes’ discussion of his Method, when he realizes that his moment of self-awareness is logically dependent on something higher:
“In the next place, from reflecting on the circumstance that I doubted, and that consequently my being was not wholly perfect, (for I clearly saw that it was a greater perfection to know than to doubt,) I was led to inquire whence I had learned to think of something more perfect than myself;”
Descartes uses the metaphor in several places in the Discourse on Method. In each case, it is as if, after doing something, for instance doubting, he is looking out the corner of his eye at a mirror to see what he looks like when he is doing it, like an angler trying to perfect his cast or an orator attempting to improve his hand gestures. In each case, what one sees is not quite what one expects to see; what one does is not quite what one thought one was doing. The act of reflection provides a different view of ourselves from what we might observe from introspection alone. For Descartes, it is always a matter of finding out what one is “really” doing, rather than what one thinks one is doing.
This notion of philosophical “true sight” through reflection is carried forward, on the other side of the channel, by Locke. In his Essay Concerning Human Understanding, Locke writes:
“This source of ideas every man has wholly in himself; and though it be not sense, as having nothing to do with external objects, yet it is very like it, and might properly enough be called internal sense. But as I call the other Sensation, so I call this REFLECTION, the ideas it affords being such only as the mind gets by reflecting on its own operations within itself. By reflection then, in the following part of this discourse, I would be understood to mean, that notice which the mind takes of its own operations, and the manner of them, by reason whereof there come to be ideas of these operations in the understanding.”
Within a century, reflection becomes so ingrained in philosophical thought, if not identified with it, that Kant is able to talk of “transcendental reflection”:
“Reflection (reflexio) is not occupied about objects themselves, for the purpose of directly obtaining conceptions of them, but is that state of the mind in which we set ourselves to discover the subjective conditions under which we obtain conceptions.
“The act whereby I compare my representations with the faculty of cognition which originates them, and whereby I distinguish whether they are compared with each other as belonging to the pure understanding or to sensuous intuition, I term transcendental reflection.”
In the 20th century, the reflective tradition takes a peculiar turn. While the phenomenologists continued to use it as the central engine of their philosophizing, Wilfred Sellars began his attack on “the myth of the given” upon which phenomenological reflection depended. From an epistemological viewpoint, Sellars questions the implicit assumption that we, as thinking individuals, have any privileged access to our own mental states. Instead, Sellars posits that what we actually have is not clear vision of our internal mental states, but rather a culturally mediated “folk psychology” of mind that we use to describe those mental states. In one fell swoop, Sellars sweeps away the Cartesian tradition of self-understanding that informs the cogito ergo sum.
In a sense, however, this isn’t truly a reversal of the reflective tradition but merely a refinement. Sellars and his contemporary heirs, such as the Churchlands and Daniel Dennett, certainly provided a devastating blow to the reliability of philosophical introspection. The Cartesian project, however, was not one of introspection, nor is the later phenomenological project. The “given” was always assumed to be unreliable in some way, which is why philosophical “reflection” is required to analyze and correct the “given.” All that Sellars does is to move the venue of philosophical reflection from the armchair to the laboratory, where it no doubt belongs.
A more fundamental attack on the reflective tradition came from Italy approximately 200 hundred years before Sellars. Giambattista Vico saw the danger of the Cartesian tradition of philosophical reflection as lying in its undermining of the given of cultural institutions. A professor of oratory and law, Vico believed that common understanding held a society together, and that the dissolution of civilizations occurred not when those institutions no longer held, but rather when we begin to doubt that they even exist. On the face of it, it sounds like the rather annoying contemporary arguments against “cultural relativism”, but is actually a bit different. Vico’s argument is rather that we all live in a world of myths and metaphors that help us to regulate our lives, and in fact contribute to what makes us human, and able to communicate with one another. In the 1730 edition of the New Science, Vico writes:
“Because, unlike in the time of the barbarism of sense, the barbarism of reflection pays attention only to the words and not to the spirit of the laws and regulations; even worse, whatever might have been claimed in these empty sounds of words is believed to be just. In this way the barbarism of reflection claims to recognize and know the just, what the regulations and laws intend, and endeavors to defraud them through the superstition of words.”
For Vico, the reflective tradition breaks down those civil bonds by presenting man as a rational man who can navigate the world of social institutions as an individual, the solitary cogito who sees clearly, and cooly, the world as it is.
This begets the natural question, does reflection really provide us with true sight, or does it merely dissociate ourselves from our inner lives in such a way that we only see what we want to see? In computer science of course (not that this should be any guide to philosophy) the latter is the case. Reflection is accomplished by publishing metadata about a code library which may or may not be true. It does not allow us to view the code as it really is, but rather provides us a mediated view of the code, which is then associated with the code. We assume it is reliable, but there is no way of really knowing until something goes wrong.