Audrey Tang
is far and away the most awesome hacker I've ever had the
privilege to have worked with.
She's best known for creating Pugs,
a perl6 implementation in Haskell. Though it's now semi-retired
in favour of the newer implementations that it had a role in inspiring,
it represented a huge leap forward and a quantum shift in Perl6 development
at a time when enthusiasm around Perl6 was sorely flagging.
She was the first
CPAN contributor
to have uploaded 100 modules.
She's the key figure behind Perl 5's internationalization,
as well as the i18n of many, many other individual pieces of software.
She was part of the committee that designed the Haskell 2010
standard, and has made innumerable other contributions to the open
source community.
I never got seriously involved with Pugs,
but many of the things Audrey did with it shaped my thinking
around open source, community, and how we should collaborate.
First was the idea that a project should be optimized for fun
(-Ofun1),
not for control, or strict adherence to the founder's vision,
or anything else. Second, whereas many open source projects
keep a very tight rein on who has commit access and make getting a
commit bit
an arduous process, Audrey aggressively gave out commit bits
to anybody who happened to wander by in the general vicinity of Pugs.
Got a great idea? Here's a commit bit, go implement it.
Notice something missing in the docs? Here's a commit bit; go add it.
Ranting in IRC that something's not working? Here's a commit bit;
go fix it. Extending this trust makes people feel welcome and want to
contribute. It fosters an air of community instead of making
prospective new participants feel as though they are looking at
climbing (or worse, building) a pyramid.
Audrey would likely demur at my calling her brilliant,
but it's a fitting descriptor for her.
She has a unique and penetrating insight into code and
an uncanny knack for encouraging the people who write it.
I count myself as fortunate to have been able to work with her and to
be part of a few of the communities she's had such a profound impact on.
1 -Ofun: -O is the compiler option that tells
it how you want your code optimized.
Audrey's
presentation on -Ofun [pdf] talks more about how to maximize
the amount of fun in your software project.
Ada Lovelace Day is an international day of blogging about women in science and technology.
You can find more information at the Finding Ada website.