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.