Developer(s) | Etherpad Foundation |
---|---|
Initial release | November 2008 |
Stable release | |
Repository | |
Written in | JavaScript (Node.js) |
Operating system | Cross-platform |
Available in | English |
Type | Collaborative real-time editor |
License | Apache License 2.0 |
Website | etherpad |
Etherpad (previously known as EtherPad) [2] [3] is an open-source, web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each author's text in their own color. There is also a chat box in the sidebar to allow meta communication.
First launched in November 2008, the software was acquired by Google [4] in December 2009, and released as open source later that month. Further development is coordinated by the Etherpad Foundation.
Anyone can create a new collaborative document, known as a "pad". Each pad has its own URL, and anyone who knows this URL can edit the pad and participate in the associated chats. Password-protected pads are also possible. Each participant is identified by a color and a name.
The software auto-saves the document at regular, short intervals, but participants can permanently save specific versions (checkpoints) at any time. Merging of changes is handled by operational transform. A "time slider" feature allows anyone to explore the history of the pad. The document can be downloaded in plain text, HTML, Open Document, Microsoft Word, or PDF format.
Automated markup of JavaScript code was made available shortly after the launch.
Etherpad itself is implemented in JavaScript, on top of the AppJet platform, with the real-time functionality achieved through Comet streaming. [5] [6] At the time of its launch, Etherpad was the first web application of its kind to achieve true real-time performance, a feat previously only achieved by desktop applications such as SubEthaEdit (for Mac), Gobby, or MoonEdit (both cross-platform). Existing collaborative web editors at the time could only achieve near-real-time performance. [7]
The client-side text editor in Etherpad and its Etherpad Lite fork is implemented using Appjet's in-browser text editor, written in JavaScript. [8]
Etherpad was launched on November 19, 2008 by David Greenspan, Aaron Iba, and J.D. Zamfirescu (the latter two being former Google employees). [9] They were later joined by former Googler Daniel Clemens and designer David Cole. [10] The original website was etherpad.com
.
Etherpad was covered by Slashdot on November 21, 2008, [11] resulting in server slowdown and downtime. This led the developers to temporarily revert the tool to closed beta, not allowing new pads to be created (but providing full and unrestricted access to the existing ones), while the server infrastructure was being improved. [12] After the rewrite of the software was completed, the new version went live on 29 January 2009, [13] and on February 3, the site became again open to all. [14]
When Google Wave was announced, the Etherpad team wrote on their blog comparing the two platforms and stating that the minimalist and targeted Etherpad interface could be an advantage in some use cases. [15] Still, on 4 December 2009, Etherpad announced on its blog that it had been acquired by Google for integration into Google Wave. Existing Etherpad users would receive invites for Google Wave. [16] On 31 March 2010, Etherpad announced that creation of new pads would be allowed until April 14 (pad creation was still allowed as of April 18, though) and existing pads could still be accessed and used until May 14. Options for download/export were available. The Etherpad service terminated on May 14. [17]
Google released the source code for Etherpad under the Apache License version 2.0 on December 17, 2009. [18] Subsequently, Google asked the Etherpad code maintainers to remove JSMin from its code tree due to a clause in its license stating, "The Software shall be used for Good, not Evil," which is not compatible with the open source licenses allowed on Google Code. [19]
After the release of the software as open source, a number of people have set up Etherpad servers, [20] as clones of the original website. Soon after, users and programmers of Etherpad, after an initial meeting, [21] created the Etherpad Foundation [22] to coordinate further development. Their website maintains a list of a growing number of sites that run the Etherpad software.
Etherpad Lite is an almost complete rewrite of the original Etherpad software, based on different technical foundations and written by different authors. While the original Etherpad is written in Java and Scala [23] and has quite demanding system requirements, [24] Etherpad Lite is written in server-side JavaScript using Node.js. The original realtime synchronization library (called Easysync) remains the same.
Etherpad Lite has some distinctive features which are not available in the original version:
Etherpad Lite offers a number of export formats, including LaTeX, but as of June 2019 [update] , not Markdown. [34] But there is an official addon to export in markdown. [35] Etherpad Lite supports many natural languages. Localization is achieved collaboratively through translatewiki.net.
KDevelop is a free and open-source integrated development environment (IDE) for Unix-like computer operating systems and Windows. It provides editing, navigation and debugging features for several programming languages, and integration with build automation and version-control systems, using a plugin-based architecture.
Notepad++, is a text and source code editor for use with Microsoft Windows. It supports tabbed editing, which allows working with multiple open files in one window. The program's name comes from the C postfix increment operator.
A collaborative real-time editor is a type of collaborative software or web application which enables real-time collaborative editing, simultaneous editing, or live editing of the same digital document, computer file or cloud-stored data – such as an online spreadsheet, word processing document, database or presentation – at the same time by different users on different computers or mobile devices, with automatic and nearly instantaneous merging of their edits.
A source-code-hosting facility is a file archive and web hosting facility for source code of software, documentation, web pages, and other works, accessible either publicly or privately. They are often used by open-source software projects and other multi-developer projects to maintain revision and version history, or version control. Many repositories provide a bug tracking system, and offer release management, mailing lists, and wiki-based project documentation. Software authors generally retain their copyright when software is posted to a code hosting facilities.
Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber created Markdown in 2004 as an easy-to-read markup language. Markdown is widely used for blogging and instant messaging, and also used elsewhere in online forums, collaborative software, documentation pages, and readme files.
Box2D is a free open source 2-dimensional physics simulator engine written in C by Erin Catto and published under the MIT license. It has been used in Crayon Physics Deluxe, Limbo, Rolando, Incredibots, Angry Birds, Tiny Wings, Shovel Knight, Transformice, Happy Wheels, and many online Flash games, as well as iPhone, iPad and Android games using the Cocos2d or Moscrif game engine and Corona framework.
GitHub is a developer platform that allows developers to create, store, manage, and share their code. It uses Git software, which provides distributed version control of access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.
CoffeeScript is a programming language that compiles to JavaScript. It adds syntactic sugar inspired by Ruby, Python, and Haskell in an effort to enhance JavaScript's brevity and readability. Specific additional features include list comprehension and destructuring assignment.
Concordion is a specification by example framework originally developed by David Peterson, and now maintained by a team of contributors, led by Nigel Charman.
Ace is a standalone code editor written in JavaScript. The goal is to create a web-based code editor that matches and extends the features, usability, and performance of existing native editors such as TextMate, Vim, or Eclipse. It can be easily embedded in any web page and JavaScript application. Ace is developed as the primary editor for Cloud9 IDE and as the successor of the Mozilla Skywriter project.
Dart is a programming language designed by Lars Bak and Kasper Lund and developed by Google. It can be used to develop web and mobile apps as well as server and desktop applications.
Cloud9 IDE is an Online IDE, published as open source from version 2.0, until version 3.0. It supports multiple programming languages, including C, C++, PHP, Ruby, Perl, Python, JavaScript with Node.js, and Go.
Brackets is a source code editor with a primary focus on web development. Created by Adobe Inc., it is free and open-source software licensed under the MIT License, and is currently maintained on GitHub by open-source developers. It is written in JavaScript, HTML and CSS. Brackets is cross-platform, available for macOS, Windows, and most Linux distributions. The main purpose of Brackets is its live HTML, CSS and JavaScript editing functionality.
RStudio IDE is an integrated development environment for R, a programming language for statistical computing and graphics. It is available in two formats: RStudio Desktop is a regular desktop application while RStudio Server runs on a remote server and allows accessing RStudio using a web browser. The RStudio IDE is a product of Posit PBC.
Meteor, or MeteorJS, is a partly proprietary, mostly free and open-source isomorphic JavaScript web framework written using Node.js. Meteor allows for rapid prototyping and produces cross-platform code. The server-side MongoDB program is the only proprietary component of Meteor and is part of the Meteor download bundle. It is possible to use Meteor without using the server-side MongoDB. It uses the Distributed Data Protocol and a publish–subscribe pattern to automatically propagate data changes to clients without requiring the developer to write any synchronization code. On the client, Meteor can be used with any popular front-end JS framework, Vue, React, Svelte, Angular, or Bazel.
Aaron Iba is an American computer programmer and entrepreneur. He is known for co-authoring Etherpad, co-founding AppJet, and for his work as a partner in Y Combinator. Iba graduated from the Massachusetts Institute of Technology in 2005 with a degree in Mathematics.
WebAssembly (Wasm) defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating communication between such programs and their host environment.