Awards in Open Source

Today JSAwards was announced through Cooperpress’ weekly newsletter “JavaScript Weekly”. The goals of the awards are stated on the homepage as:

Acknowledging the most fun, exciting, and impactful people and projects in JavaScript.

There’s a number of different awards an individual or a project can win:

This is not the first time an organization has started an award competition around open source. O’Reilly has been doing the Web Platform Awards for years, and there’s the JS1k competition.

There’s two sorts of these competitions:

  • Ones that present a challenge and gives everyone an equal chance at solving it (like JS1k).
  • Ones that ask people and projects to be nominated and voted on by the community (like the JSAwards or the Web Platform Awards).

The former are a great kind of competition. They are lighthearted fun. They get people to try their hand at something new and most importantly they put everyone in the same position.

It’s the later that I want to focus on here.

Competitions like JSAwards and the Web Platform Awards work in a basic three-step process:

  1. People and projects are nominated either by themselves or by others.
  2. A closed group of judges decide which of these projects deserve to be nominated based on different parameters (i.e. “When was it created?”, “How many people are actually using this project?”, or “How many nominations for this were made?”)
  3. A final set of projects is chosen and then published for the community to vote on. Nominees and their supporters then promote them to get more people to vote for them.

This process turns the competition into a popularity contest. Whoever has the biggest social graph wins. It’s a matter of who can make the most noise and gain the most traction.

Now here’s the part where I admit that I have a privileged place in the open source community. My involvement with other popular projects means that when I create a new project, it has a much easier time rising to the top of GitHub Trending, Hacker News, or Reddit.

When Sebastian and I were working on 6to5 (Babel) in it’s early days it took months to gain traction. We worked our asses off before anyone even would consider using the project.

But then when we went to open source Yarn, we did so with an existing reputation in open source and with the backing of our employer, Facebook. Because of this Yarn became the second fastest growing open source project on GitHub ever.

Do we deserve an award because we gained popularity so quickly? Should we be recognized as the “Tool of the Year” because we had an actual professional PR team helping us out? Does Facebook deserve an award for “Innovative Company of the Year” because we have the resources to start dozens of open source projects? Do I get to win “JavaScript legend” because I personally know 6 out of the 7 judges on JSAwards, have 7,000 followers, and make almost 1 million impressions on Twitter every month?

What about the people slaving away on the next Babel? What about the people doing the hard grunt work that nobody ever sees? What about those that are socially introverted and would never ask someone to vote for them?

When we slap a label on someone or something as “The Best…” we explicitly are calling one thing better than the rest (and when we say “X of the Year” the “The Best…” is implied).

Is Yarn The Best Tool of the Year? Is Facebook The Most Innovative Company of the Year? Am I The Coolest JavaScript Legend out there? (Don’t answer that last one.)

Who knows? This isn’t a foot race, it’s based on community opinion. It’s based on a popularity contest. A popularity contest that was already won before nominations were ever made.

This isn’t healthy competition, it’s reinforcing people’s reputations in the community and calling them better than everyone else. Healthy competition would be doing the inverse, promoting projects that don’t have as many resources so that they stand a chance against one another.

We had a ton of resources launching Yarn, several companies were involved, that paid a number of people to work on it, with a number of high profile programmers, and many of our friends who worked on it in their free time. It’s shouldn’t be a huge surprise that it was very successful from the start.

These kind of popularity-based competitions are harmful to the community and as someone who would do really well in them I ask that they shut themselves down.

Instead let’s promote the projects that we see by sharing them on social media. Talking about them to our coworkers. Writing blog posts. Giving talks. Even contributing directly back to the projects through code or documentation. If you don’t feel like doing any of that go give them a star on GitHub and follow them on Twitter.

Try this: Find a person or project in open source that you have respect for and tweet out how amazing they are? I swear you’ll both feel awesome afterwards.

It doesn’t take saying “X is The Best” to say “X is Great”.

Update: Nominations of JSAwards have been made public, myself (for “JavaScript Legend”) and several projects I’ve worked on (Babel and Yarn for “Innovation of the Year” and “Tool of the Year”) have been nominated.
Note that there are almost no exceptions to nominees that weren’t already extremely popular.

Update 2: The JSAwards have been cancelled due to a number of project asking to be taken out of the competition.
It would be easy to call this a “victory”, but let’s instead take it as an opportunity to learn as a community. Open source is all about passion, let’s find ways of making more people successful in the community and help grow it.
We can’t do that by saying one person or project is better than another. We can’t do it by tearing others down. If we want a community we can be proud of, we need to help one another.