Copyright Assert Truthy

I was poking around in the newly open-sourced Etherpad code, and came across this tidbit.

* Copyright 2009 Google Inc.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS-IS" BASIS,
* See the License for the specific language governing permissions and
* limitations under the License.

function assertTruthy(x) {
  if (!x) {
    throw new Error("assertTruthy failure: "+x);

That’s trunk/etherpad/src/etherpad/testing/testutils.js by the way. So anyhow, as much as I appreciate that is licensed under the Apache License, is “assertTruthy” really creative enough to be worthy of a copyright?

That aside, I do have some general thoughts about Etherpad:

  • Etherpad > Google Wave. Granted, Google Wave has much greater ambitions than Etherpad, but when it comes to the simple purpose of collaborative text editing (e.g. for collective note taking or hashing out the Declaration of Independence). With Etherpad, you don’t need to create an account or get an invite, the interface is simpler, things are faster and more stable, and the scrollbar has not been reinvented.
  • Open-Source is Robust. While I understand why Google doesn’t want to have its employees devoting time to a something that partially competes with Wave, I was also super-annoyed when shut down its public pads. Most web apps are effectively closed source (i.e. you can’t see any of the server-side code) and while there may be good business / security / privacy reasons for doing so, it makes you (as a user) dependent on the man behind the curtain. That man is a single point of failure — if he’s bought, shot, or caught, you’re screwed. With open-source, there are fewer irreplaceable parts. While open-source projects fail all the time, if there’s genuine interest in it, someone else will look through the code and revive it (barring weird copyright and infrastructure issues).
  • Server-Side JavaScript is Cool. Etherpad is built on AppJet / Rhino, which uses a Java Virtual Machine to run JavaScript. The Etherpad source is split into two parts — one is the virtualization software written in Java and the other is the actual Etherpad app written in JavaScript. When I poked through their source code, at first I was all “Balls — this is Java. I wish it were Python,” but then I was like “OMG, this is JavaScript! I love JavaScript!”. Seriously, it’s awesome. Unless you’re not a geek, in which case, well, um, hi.