December 23, 2009
This article was contributed by Nathan Willis
Google's newly-acquired startup AppJet released the source code to its
popular EtherPad web editor
recently, making good on a promise to EtherPad's users who were previously
faced with a service shutdown following the acquisition. The source is
under the Apache 2.0 license, which is GPL-compatible, making the code
potentially useful to a wide array of free software projects. The release
has the community debating the impact on similar and related software, and
revisiting the contentious question of how free software in general can and
should transition to the web-hosted environment.
Pad timing
EtherPad is a collaborative in-browser text editor. AppJet launched the
product in the fall of 2008 with both commercial and free (limited to eight
concurrent editors) versions, and it quickly gained popularity in the first
half of 2009.
When Google unveiled its own real-time collaboration system Wave in June, comparisons were
inevitable. Many users found EtherPad's interface simpler to use and
easier to understand, however, so it was no great surprise when Google announced
that it had purchased AppJet and EtherPad on December 4. The AppJet
engineers would work on Wave, ostensibly making it as easy to use as
EtherPad itself.
What did come as a surprise to most EtherPad users was AppJet's
announcement
that due to the acquisition, it would be unceremoniously switching off the
service for all users on April 1, 2010 — and to reinforce that the
move was no April Fools' joke, no new documents could be created, effective
immediately. There would also be no refunds to customers who had already
paid for the "professional" service.
The subsequent backlash from users and fans was forceful enough that,
less than 24 hours later, AppJet CEO Aaron Iba posted a personal apology
and announced
a new "transition plan" — document creation would be re-enabled,
EtherPad itself and the underlying AppJet Web Framework would both become
open source projects, and AppJet would try to get Google Wave invites for
EtherPad users.
Source at last
The source code release came on December 17, accompanied
by the proclamation that AppJet's goal "is to let the world run their
own etherpad servers so that the functionality can live on even after we
shut down etherpad.com." The shutdown is still scheduled to take
place on March 31, 2010, and new document creation may be again switched
off sooner than that, if traffic is seen to "taper off."
The source is hosted at
Google Code, and includes instructions
for compilation on Mac OS X and Linux. The actual code implements an
EtherPad server running as a stand-alone HTTP server on port 9000. The
server is written in Java and Scala, and requires MySQL. The
client-side editor is implemented in JavaScript.
Some pieces of the service as it was provided at etherpad.com are not
present in the open source release, however, notably file upload, document
import/export, the email invitation system, and the framework for managing
"professional" accounts. The file upload capability was provided by a
proprietary servlet that AppJet could not include with the release; the
other capabilities appear to
have been left out for the sake of convenience.
Perhaps those missing pieces, when taken with the news that the AppJet
team still intended to shut down the service and not pursue further work on
the code, contributed to those in the open source sphere describing the
move as "dumping code over the wall" — a pejorative typically
indicating the community's belief that the company has no interest in what
happens next.
Source is still source, though
Nevertheless, the Etherpad release attracted many eyes and many comments
from open source circles. Two topics dominated the conversation: what
impact the EtherPad code would have on other projects, and how free
software could protect users from suffering the inconveniences of a similar
web service shutdown.
As it currently stands, the open source EtherPad code seems unlikely to
develop as a viable project on its own. The Google Code site refers to the
project as an "exhibition" and says that "we will try to support you
in our spare time until we begin working full-time on Google Wave."
There is an open mailing list, however, and several developers with
non-Google IDs have been granted the Owner role. At least one
independent public server has already been launched, PiratePad.net.
The other projects most likely to be affected by the availability of
EtherPad source code are Google Wave (naturally) and other real-time
collaborative editing tools like Gobby, AbiCollab (which we recently covered), and Bespin (also recently covered). Although Wave's
document-sharing and editing capabilities are less mature than EtherPad's, it does have
one notable advantage: federation is built in to the protocol, allowing
editing sessions to be shared between multiple Wave servers, a feature
EtherPad never had.
As for EtherPad's "threat" to other editors, the prevailing attitude is
that in-browser editing trumps any desktop client editor because of the
sheer ease-of-deployment, a feature that is critical to collaboration. On
the other hand, Gobby's conflict-resolution algorithms are highly-regarded
and well-documented (unlike EtherPad's), and the editor features niceties
like syntax highlighting not found in the web editor. Gobby maintainer
Armin Burgmeier commented
on one blog discussion that the best way forward might be adding Gobby's
concurrency control (via Gobby's libinfinity library) to an Etherpad-like
web editor.
Branching out from pure editing alone, Red Hat's Máirín Duffy suggested
that EtherPad's slick editing capabilities would be a good addition to some
other web-based tools, MediaWiki in particular. MediaWiki is designed to
encourage collaborative writing, after all, but it currently relies on
HTML's "textarea" element and its own peculiar markup as an editing
interface.
Web versus Desktop; collaboration versus solo work
However the EtherPad application evolves, the fiasco surrounding the
shutdown announcement and subsequent code dump again raises the weighty and
still unsolved problem of how free software ideals and practices should
migrate from the desktop paradigm to the web service paradigm.
In her blog, the GNOME Foundation's Stormy Peters wrote
that hosting free and open source web applications is fundamentally hard
— open source web applications that thrive have always offered end
users a hosted service (such as Wordpress.com or SugarCRM); those that have
not tend to fail. There are varying business models, including
advertising-supported free services, paid professional alternatives, and
more, but unlike hosting a download site for desktop applications, there
are ongoing support and labor costs that must be borne somehow.
As long as the shepherding organization is a company that remains in
business and actively involved, a hosted service is reasonably safe for users to
rely on. The trouble arises when an acquisition, a change of business
plan, economic woes, or other real-life events threaten the business
itself. Consequently, Peters asked: Should software projects start
non-profit foundations to provide web services?
Ubuntu's Jorge Castro opined
in his own blog piece that existing free software groups such as GNOME and
KDE ought to offer web services like EtherPad, just as they currently host
mailing lists, revision control systems, IRC channels, and other
collaboration tools. According to the post, Castro recently undertook a
self-imposed experiment to use only web-based applications for a set period
of time, just to see how the experience compared to desktop applications.
He liked it so much, he has no plans to go back.
It is interesting to note, however, that the services Castro cites as
examples are all communication tools: email, instant messaging,
microblogging, and real-time note-taking at conferences. There are other
web application use cases that do not inherently involve sharing data with
other remote users, and as a result, might not inherently benefit from
running solely on the web.
Financial records, for example, might be convenient to access from
multiple locations, but a hypothetical "Gnucash Online" service would not
need to share information between users concurrently. Media players, to
take an unrelated issue, are hamstrung by copyright holders' rights when
online storage comes into play. Image, sound, and video editing, on the
other hand, have low network latency requirements that make for a poor user
experience under anything but the best network conditions — even if
sharing the final product on the web is something the user intends to
do.
Castro suggests that the myriad of free software groups provide hosting
of web services for participating developers, not for the public
at large, so it might not offer the protection-from-corporate-disappearance
that Peters asked about. But for a collaborative editor like EtherPad, it
might be just the thing.
Code drops are a gift to the open source software world and, as
such, they are always welcome events, but rarely are they game-changers.
EtherPad was a wildly popular product in its lifetime, but judging by the
reaction to recent events, its popularity may have been more due to its
implementation as a free web-based service than to ingenuity of the code
itself. Thus, the bigger question going forward is one that free software
has been struggling to answer for the past several years and will
likely continue to struggle with for years to come: how can open source not
just compete with closed-but-freely-accessible web services, but beat them
on the critical question of protecting users from the catastrophe of being
deserted by a service that disappears.
(
Log in to post comments)