EtherPad source code is free, now what?
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.
Index entries for this article | |
---|---|
GuestArticles | Willis, Nathan |
Posted Dec 23, 2009 19:11 UTC (Wed)
by ajb (subscriber, #9694)
[Link] (5 responses)
Well, I guess one answer would be to try and implement such services on top of a distributed backend such as Freenet or Tahoe.
On a less serious note, I wonder how long it will be before someone ports emacs to the browser. Write an elisp bytecode interpreter and you've got about two thirds of it done :-)
Posted Dec 23, 2009 19:51 UTC (Wed)
by lambda (subscriber, #40735)
[Link] (3 responses)
Posted Dec 23, 2009 20:23 UTC (Wed)
by gidoca (subscriber, #62438)
[Link] (2 responses)
Posted Dec 23, 2009 21:48 UTC (Wed)
by dmarti (subscriber, #11625)
[Link]
Posted Dec 30, 2009 20:42 UTC (Wed)
by utoddl (guest, #1232)
[Link]
Which is the show stopper, having a vi mode, or not having one? (I could go either way.)
Posted Dec 29, 2009 18:35 UTC (Tue)
by zooko (guest, #2589)
[Link]
I would love to have something like EtherPad targetting Tahoe-LAFS! (I'm one of the Tahoe-LAFS developers.) If the
EtherPad client-server protocol is a RESTful HTTP protocol then this is easier.
(I retargeted TiddlyWiki to target Tahoe-LAFS by REST and it was
pleasingly simple
.)
I looked briefly at Bespin, but it kind of seemed like the client-server protocol
was non-RESTful and would be a lot more work to adapt.
I see that this article says about EtherPad: "The actual code implements an EtherPad server
running as a stand-alone HTTP server on port 9000." That's promising! I'm afraid I definitely
don't
have time to investigate this myself right now (I'm working on Tahoe-LAFS v1.6), but if anyone
else wants to investigate, I would love to help as I can. Join the tahoe-dev list or #tahoe-lafs on irc.freenode.net.
Posted Dec 24, 2009 0:43 UTC (Thu)
by butlerm (subscriber, #13312)
[Link] (5 responses)
I have a hard time imagining AppJet thought they were going to get away with
Posted Dec 31, 2009 1:15 UTC (Thu)
by giraffedata (guest, #1954)
[Link] (4 responses)
You can get away with anything by dying. My understanding is that AppJet is a corporation that will cease to exist and there will be no one to sue. You take a big risk extending credit to a corporation, which you do when you pay for services in advance. There are corner cases where you can get officers, directors, and stockholders of a corporation, and people who continue the corporation's business, to pay its debts, but normally it's just the creditor's risk.
Posted Jan 3, 2010 10:24 UTC (Sun)
by misiu_mp (guest, #41936)
[Link] (3 responses)
Posted Jan 3, 2010 18:44 UTC (Sun)
by giraffedata (guest, #1954)
[Link] (2 responses)
The buyer doesn't normally do that.
A "company" isn't really something you can buy. Buying a company is an informal description of various kinds of transactions, but the most common one is that the buyer buys the assets of the company. E.g. Google buys the copyrights, patents, trademarks, real estate, machinery, customer lists, etc. You don't take over someone's liabilities just because you buy something (or lots of things) from him.
The seller is now a corporation whose only asset is cash. It dissolves itself and distributes that asset to its shareholders.
Another way is to buy all the stock of the corporation. If the buyer does that, the corporation still has all its liabilities, and by extension the buyer does. But these liabilities are why people don't like to buy businesses that way. And they're also a principle reason that the business was set up as a corporation in the first place.
Posted Jan 7, 2010 4:17 UTC (Thu)
by jjs (guest, #10315)
[Link] (1 responses)
Posted Jan 7, 2010 17:03 UTC (Thu)
by giraffedata (guest, #1954)
[Link]
I'm saying there is no legal concept of buying a company. You buy individual pieces of property, and a "company" isn't one. There are lots of kinds of transactions that we informally call "buying the company," and the most common is where you buy all of the assets of the company and leave the liabilities alone. That seems to me to be the natural structure for the Google-Etherpad deal.
One of the reasons corporations exist is to give people a way to void contracts. People who contract with corporations know this, of course (it's one reason corporations are required to have words such as "corporation" in their name) and usually require a natural person to guarantee performance of a contract with a corporation (I have personally given such guarantees many times). (Google-size corporations can negotiate on their own credit, but they are the minority).
Yes, as the post you're responding to says. It also says this is an uncommon way to buy a company, because of the liability issue. (People aren't really worried about the outstanding contracts as in the Etherpad issue -- the liabilities no one knows about yet are the important ones).
That doesn't mean you're offering to purchase the shares. It's also the best way to state the purchase price of a publicly traded company's assets, because that's how much cash the shareholders get when their stock is ultimately cancelled.
I guess I should acknowledge now that there are special areas where the law does recognize the concept of buying the whole shebang -- they go under the terms "bulk sale" and "successor liability." But they're details that aren't worth discussing here. Also, directors of a corporation are responsible for operating it in a way that it can be expected to pay its debts, so in the case of a flat-out distribute-the-assets-and-screw-the-creditor transaction, the directors have to pay those creditors and a creditor can even get the money back from the shareholders. But that's nothing like making the guy who bought the company's assets pay those debts.
Posted Jan 16, 2010 10:33 UTC (Sat)
by pkern (subscriber, #32883)
[Link]
Posted Jan 21, 2010 15:59 UTC (Thu)
by johnmclear (guest, #63138)
[Link]
Etherpad is crazy heavy on resources and isn't mature enough yet in the open
EtherPad source code is free, now what?
There already is Ymacs. It doesn't have an elisp
interpreter, but it does implement a lot of the basic editing functionality of Emacs.
EtherPad source code is free, now what?
EtherPad source code is free, now what?
You could just create a regular user account, run regular Emacs, and show the user an anyterm or Ajaxterm terminal. Would that be cheating?
anyterm? Ajaxterm?
But it doesn't have a vi mode, which is pretty much a show stopper. :P
EtherPad source code is free, now what?
EtherPad source code is free, now what?
EtherPad source code is free, now what?
"professional" service.</em>
that, at least for any amounts that had been pre-paid beyond the scheduled
service end date. To do otherwise would invite a lawsuit, and worse.
EtherPad source code is free, now what?
There would also be no refunds to customers who had already paid for the
"professional" service.
I have a hard time imagining AppJet thought they were going to get away with
that, at least for any amounts that had been pre-paid beyond the scheduled
service end date. To do otherwise would invite a lawsuit, and worse.
EtherPad source code is free, now what?
EtherPad source code is free, now what?
Isn't the company in question being bought, not bankrupt? That would mean that the buyer, ie google takes over contracts and responsibilities and thus can be sued.
EtherPad source code is free, now what?
EtherPad source code is free, now what?
Normally when a company buys another company they get the whole shebang - including the liabilities.
Otherwise it becomes a quick way to void contracts
Also, companies are bought on a routine basis by buying all the shares - it's one of the common ways of doing a buyout.
You bid x per share,
EtherPad source code is free, now what?
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.
It seems to be that someone did not yet use Gnucash in a group. The locking mechanism of Gnucash Offline requires a fair deal of coordination between multiple users (which we have in the non-profit organisation I work in, using Gnucash). Concurrent updates was something we envisioned for a Gnucash replacement. Sadly the task of creating a new featureful application was too large for the NPO at hand.
EtherPad source code is free, now what?
school or district (see primarypad), also see ietherpad for another consumer
option.
source space. Most decent info is available here
http://groups.google.com/group/etherpad-open-source-discuss