Главная > Open Source, web2.0, веб-обзоры, Разное, Стартапы > EtherPad — онлайн редактор для совместного творчества или работы.

EtherPad — онлайн редактор для совместного творчества или работы.

9 декабря 2008

Приветствуем наших читателей. Хотя последнее время у меня не так много времени (хм, тавтология однако), но в очередной раз просматривая новостную ленту, я наткнулся на описание интересного сервиса, онлайнового редактора текста для совместной работы. Конечно, есть же Google Docs, Zoho Writer и множество других, включая Adobe Buzzword, но по опыту - это или тяжелые решения, или направленные на полноценную замену текстовых процессоров, например, MS Office Word. А что, если требуется простой редактор, где будет доступна ну, скажем, только одна функция - непосредственно редактирование текстов? Да еще с оговоркой - с возможностью параллельной работы над одним документов нескольких пользователей. Кто-то в таком случае использует  wiki-системы и они как раз обеспечивают совместное редактирование текста, позволяя откатываться на любое число версий назад и просматривать правки пользователей. Но wiki никогда не было средством работы в реальном времени - то есть я открываю документ, вношу правки и сохраняю и только после этого вижу, что изменилось с учетом и правок других пользователей (если они на этот момент сохранили свои дополнения). А если надо именно работа в реальном времени?

Вот здесь на сцену выходит проект EtherPad. Это очень простой, даже более - абсолютно простой редактор, в котором вы можете создавать собственные документы (pad в терминологии проекта) и приглашать других пользователей к редактированию. Что показательно, отсутствуют принципиально любые средства форматирования текста - только поле для ввода и функция нумерации строк (очень правильная и нужная опция, смею заметить). Такое ограничение сразу ставит крест на других применениях сервиса - здесь явно не развернутся, показывая перед коллегами искусство оформлять документ тремя шрифтами и шестью стилями одновременно. Однако именно в этом и основная сила редактора.

Автор документа может по e-mail приглашать к редактированию любое количество других пользователей (для этого регистрации не требуется, только уникальный для каждого pad-а URL), каждый из которых получает свой цвет для выделения своих поправок (аналогично режиму совместной работы в Word-е, помню, как я с юристами составлял договора, документ буквально пестрел всеми цветами радуги). Я пока не нашел указания на число одновременных редакторов одного документа, но логично предположить, что ограничение системы здесь не при чем - уже после пяти-шести человек, которые одновременно будут что-то править, без четкого регламента вы просто запутаетесь и никакие инструменты вам, скорее всего, не помогут.

Что характерно, все правки, внесенные одним пользователем, очень быстро, буквально мгновенно, доступны всем - применяется технология Comet для непрерывной связи с сервером, сами разработчики противопоставляют это классическому AJAX-подходу, в том же Google Docs, где на сохранение документа тратится несколько, а то и десятки секунд. Здесь визуально часто незаметна задержка, что позволяет добиться почти живого общения.

Дополнительно присутствует чат для общения участников редактирования - он также без излишеств, что очень радует (уф, я так рад, что здесь нет смайлов). Он будет полезен для общего оповещения участников или уточнении тех или иных правок. История чата сохраняется при перезагрузке и повторном входе в редактор, что также большой плюс.

В редакторе реализована система версий, хоть и с поправкой на специфику приложения. Любой пользователь может сохранить текущее состояние документа в ревизию, вместе со всеми правками, которые внесены на текущий момент, а в будущем можно вернутся к любой промежуточной версии или же просто просмотреть ее (правда, с ограничениями - только в виде простого текста). Похвально, что все промежуточные версии доступны по своим уникальным адресам и их можно раздать другим или занести в закладки - документы будут всегда доступны, а если у вас есть право их редактировать - то вы сможете сразу начать работать с любой промежуточной версией.

Следует сказать, что сохранение ревизий здесь производится вручную, а не автоматически, как в Google Docs, и это правильное решение. В большинстве случаев документ обновляется прямо по мере набора другим пользователем текста, поэтому автоматическое по расписанию сохранение текста вряд ли дало бы нужный результат - документ и так персистентный, то есть сохраняется текущая копия, а где и когда, на какой стадии создавать промежуточные версии, которые могут понадобится, уже личное дело самих редакторов.

В редакторе не так много опций, которые вы можете настраивать, но одну я бы хотел отметить особо - подстветка JavaScript кода! Если вы редактируете не просто текстовый документ, а исходный код JS, то эта опция позволит намного более удобно организовать свою работу. Честно говоря, именно в этой функции скрыто основное предназначение редактора, на мой взгляд - он очень удобен для обучения или разбора сложных моментов в коде между разработчиками. Ну или для парного кодирования, следуя популярной методологии ХР - вам не обязательно сидеть за одним рабочим столом и делить один компьютер, можно быть где угодно, а работать совместно. Ну и приятная мелочь - редактор можно развернуть на всю площадь экрана, скрыв даже панель опций и чата, освобождая таким образом максимум места для самого текста.

Честно говоря, проект действительно простой, да, в нем нет ничего такого... а все вместе просто отлично! Оказывается, не надо городить сложнейшие интерфейсы и использовать супер-технологии, достаточно реализовать всего несколько, но самых нужных и используемых возможностей, и все.

Что же можно добавить или улучшить? Я бы расширил коммуникационную часть в плане общения между редакторами одного документа - сюда стоило бы добавить если не полноценную поддержку IM, то хоть бы расширение в сторону голосового общения, думаю это было бы хорошим дополнением. Отсутствие средств форматирования стесняет лишь на первых порах, оно здесь действительно не особо нужно, а вот расширить поддержку подсветки синтаксиса на другие языки очень бы стоило - и в первую очередь на популярные в веб-среде. Сначала я хотел было написать, что автосохранение все же нужно, но потом сообразил - ведь оно и так есть, документ постоянно хранится, после каждого изменения, так что механизм ревизий просто дополняет его, реализуя форки, так сказать, основного документа. Что-то еще добавить сложно- мне видится, что проект действительно закончен, и любые его расширения изменят его в другую сторону, разрушив первоначальный замысел.

Кстати, сама платформа, на которой разработан и исполняется проект, достойна отдельного исследования. AppJet - это онлайновая платформа, которая использует JavaScript, исполняемый как на сервере, так и на клиенте, для построения веб-приложения. На нижнем уровне, на сервере, исполняется сервлет, который обеспечивает все остальные возможности - масштабирование, доступ к базам данных, реализует Comet-протокол, встроенную объектную базу данных и даже простую IDE для разработки, также работающую прямо в браузере. Впрочем, подробности вы сможете сами узнать на сайте проекта, а я обещаю вскоре написать отдельный обзор этой платформы.

P.S. А все же, блог - это сила! Сейчас EtherPad имеет статус приватной беты и нет открытой регистрации. Но стоило написать администрации и указать, что хочу получить приглашение для того, чтобы написать обзор, кстати, первый в рунете, как мне любезно прислали приглашение в течении нескольких часов.

  1. 21 декабря 2008 в 10:58 | #1

    Мы с напарником Google Docs пользуемся, думаю тяжело будет переключиться на что-то другое.

    • 21 декабря 2008 в 14:14 | #2

      это совсем разного рода инструменты. Если в театр с девушкой лучше всего ездить на мерседесе, на прием к министру можно и на бентли, то картошку бабушке в горное село я бы повез на Ниве или ленд-крузере 🙂

  2. 4 января 2009 в 15:03 | #3

    Программа, конечно, в своем роде уникальная. Но, не могу понять, для каких практических целей нужно основное ее нововведение — работа с текстом в режиме реального времени? Просветите меня темного, где такое может применяться?

    • 4 января 2009 в 18:44 | #4

      а что, в статье не раскрываются сферы применения? Именно для этого и нужно — вместе писать что-то или обьяснять другому человеку что-то. Для программирования, совместного творчества, написания статей и много чего другого.

  3. Sight
    19 марта 2009 в 19:07 | #5

    2 Kalya

    Ну например, для совместного перевода документа/книги.
    Ускорение процесса.

  4. 12 июля 2009 в 14:05 | #6

    Не обязательно перевода. Для банального редактирования и т.д. Достаточно удобно.

Комментирование отключено.