Tuesday, July 21, 2009

Progressive vs. Conservative

[Warning: loose thoughts ahead!]

Microsoft's Eric Meijer gave a talk at Google yesterday, and afterwards I had lunch with him. One of his remarks was (I paraphrase) that Microsoft users want to be told what to do, while the Java community is more vocal or argumentative. (He didn't discuss the Python community but in my experience it falls in the latter category.)

Now, while lying sick in bed with a hacking cough, I am reading George Lakoff's "The Political Mind". This book tries to model the distinction between conservative and progressive politics on the differences between two different ideal family models: the strict father (from which most conservative moral virtues flow according to Lakoff), and the nurturing family, from which the progressive moral virtues derived.

The parallel with Microsoft users vs. Java users seems to be all too obvious: Microsoft as the strict father: If you are loyal you will be rewarded, but if you stray you will be punished; whereas in the Java (or Python) community benefits and moral goodness flow from helping each other (which includes sharing open source software, and, apparently, bikeshedding :-).

What about other companies and communities? I can't help thinking of Oracle as the ultimate strict-father company, which makes me worry about the Sun takeover. Are Linus Torvalds and Richard Stallman strict fathers?

This reminds me of another book, "The Fourth Turning" by William Strauss and Neil Howe.

Their theory states that history repeats in the cycles of one saeculum (80-100 years), with alternating changes of values in culture (mother-focused), followed by changes of values in civic order (father-focused), where both turnings are direct results of the other.

Very much to recommend, this book. It helped me to understand my generation, why we live in the times we live in, and what lies ahead of us.

I think MS, because of it's dominance in mainstream business culture, has the veneer of the strict father, but in fact, bends over backwards to indulge his "children." See maintenance of backward-compatibility in Windows, choose-your-own hardware, etc.

I respect RMS, but he is a strict ideologue. When Jobs wants to know what you think, he'll tell you, and Linus's family is too large for him to be all that strict, IMHO.

But here's my question for you: Is Google the ultimate indulgent parent?

The difference between RMS and Oracle or Apple is that in contrast to the usual ill-considered remarks about RMS not giving people choice, the fact is that with RMS you have the ultimate choice: to disobey him and find your own way. With Oracle and Apple, you don't even get that: you must obey, or empty your wallet to buy back that freedom of choice.

Be wary of tracts that ascribe political outcomes to root psychological causes. They steal bases - and get away with it - because they are so flattering to the intended audience. An example from the right is Sowell's The Vision of the Anointed; like Krugman he's a great economist but a lousy pundit.

For software the differences are more structural than philosophical. Microsoft has total control of their stack. If they stop supporting something you have to stop using it because the patches stop coming (and you don't have the source). In that case you'd better obey every commandment from MS because that's the only information you have about the future. In the case of Java/Python/etc pronouncements from on high are merely suggestions. Don't want to use Python 3.x? Then don't.

The philosophical component is much smaller. Perl and Python have opposing philosophies on TMTOWTDI/TSBOOWTDI and syntax but structurally the communities are similar. CPAN isn't PyPi but they serve the same purpose and in a similar way. I came to python via perl and the transition was almost a NOP.

Ha! I hope you are in part reading Lakoff because of a recommendation from me. Not that everything is it is amazing and true, but it's a really useful analysis and an important point of view. It's one of my favorite books, and one that has had the most impact, certainly within the last year.

Frankly, I've always considered *you* something of a stern father to the Python project, conserving the tradition of what python is, rejecting ideas that would break what has been built up unless and until they prove their worth, and always mindful that what seems like a great idea for a new feature here might have unforeseen consequences elsewhere. Quite the model of conservatism, in fact!

I don't have experience with the Microsoft stack, but I've always considered Java to be quite strict, most notably due to the consequences of static typing and the lack of first-order functions. I love Python, but sometimes I wish it was even more loose, and took in some of the features of Ruby, which seems to be the epitome of freedom. Interestingly enough, when you look at web frameworks, Rails is much more opinionated than anything else I've used.

So, if Microsoft users want to be told what to do (conservatives) and Java users are supposed to be progressives does that mean Java users want to tell people what to do? Progressives generally want to tell people what to do with their property and time through taxation and regulation. BOTH want to control in some way... Seems like two sides of the same coin.

Which is the group that wants to help people but doesn't want to force people in any way?

I spent many years in the Java community and it has always seemed to me that there are plenty of Pythoners, though not necessarily a majority, who do want to be told what to do. There's more tension in the Python world about "too many choices" being presented than there is in Java - not just for little things like redundant language features and methods within a library, but also regarding the multitude of libraries/frameworks/technical approaches that can be applied to the same problem. When it goes beyond eliminating redundancy and into "please don't make me understand things that deeply", that has always struck me as a need to be guided. But maybe I misread it.

Most of the literal "strict fathers" that I know are conservative, but emphasize personal responsibility and personal ownership of the benefits/consequences of one's actions. The nurturing (or indulgent) families I know provide a safety net for individual behavior--and a corporate ownership of the benefits/consequences of individual actions.

So, which software approach would you map to the progressive idea of "it takes a village to know what's best for you" -- and which to the libertarian notion of "you're free to succeed or fail spectacularly?"

The Linux and the FSF crowds are characterized as liberal by mainstream analysts because they are so.

Whereas the conservative parenting model describes both an ideology and an organizational structure, the only thing you can say about liberal groups is that they think a lot, developing sophisticated (and at times crazy) ideologies and structures.

RMS "followers" specifically use him as a de facto spokeman, he is strict mostly to himself, shall he stray the community will grow another head, we don't follow him, he just happens to be at the front and doing such a good job nobody tries to replace him.

You also said the python community fits the parenting model, that doesn't seem right either.

Rather the community uses you as an intercommunication device. I think python users see your opinions not like "what is right because the BDFL says so" but as "what is more readable for other pythonists in general".

The Political Mind reminds me of Jonathan Haidt's upcoming book The Righteous Mind. It has the subtitle "Why good people are divided by politics and religion" and I get the impression it deals with the same underlying questions in a more thorough and deeper way. I, for one, am really looking forward to reading it.

The "Progressive vs. Conservative" is a false choice paradigm. Both political ideologies are based on the use of violence to enact social change. I reject this paradigm. Individuals should be able to live their lives as they wish, as long as they do not attempt to use force upon another individual.

If the progressive paradigm is so nurturing, then solicalism should be more nuturing than American progressivism, and communism more nurturing than socialism. However, communism is resposible for the most mass murder of any political ideology.

If progressivism is so nurturing, then why all the guns? When does "Nurturing" become a case of Munchausen Syndrome.

The beautiful and shiny progress vs. ugly and disgusting conservatism. This looks like a liberal definition.

In relationships within a community, I would distinguish to independent dimensions: 1) liberal vs. totalitarian axis and 2) the profit right vs. anti-profit left.

The liberal left (open source) is known as `anarchism'. The pro-capital dictatorship (Microsoft) is a `fascism'. Like a family, anarchism is efficient because of absolute confidence, cooperation and share of resources rather than fence-building, waste multiplication and profit wars among children. The family is opposite to capitalism, to individual profit maximization. Though the father and central brain may exist in a community, father is never aspired to privatize any wealth of the subordinates. With clever father organization, family performs much much better. Though, it may fail if father goes sick.

The good family is the brotherhood and solidarity of the first with the paternalism and organization of the second - the `socialism'. Ideally, all people and their wealth is united into one large family - the communism.

The progress of civilization is not opposite to conservatism. Compare the natural evolution with the artificial selection (now, with bioengineering). I identify the socialism with intellectual development in the interest of the global community while the mindless invisible market hand develops something unpredictable (ok, rich always benefit). In the beginning, the natural evolution was more efficient. Now, we have the consciousness for sustainable development.

The progress is opposite to individual freedom. The individualists and wild animals are more clever and strong than their civilized counterparts. They have no organization and rely on themselves in everything. The civilization limits us - tells us what to do and what not - but provides with basics and much more for free and leaves a lot of spare time for creative work. Any growth is a structurization. It constrains the parts. The individual cells organized into large bodies trade freedom for comfort, long live and give raise to the intellect.

The fastest progress is possible in a communist organism with a robust head. For instance, though (thanks) Stalin was a strict father, the country economy soared up at unprecedented speeds in the human history. Turning the Soviet enterprises towards the private profit and introducing free market later was a total disaster for the economy.

Your own (or at least the book's) political biases are showing quite badly here. Over on this side of the fence we have exactly the opposite perspective.

At a high level, the American left pursues larger and more influential government (more services), whereas the right seeks smaller and less invasive government. The left argues that it is trying to "even the playing field"... the right sees this basically as "embrace, extend, extinguish" in nearly all fields.

@valjok: While the USSR did modernize quickly under Stalin, it did so at an incredible cost. Outright genocide of huge swaths of several ethnic groups. The USSR mostly missed the "Great Depression" because its economy was such a basket case at the start that it didn't have any "international financials" to mess up. They did improve industrial production, but the country needed massive international food imports to handle the loss of farm labor from forced migration and genocide.