[Image-SIG] Pillow, the "friendly" PIL fork

Jerome Leclanche adys.wh at gmail.com
Sun Aug 1 03:31:00 CEST 2010


[To the whole list this time, again, for good. Really sorry for the
spam Daniel.]

Semi-related brain dump. It's indeed unclear which issues Pillow is
trying to solve, but PIL has indeed an extremely high amount of them.

First of all, one that bugged me for ever now, is the extremely poor
exception model. PIL arbitrarily catching SyntaxError, ValueError and
TypeError makes debugging extremely hard. Having to raise SyntaxError
(rather than a proper pil.BadFormat exception or something) is
terrible. I can't count the times where this bit me.

Second issue I have with PIL is its architecture. It's hard to
globally register custom format plugins, for example. A global
architecture redesign is something I'd love to discuss for hours, but
it would break every possible bit of backwards compatibility to get
something truly good out of it. I'm totally not putting the blame on
PIL on this one, python project plugins are hard to write sanely in
general. Although the "PIL" and "Image*" packages themselves do not
respect python standards (should be from imaging import .., or
something alike).

I have many other minor issues with PIL (with drawing,
cutting/pasting, so on), but nothing else worth forking on. But those
two are extreme.

On the wishlist as well is a more open development process. PIL is a
very widely used library, yet its development is very obscure. There
is no online version control or commit log, so on (or at least, not
indicated anywhere).

J. Leclanche / Adys


More information about the Image-SIG mailing list