Tuesday, November 30, 2010

C++ Classes, Darwinism, Strict/Unstrict Constructivism

C++, the first language to really make encapsulated object-oriented work hand in hand with primitive (and fast) C types.

Object-Oriented, the idea that in programming, tasks or entities, blobs or situations, can all be encapsulated in classes that manage themselves; a class has a private, internal cellular auto-environment. Object-Oriented is a good way to prevent bugs in programs, as well as ramp up complexity by spawning dynamic forms.

However, much emphasis is placed on the idea of inheritance, as part of a crusade to find the common ancestors of all situations in a category. This "ur-situation" is placed at the top (or bottom depending how you look at it) as an abstract (in Javanese) class with virtual methods, to be defined by its inheritors.

Inheritors, we hear, and we think of things like Southern White Plantations, Paris Hilton, Emperors, etc. Momus, the singer/song/thinker has written a wonderful essay on Darwinism, trying to expiate the man's theories from strict interpretation as "hierarchical". "Voyage on the Beagle" was Darwin's time studying the birds of Galapagos, who had played their own game of life on the island, bouncing colors and beak-shapes from one side to the other. Darwin was led to conclude that it "is impossible to put one species above the rest", shunning the Strict Constructivist thinking of Lamarck, the idea of progress, and perhaps even the idea of the ur-whatever.

But Strict Constructivism lives on; remember 2002, George W. Bush defining his own personal brand of S.C.. Un-Strict Constructivism is more creative, and emphasizes divergence into multiplicities. The Galapagos Syndrome: species evolving independently and creatively because they are in an isolated "petri dish" environment, allowed Darwin to absorb evolution in a holographic, or nonlinear time-form. http://imomus.com/indexholidays.html He also compares Japan to Galapagos, an island that has created a wonderfully self-referential culture.

Thus I have come to put less emphasis on ancestro-lineal inheritance in C++. This is hard to do, for I was taught to create abstractions. I still do, but more than worrying about inheritance and a common ancestor, I think about connections, relationships. Forexample, in JUSTINTS, within a ChubberySituation there are SponGinger, RoyalMinister, and Barre, in a complex relationship, where they hold each other and also interact with a cloud of interlinked RatChords. These classes, are balanced by how much code density they have, in an attempt to split code up equally between multiple characters based on their role.

Yes, perhaps if we think of "Dramatic C++", we could think of our classes as "actors playing roles", a king, queen, court orchestra, fool, a reference array of the dukes, barons, and church officials, arranged by tax brackets, the various guilds, organ makers, oscillators. The code should oscillate as a fast virtual version of the yearly and seasonal cycles of this virtual stage.

Writing code here is an act of Shakespearean creativity, filling roles to the brim with meaning. It is as a result of loosening up and pursuing Un-Strict Constructivism.

Only when the actors are comfortable with their parts, then can we talk about Lineage, the idea of multiple kings with the same name, Richard III, Richard V, the idea that an essence of kingliness, or with an emperor godliness, is abstracted and precedented by the ancestors.

Actually thinking about ancestry can be a very philosophical experience. Lamarck drew charts that started with a sole ancestor and end with many species, the typical school-child's view of evolution. This is arborescent thinking, to use a Deleuzian term. But actually, remember we have just as many ancestors as we have inheritors. It goes backwards too. This is hardly covered in C++, but many languages have tried to create multiple ancestors that can come together in the same class, using labyrinthine techniques such as interfaces, templates, and so on. This is trying to make something hierarchical into a rhizomal environment (to use another Deleuzian term). It is actually very hard to make rhizomal code, but it is where the gold is at, for it allows your users to have a holographic experience. To do it with inheritance would be to make all sorts of funny things such as the Oedipus syndrome, rings of inheritance, multiple diverse ancestors, convergence.

This would be a Post-Lamarckian situation, for again, "the usage of post as a prefix shall indicate that we are neither fans or haters of whatever it is; we can basically exploit the dialectic between the presence of whatever it is and the complete negation also". Id Est, we return to inheritance as a "wonderful" synthetic concept, used among the characters to portend a sense of deep-time, or grandeur, or profound, mixed with Darwin's "play within a play", the virtual stage of converging relationships.

No comments:

Post a Comment