Hacking: rewriting the core system for my main project -levitt - for the fourth or fifth time. I had the original idea for this stuff in early 2001, and I've been tinkering ever since. It started off as a Zope product, coded in Python. I'm sticking with Python, naturally, but have dropped Zope, and I'm moving away from object orientation too. Zope has a lot to offer in terms of server architecture and ready made UI. ZODB persistence, transactions, threading model and the management UI give a lot of leverage. But to exploit them you have to buy into the Zope Object Model - including acquisition - and that's too big an imposition. Especially since I'm now moving away from OO.
Why move away from OO ? Because it introduces too much coupling between data and behaviour. Mainstream OO, with single inheritance and strong compile time type checking, as exemplified in Java and C#, binds your method body code very tightly to your data, making it less reusable. Dynamic languages like Python and Smalltalk introduce less coupling between data and behaviour, so code is more generic and reusable. I aim to loosen that coupling even further in levitt.
Seeing an Advogato link to Xerblin got me really excited the other day. There are some similarities to levitt: it's a programming system project, coded in Python. Xerblin's developer has used Forth ideas in his kernel. I have been using a Forth like stack based core in levitt too. I'm now moving to something different, since I've come to think there's too much state on the stack. Oberon ideas are there in Xerblin too. I'm far less familiar with this system than Forth and Python, but it sounds cool. It's good to see some fresh approaches to programming systems, rather than the same tired old ideas from Java and .Net.
Books: war reading continues with Hitler and the Power of Aesthetics. The obvious and pressing question on Nazism is: how could it happen ? Most answers are framed in terms of brutality, coercion, desperation, economic catastrophe. These explanations have seemed incomplete to me for some time now. Last year I read Sebastian Haffner's Defying Hitler, which gives one a tremendous sense of how the Nazis skillfully played on the psychology of loyalty, camaraderie and patriotism to sweep people into complicity. Spotts book explains in compelling fashion how seductive the aesthetics of Nazism were: the torchlight parades, the SS uniforms, the swastika banners, Wagner's music, Speer's monumental neo-classical architecture, and Hitler's theatrical sense of neo-religious ritual. The book reminds me again of Paul Feyerabend commenting on how he nearly joined the SS instead of the German Army, because the uniform was so cool.
Another thing that made Nazism possible was Hitler's charisma. Our image of Hitler now is largely determined by Allied wartime propaganda, which portrays him as a ranting demagogue, foaming at the mouth. That can't have been how the German populace percieved Hitler in the 30s. Spotts has a lot to say on how Hitler didn't engage in traditional political debate, but made an emotional appeal to his audience. By all accounts, his personal presence was hugely charismatic and overpowering. So we should distrust charisma. Personal experience has led me to this conclusion too - when I've made mistaken career choices its been because I've fallen prey to charismatic and persuasive personalities. Charisma can hide a multitude of sins. I must do some more reading on the mechanisms of charisma.