Audrey Tang by @SebastianNavasF

Audrey Tang — Open Government Hacker

Alvaro Videla
A Computer of One’s Own
5 min readDec 22, 2018

--

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.

Audrey the Hacker

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.

Perl 6

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!

Spreadsheet software

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.

This led the team to embark in a rewrite from Perl to Javascript, moving the spreadsheet processing functions from the server to the browser. After three years of development, they managed to release a new project, called SocialCalc.

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.

Worse is Better Prediction

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:

I think, but I cannot prove, that next year JavaScript 2.0 will bootstrap itself, complete self-hosting, compile back to JavaScript 1, and replace Ruby as the Next Big Thing on all environments.

I think CPAN and JSAN will merge; JavaScript will become the common backend for all dynamic languages, so you can write Perl to run in the browser, on the server, and inside databases, all with the same set of development tools.

Because, as we know, worse is better, so the worst scripting language is doomed to become the best.

Twelve years later we can see that most of her predictions have become true. Javascript is the new assembly language of the web.

A Minister Without Portfolio

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:

  1. Voluntary Association (working with, not for the government)
  2. Radical Transparency (every meeting transcription is published after 10 days)
  3. 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.

Advent Calendar — Help us make it a book!

From December 1st until December 24th we plan to release one article each day, highlighting the life of one of the many women that have made today’s computing industry as amazing as it is: From early compilers to computer games, from chip design to distributed systems, we will revisit the lives of these pioneers.

Each article will come with an amazing illustration by @SebastianNavasF

If you want to see these series to become a book with expanded articles and even more illustrations by Sebastián, then subscribe to our newsletter below.

Credits

References

--

--

Alvaro Videla
A Computer of One’s Own

http://alvaro-videla.com/ Co-Author of RabbitMQ in Action. Previously @Apple @VMWare @EMC. All opinions are my own.