Pull to refresh

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

Reading time 5 min
Views 3.8K
Приветствуем наших читателей. Хотя последнее время у меня не так много времени (хм, тавтология однако), но в очередной раз просматривая новостную ленту, я наткнулся на описание интересного сервиса, онлайнового редактора текста для совместной работы. Конечно, есть же 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 имеет статус приватной беты и нет открытой регистрации. Но стоило написать администрации и указать, что хочу получить приглашение для того, чтобы написать обзор, кстати, первый в рунете, как мне любезно прислали приглашение в течении нескольких часов.
Tags:
Hubs:
+31
Comments 17
Comments Comments 17

Articles