A blog post that I’ve thought about many times and, shamefully, never quite got around to posting.
For the last 18+ months, Malthe Borch has been working on templating for Python. Not the traditional mode of blank-slate-write-my-own, boy-this-is-fun. But instead, superfast implementations of existing templating languages (ZPT, Genshi) with lots of tests and rapid bug fixing.
First with z3c.pt and then Chameleon (core and zpt), the amount of work he has done is staggering. Look at the changelogs on those PyPI pages: 26 releases for z3c.pt, 41 for chameleon.core, 19 for chameleon.zpt, and 18 for sourcecodegen. Big-time numbers.
If you’ve followed what he’s done, it’s even more than that. He’s done quite a number of “well, that’s not working out, let’s discuss a re-implementation” (e.g. ditching lxml as a troublesome dependency via libxml2) efforts. He spent a ton of time working with Sidnei da Silva on unit tests and test breakage for ZPT conformance. He participates heavily in discussions not just about Chameleon, but also projects that interact with it or depend on it (Repoze, Plone, Zope.)
Our KARL project has been based on Chameleon from the beginning, ever since Chris McDonough went down the rabbit hole one weekend, off the clock, experimenting with a port to then-nascent BFG. Basing an application rewrite on a new template implementation would normally be a red flag. But with Malthe’s attention to detail (plus Chris working on Chameleon too), everything was very smooth. We got the huge benefit without much downside.
We as a community have some core software that we all use, over and over, without much thought to its provenance. A lot of it comes from Jim Fulton (ZODB, buildout, etc.) Chameleon has become like that. It’s almost like the electricity: we all use it, it’s super-reliable, and we’ll never appreciate it enough until something goes wrong.
Here’s to some rightful appreciation for Malthe’s work.