Some "style" issues: I wrote monotone for flexibility, debug-ability,
cryptographic integrity, experimentation. We've rearranged and
replaced subsystems several times over (field-upgrading our databases
as we went) as we were learning. This is important to me, but it
imposed a major set of across-the-board speed penalties: notably that
the disk format, network format and memory formats are all different,
and none is optimized at all for constant factors. Lots of
transformation and re-verification. Git is written in "performance
above all else" style, but it's much more rigid in its shared data
structure and much less forgiving about having its midsection
field-upgraded. There's also the overhead of my quirky C++ style vs.
kernel-hacker C style. I don't like my code twiddling pointers a lot.
I like a lot of automatic assertions. Git style feels to me like
asking for memory faults. Maybe I'm a bit of a wuss.