Tuesday, April 29, 2008

The Bandwidth of Code 

Discipline and punish
Hell is Other People's Code is, perhaps, another way of saying that code is a terrible way to communicate with other human beings. Foreign code inspires a mixture of apprehension, anger and anxiety precisely because the bandwidth capacity of written code is so horrifying small. Enormous amounts of context, nuance, philosophy, history -- in short, knowledge -- is lost forever each time we try to translate our ideas and desires into program code. And this tremendous loss of knowledge looks to be unavoidable. It's not due to any operational errors on our part, rather it's the natural, structural consequence of trying to capture group consensus and extremely sophisticated ideas in a languages dumb enough for a computer to understand.

This extremely limited communication bandwidth invites many of tragic ironies that afflict developers. The inability to scale development up to large teams, the extreme difficulty of reusing previous work, and the constant need to revisit, refactor and refine -- much of this comes from the general impossibility of translating complicated, ever-changing business objectives into simple, static code.

Topics: Design | Architecture

links to this post (0) comments

Limitations of a scientific theory of human consciousness 

BioEssays by Alfred Gierer via MikeGene
We appear in our own memories, fears and hopes, desires and plans—as we are, or as we believe ourselves to be, or as we wish to be seen by others, as we want or do not want ourselves to become and as we see our past, and our future possibilities. Behavioral dispositions are influenced by these ‘‘self-images’’, which of course do not represent concrete spatial conceptions, but are rather abstract representations of features of the individual in his or her own brain. Self-images are often contradictory and can never be complete because no physically existing entity can contain a complete duplicate of itself. Self-images change in the course of time and alternate within conscious experience. They interact with one another and feed back on themselves. Perhaps these multiple self-images belong to the aspects of consciousness that cannot be determined fully by analysis of the physical state of the brain.

Topics: brain | consciousness

links to this post (0) comments

Monday, April 14, 2008

Code as consensus 

discipline and punish
It's communication that seems to be the essential ingredient of all the different phases and levels and spheres of software engineering. Product managers have to communicate requirements to the developers, architects have to communicate abstractions to the developers, developers have to communicate code to each other, and sales has to communicate needs to the customers. Given all this commuication going on it may be that creating software is actually a communication exercise.

The goal of this communication exercise isn't to create code -- or anything else. The goal is to reach consensus. That consensus just happens to take the form of running code. And so code is then nothing more than a kind of communal history, or maybe even a kind of constitution -- either way it's a document that rigorously and unambiguously captures the consensus of the community that built it. And like all documents it is useful only insofar as it can be read and understood by its readers. If creating software is an art then it has nothing to do with painting but is perhaps more like the the art of rhetoric.

Topics: design | architecture

links to this post (0) comments

Wednesday, April 09, 2008

The Luminous Ground 

Christopher Alexander
These 15 properties, were at the beginning, the underpinnings of the whole theory. Later, I realized that these properties were not the most fundamental aspect of the theory, and that they occur as consequences of an even more fundamental structure -- the system of living centers, and are simply the ways that centers support each other to create more life.

... Later the dynamic aspects of wholeness and the idea of structure preserving transformations became even more important. It turns out that centers have to be understood dynamically in order to be understood at all, hence as results of unfolding and structure-preserving transformations. And it turned out that living structure, which I had first identified statically, is more profoundly understood when it is understood as a product of dynamics.

... I now embark on the most ambitious, and possibly the most thought provoking chapter in the four books.

To make the reader share with me my sense of what is really happening in the architectural examples where life appears.

...When I look at a thing which has a living quality, sometimes I am aware of it, almost as if it is faintly glowing. I am aware of something like light -- not actual light itself, but something softer, something very like it -- in the thing. The more it is alive, the more it seems faintly to shine.

In my later years, as I have encountered this sensation more concretely, and with more and more certainty, it seems to me, that I am seeing God, in the glowing of all things, shining out from that old brick wall, or from that bush, or from that face, or from the flowers in a vase.

... a huge , single Self, underlying all the matter in the universe. Some reality, more pure and more fundamental than the one we are used to in our everyday world. ...This actual unity cannot be described as a structure. Yet it is this unity which is the source of life in the things we admire, and the goal of all our efforts when we make a building or a work of art.

Topics: design | life | Christopher Alexander

links to this post (0) comments

This page is powered by Blogger. Isn't yours?