A long time ago, when I started building my first video game server for
Double Cluepon, my video game company, I did a bad
thing. I looked at the AMF library for Perl and Python and decided that
Python's looked better. I had always meant to learn Python, and this felt like
the perfect opportunity. It had cooperative multitasking (Twisted) and it had
an ORM (SQLAlchemy), so along with the messaging format (PyAMF), I had
everything I needed to build a server for a Flash MMO (later migrated to AIR).

Let me reiterate my mistake: While under time constraints, I chose to learn a
new programming language. I didn't realize my mistake until it was too late.

At the Bank we have a home-grown ETL framework that we've been using for quite
some time. We recently completed a total rewrite, but unfortunately we left out
a few changes. Had I gotten those changes in 5 months ago, I would have only
had to break the API of about 10 modules. Today, in order to make those
changes, I have to break the API of 122 modules.

What follows is an account of this ordeal, provided for entertainment value
only. There will be a future post that explains some of the things I did to
make this task surmountable.