Today’s pioneer is active both in open source and politics. She wrote the first implementation of Perl 6 using Haskell. Also, she became the first transgender minister in Taiwan. She’s an open government proponent, and animal rights advocate. It’s almost impossible to categorize the colorful personality of today’s pioneer. Meet Audrey Tang.
An avid open source contributor and free software advocate, Tang name is related to software projects of all kinds. Let’s take a look at some of those.
Audrey Tang has been an active member of the Perl community since more than ten years ago. At some moment though, she got fascinated by the architecture of Darcs, a distributed version control system implemented in Haskell. The problem was that to understand Darcs, she had to learn Haskell. The rabbit extended their hand and Audrey went right into Type Systems Wonderland.
To learn Haskell she started studying Type Theory from the TaPL and ATTaPL books, which after a few chapters made her realize that the best way to put her new learnings into practice was to create a new language. Being a Perl expert, she decided to implement Perl 6.
So what started like an exercise to understand type systems, to get a grip on Haskell, so she could follow Darcs’ architecture, ended up becoming the first implementation of Perl 6. What a journey!
Now it’s time for some spreadsheets.
In 2005 and inspired by the Wiki model, Dan Bricklin, the inventor of spreadsheets, decided to create collaborative spreadsheet software, so people could work in a similar way as they do with wikis. This was the birth of the WikiCalc project, which Tang got involved with afterwards.
The problem this project presented was that all the logic was implemented server-side, which meant there were a lot of roundtrips between browser and server, making WikiCalc only usable in a localhost kind of setup.
SocialCalc met their needs, allowing for real-time collaboration, cross-browser support, and most importantly in these kind of products, conflict resolution. For those interested, Tang provides a nice explanation of how conflict resolution works in this article about SocialCalc.
SocialCalc had such an extensible engine, that they could add features with ease to the project, like rich text editing. This presented a problem though: how to prevent the project from having every single feature out there:
In the case of SocialCalc, having Tracy Ruggles as our chief user-experience designer was the key for the project to converge toward a shared vision. Since the underlying SocialCalc engine was so malleable, the temptation of feature creep was very real. Tracy’s ability to communicate using design sketches really helped us present features in a way that feels intuitive to users.
This is a very valuable lesson, because for a project to succeed is not enough to have great coders like Audrey Tang, but also to have someone with a clear vision of what the product must do.
You can read more on the EtherCalc project website about how something that started as a wiki-style spreadsheet project, ended up becoming a scalable collaborative spreadsheet that today runs on node.js. There you will find a full description of these projects’ architecture, along with how each migration to a new technology with new capabilities was implemented. If that sounds like too much, in this other article, Audrey Tang teaches how to build a web spreadsheet in 99 lines of code: Web Spreadsheet.
Besides all her accomplishments with code, let’s take a look at her 2006 prediction about the future of open source, delivered at a tech conference:
Because, as we know, worse is better, so the worst scripting language is doomed to become the best.
During the Sunflower Student Movement in Taiwan, Audrey Tang got involved with the protests, providing them with her programming abilities to create all kinds of platforms that would help them collaborate online, since among other things, they wanted a more participative democracy.
At the next elections Ing-wen Tsai became the first woman to be elected president of Taiwan. She wanted a link with the younger–more digital–generations, so she invited Audrey Tang to become a Minister. Tang is now in charge of Taiwan’s social innovation.
Of course for a hacker activist like Tang, becoming part of the government had some conditions. This is the very special covenant that she has with the Taiwanese government, following these three points:
- Voluntary Association (working with, not for the government)
- Radical Transparency (every meeting transcription is published after 10 days)
- Location Independence (to allow for creativity wherever she is)
In her office, Tang advocates for open government, where citizen’s participation is crucial. Also she considers herself an “Anarchist Minister”, one that doesn’t give commands, nor obeys commands.
Let’s finish today’s profile with the poem that Tang uses to describe her job:
When we see “internet of things”, let’s make it an internet of beings.
When we see “virtual reality”, let’s make it a shared reality.
When we see “machine learning”, let’s make it collaborative learning.
When we see “user experience”, let’s make it about human experience.
When we hear “the singularity is near”, let us remember: the Plurality is here.