Sunday, April 09, 2006
Unix, Complexity, Patriarchy, Matriarchy, and Eunuchs
"User Friendly?," edited by Simson Garfinkel, Daniel Weise, and Steven Strassmann, The UNIX-Haters Handbook, 1994, http://www.simson.net/ref/ugh.pdf (from Daniel Weise's Microsoft Research page).
"Basics of the Unix Philosophy," by Eric Raymond, The Art of Unix Programming, 2003, http://www.faqs.org/docs/artu/ch01s06.html (from ZenPundit).
"Jesusism-Paulism, Part III: Every Man a Panzer, Every Woman a Soldat," by Dan, tdaxp, 14 July 2005, http://tdaxp.blogspirit.com/archive/2005/07/14/every-man-a-panzer-every-woman-a-soldat.html.
"On Modularity," by Mark Safranski, ZenPundit, 7 April 2006, http://zenpundit.blogspot.com/2006/04/on-modularity-other-day-i-was.html.
"Fists of the Patriarchy," by Razib, Gene Expression, 7 April 2006, http://www.gnxp.com/blog/2006/04/fists-of-patriarchy.php (from ZenPundit).
Razib from Gene Expression wonder why in all his
years of searching through the literature I haven't stumbled upon a matriarchy. I emphasize the "archy" because there are many cultures that are matrilineal, matrifocal, or, where women have a prominent role in the decision making process within a society. Among the Iroquois older women had veto powers over the decisions of the male war leaders. But note that their powers were of veto, men still ultimately presented and constrained the range of choices. My overall point is that there are many cultures where men and women are rather equal in their power in comparison to the stratified societies of the Eurasian civilizations. But, the distribution is skewed, there is no inversion to the operational chattel treatment of respectable females that was characteristic in ancient Athens or modern Saudi Arabia. The alternative to patriarchy is not matriarchy, it is non-patriarchy.
The answer is The Unix Philosophy.
The Unix Philosophy
Recently, Mark looked at "modularity":
The essence of modularity in a complex network system is getting to have your cake and eat it too. As effective, flexible and adaptive as scale free networks might be compared with traditional, hierarchical, 20th century systems or randomly distributed networks, modular ones are better- at least in terms of human networks. I can't speak for non-human systems ( go ask Dr. Von)
Coming from a computer science background (and having recently installed Ubuntu on my PC), the word "modularity" reminded me of The Unix Philosophy.
The Unix Philosophy are the guiding principles in writing programs and utilities for "Unix." This is a broad range, from simple elements like cp and ls to the C programming language, yet all philosophically unix program share the following in common.
- Rule of Modularity: Write simple parts connected by clean interfaces.
- Rule of Clarity: Clarity is better than cleverness.
- Rule of Composition: Design programs to be connected to other programs.
- Rule of Separation: Separate policy from mechanism;
separate interfaces from engines.
- Rule of Simplicity: Design for simplicity; add
complexity only where you must.
- Rule of Parsimony: Write a big program only when it is
clear by demonstration that nothing else will do.
- Rule of Transparency: Design for visibility to make
inspection and debugging easier.
- Rule of Robustness: Robustness is the child of transparency and simplicity.
- Rule of Representation: Fold knowledge into data so program
logic can be stupid and robust.
- Rule of Least Surprise: In interface design, always do
the least surprising thing.
- Rule of Silence: When a program has nothing surprising
to say, it should say nothing.
- Rule of Repair: When you must fail, fail noisily and
as soon as possible.
- Rule of Economy: Programmer time is expensive; conserve it in
preference to machine time.
- Rule of Generation: Avoid hand-hacking; write programs
to write programs when you can.
- Rule of Optimization: Prototype before polishing. Get it
working before you optimize it.
- Rule of Diversity: Distrust all claims for “one true way”.
- Rule of Extensibility: Design for the future, because
it will be here sooner than you think.
Complex Adaptive Networks
Even if you aren't a bearded Unix administrator, these principles will be familiar to you if you've read a book on complex adaptive networks. Such as Howard Bloom's Global Brain.. To take the first few items from the list and relate it back to life's neurosystem:
- "Write simple parts connected by clean interfaces."
Prokaryotes are the most successful lifeforms in, on, or above the planet. Their colonies are really networked computers, and their highly social life is governed by chemical exchange. The chemical processes are simple and highly effective: by developing a system that clearly says "come here," clearly says "stay away," and clearly says "let's eat!," prokaryotes are able to live in vast colonies that dwarf our networks of supercomputers.
- "Clarity is better than cleverness."
While the prokaryotes' cleverer cousins, the eukaryotes, exist, they are more fragile than their simpler kin. Indeed, as a fraction of biomass they are minuscule.
- "Design programs to be connected to other programs."
From prokaryotes to dogs to humans, isolation is a form of torture and death. Life is social.
I won't go through the entire list ---for that you'll have to buy Global Brain for yourself -- but the evolutionary adaptability of this philosophy is clear. As a final note for this section, even those who despite Unix have compared it repeatedly and often to highly successful genetic warriors
Chromosomes accumulate random genetic material; this material gets happily and haphazardly copied and passed down the generations. Once the human genome is fully mapped, we may discover that only a few percent of it actually describes functioning humans; the rest describes orangutans, new mutants, televangelists, and used computer sellers. The same is true of Unix. Despite its small beginnings, Unix accumulated junk genomes at a tremendous pace. For example, it’s hard to find a version of Unix that doesn’t contain drivers for a Linotronic or Imagen typesetter, even though few Unix users even know what these machines lookalike. As Olin Shivers observes, the original evolutionary pressures on Unix have been relaxed, and the strain has gone wild.
Others have noticed that Unix is evolutionarily superior to its competition,rather than technically superior. Richard P. Gabriel, in his essay “The Riseof Worse-is-Better,” expounds on this theme (see Appendix A). His thesisis that the Unix design philosophy requires that all design decisions err onthe side of implementation simplicity, and not on the side of correctness,consistency, or completeness. He calls this the “Worse Is Better” philosophyand shows how it yields programs that are technically inferior to programsdesigned where correctness and consistency are paramount, but thatare evolutionarily superior because they port more easily. Just like a virus.There’s nothing elegant about viruses, but they are very successful. Youwill probably die from one, in fact.A comforting thought.
Why the diversion? Simple to set up this: Men are biologically closer to The Unix Philosophy than Women.
I noted a similar thing when I compared the Apostle Paul's view on sex relations with those of the 20th century feminist Rebecca West:
Paul saw what the 20th Century feminist Rebecca West famously saw while researching her magnum opus Black Lamb and Grey Falcon, and captured as
"The main difference between men and women is that men are lunatics and women are idiots." Rebecca West (Black Lamb and Grey Falcon)
Black Lamb and Grey Falcon is a travelogue of ex-Yugoslavia (Slovenia, Croatia, Bosnia and Herzegovina, Serbia, and Kosovo) immediately before the Nazi invasion. Over and over again she saw the same pattern: men were swept away by far-away schemes and ideas (like lunatics), while women were so absorbed by families and personal relationships they ignored those same forces (like idiots). To Dame Commander West, men were idiotically refusing to focus on the real details of daily living while women were foolishly refusing to focus on the fate of their nation and culture. In other words, men are idiots for not engaging in long-term coalition building on a family level (in "tight" or "dense" networks) while women are fools for not engaging in long-term coalition building on the national and ideological level (in "loose" or less "dense" nets)
In other words, men are competitive-cooperative. As Bob Kurzban has scientifically demonstrated, all male groups rapidly form cooperative hierarchies when they merely know about the existence of another group. Female groups do not. Males achieve this through application of the Unix Philosophy. Males are genetically equiped for complex intergroup activity -- that behavior commonly called "politics." This is the philosophy that relies on modularity, simplicity, silence, and repair, or as Razib might say, "males need strict dominance heirarchies because they lack the requisite social intelligence to fluidly manipulate different contexts. "
Of course, if there is a masculine, Unix orientation towards the complex intergroup interactions that we call patriarchy, then there is also a feminine, anti-Unix orientation is genetic equipment for complex intragroup activity -- that state of affairs commonly called anarchy.
Thus, Razib's original point about there no being no patriarchies is true to a point. It makes sense that there is no female-dominated politics, because females face a genetic disadvantage in politics (complex integroup behavior). But if there is a genetic predisposition fo female-dominated anarchy (complex intragroup behavior) -- then where are the gynarchical anarchies -- the femimine "competittions and tumults"
In familes throughout the world and throughout time. There is perhaps no better example of an arachy on the planet than a family. Several individual, no written laws, no agreed upon hierarchy, no judiciary -- only an evolving consensus of who does what and gives what to whom, when, where, and how. Indeed, as in many cultures only the father is allowed to strike another, a family with a father absent is close to absolute anarchy (in that the police function is actually forbidden).
Attempts to find matriarchies operating in the political world are thus as fruitless as trying to find families that are patriarchal. The human beings in society -- the human network nodes in our complex adaptive network --- our genetically gifted with different advantages.
The Eunuch's Philosophy?
There's an odd pun in this post that's worth exploring. If men are gifted with the Unix philosophy, are they also born with a eunuch's philosophy?
Apparently so. As Razib writes:
What does this have to do with dominance heirarchies? I will posit that perhaps males are phenotypically more varied that females, that is, their standard deviation on characters is greater. The idea is that the SRY induces greater developmental instability in male fetuses than female ones. Some of this is bad, ergo, more pathological or subfit males. But, some of it explores the outer edges of fitness space, and who knows when new traits might come in handy? Now, consider two women who have 10 sons. Imagine that the expectation is the same for the characteristics of sons for both women, but the variance for one woman is far greater than for the other. In a winner take all reproductive skew scenario all of the sons of the woman whose offspring exhibit no variance might not reproduce. In this case, the "risky" strategy, where a mother produces superfit and subfit sons, is the optimal one. To some extent this is a reductio ad absurdum, humans are not elephant seals, and our relatively mild sexual dimorphism is a clue that we are not a hyperpolygnous species (though we are not exclusively monogamous in the sense idealized by modern romantics).
The complement of the Unix philosophy (simplicity and cooperation) is the Eunuch's philosophy (more sub-fit and super-fit nodes). Compounding the natural difference in networking protocols, male and female networks differ because male networks are more likely to have more diversity, and thus be ruled by an implicitly hierarchical power law.
But such is a post for another time...
Nice work of synthesis Dan.
"Even if you aren't a bearded Unix administrator, "
Shades of Scott Adams !
Eunuchs in the Ottoman Empire and Imperial China could be rather ruthless and domineering on occasion. Or perhaps they were simply more effective at gathering power because they weren't as -ah- distracted as their unmarred competitors in the hierarchy
Posted by: mark safranski | Monday, April 10, 2006
Many thanks Mark.
Scott Adams is a first-rate author. "God's Debris" stays with me  -- and I just found out by reading its wikipedia page that it's based on analogical thinking and Hindu philosophy (so you may enjoy it). Likewise, his spekticism towards "skeptics" (near the end of The Dilbert Principle)  is import reading.
As far as eunuchs -- the "practice makes perfect" bent of my seminar on creativity  would imply that by giving up romance, one has more time to purposefully practice other interpersonal skills. Likes, by demonstrating extreme cooperativeness with the existing regime, one is given more authority to compete for the group in other ways.
Posted by: Dan tdaxp | Monday, April 10, 2006
Some notes from around the edges:
As a former long-time Unix Systems Admin, I would say the 17 pts in the "Unix Philosophy", while they were not followed as often as they were celebrated, Unix-types always had them in mind. Often the most used Unix applications did not follow the principles too much (e.g. Bind, Sendmail) though over time they got closer to the ideal.
Bloom's Global Mind was a very interesting book. His writing often push me around mentally and make me re-evaluate things. I read it about 2 months ago. I have queued it to read again in a few months. Years ago I read his The Lucifer Principle and I have been meaning to do so again.
By coincidence, I had read God's Debris about 2 months ago (right after Global Brain). It really pushed my brain around also. I need to read it again in about 6 months. I did not know the background in the ideas and I will look into those.
I never made the connection between Unix philosophy and evolutionary strength. I always just thought of it as an efficiency issue.
In my IT career I always try be efficiency/effectiveness driven (think personal IT Kaizen). I always described it a "lazy philosophy":
1) Automate (don't do mundane tasks more then once);
2) Re-use (don't keep re-inventing the wheel);
3) Improve (spend time now to get better, to save time and rework over the long term);
4) Clarity (of procedures/code/documentation/configuration - assume you will need to so something 6 months from now when you don't remember anything);
5) Close and Move-on (finish the task or project fully and move on).
Posted by: purpleslog | Tuesday, April 11, 2006
Here is the correct God's Debris link:
Posted by: purpleslog | Tuesday, April 11, 2006
Thanks for the fixed link! I updated it in my comment, too.
I agree with your common about common unix application. The evolutionary process seems to take advantage of entropy, breaking up large products and running from their. For instance (while the are both cross platform), both OpenOffice and Mozilla started as huge, integrated, "do everything" products. Yet, both have been torn apart into component parts (Firefox, Thunderbird, etc for Mozilla, the various "projects" for OOO , etc). This allows things that would have been impossible before, such as OOo's fileformat, OpenDocument -- why may become the standard file format of Google!
One question: how practical is "close and move-on"? In my experience a long process of maintenance is needed for anything big & new. After the Leviathan of code-writing, the SysAdmin of Phase IV implementation....
Posted by: Dan tdaxp | Tuesday, April 11, 2006
Heh. a Software Develpment PNM Theory.
There are system development methodologies that take an evalutionary approach: Extreme Programming, and Scrum among others. They allow a big monolith project to broken down into smaller iterations. Also, work on it can become more interchangeable. These methods themselves are being refined over time.
Posted by: purpleslog | Tuesday, April 11, 2006
How about a Software Development 5GW Theory?
Check it out -- it discusses iterative programming and the future of war
Posted by: Dan tdaxp | Tuesday, April 11, 2006