ONLYOFFICE или Libre: о битве форматов и совместном редактировании

Этот день настал: мы открыли исходный код десктопных редакторов ONLYOFFICE. Теперь они абсолютно бесплатны для домашнего и коммерческого использования. Лицензия AGPLv3, скачать на сайте, код на GitHub.

A в этой статье мы просто приведем несколько аргументов в пользу того, чтобы при отказе от Microsoft Office по экономическим или идеологическим причинам переходить на ONLYOFFICE, а не на Libre. Читайте далее, чтобы испытать боль.

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

61f23fc7dcf74339a562d8e233ac038c.png

Причина №1. ONLYOFFICE корректно открывает большее число документов

Кратчайшая история форматов

Давным-давно в далекой-далекой галактике главные форматы документов были бинарными. И звали их doc, xls и ppt. Миром документов уже правила Империя Microsoft. Но появились отважные повстанцы OpenOffice, которые хотели освободить галактику от гнета Империи и создать собственные редакторы документов.

Трудность заключалась в том, что форматы Microsoft были закрытыми, и познать их тайны можно было лишь запрещенным кодексом джедаев методом реверс-инжиниринга. И отважные повстанцы OpenOffice сделали свой открытый формат на основе XML и назвали его ODF (odt, ods, odp). У них получилось очень хорошо! Это поняли даже представители империи, которые просто воспользовались идеей находчивых повстанцев и в 2007 году выпустили новую версию своего офиса, сохранявшего документы в новый формат — OOXML (до боли знакомые нам docx, xlsx и pptx). А дальше произошло вот что: у Microsoft оказалось больше ресурсов и программистов и они просто сделали свой формат круче — улучшив и расширив его. Кстати, старые бинарные форматы Microsoft тоже открыли, сняв завесу тайны, чтобы разработчики, не обладавшие достаточным количеством мидихлорианов, тоже могли их законно использовать.

Надо сказать, что вроде бы родственные форматы ODF и OOXML оказались совершенно несовместимы между собой. В одном есть объекты, которых нет в другом, а во втором есть такие свойства, которых нет в первом. В общем, чтобы перегнать один в другой простым XSLT-преобразованием не обойдешься.

Почти все документы хранятся в doc или docx

А теперь вернемся от истории к настоящему моменту и осознаем вот что: почти 99% всех текстовых документов в изученной части галактики хранятся в форматах doc или docx. При чем большая часть всё-таки в docx, потому что начиная с 2007 года каждый новый созданный документ редакторами MS по умолчанию сохраняется в него. В doc хранятся в основном старые документы. (И кстати, для старых версий Word’а в Microsoft запилили плагин, позволяющий сохранять документы в docx. Их цель — полностью уйти от старого формата). При этом текстовых документов в формате odt в мире чуть более одного процента.

Вы можете сказать: вы взяли эти цифры с потолка (нет, это не так, мы проводили очень большую аналитическую работу, прежде чем взяться писать наши редакторы). Возможно кто-то будет пытаться доказать, что соотношение 90 к 10. Но это не меняет сути, поскольку это не 50 на 50 и даже не 60 на 40. Иначе Libre Office (как наследники Open Office) уже сейчас правили бы миром наравне с Microsoft. А Microsoft действительно правит: ведь в формате docx не просто большая часть документов, а ПОЧТИ ВСЕ документы на планете.

Когда мы выбирали, какой из открытых форматов — ODF или OOXML — делать основным, мы практически не сомневались. Мы хотели корректно открывать и работать с большей частью документов, а не с меньшей.

Когда мы отображаем документ, мы по сути отображаем набор объектов — определенную объектную модель. У LibreOffice объектная модель документа соответствует формату ODF, созданному программистами Open Office, у нас — объектная модель полностью соответствует формату OOXML, созданному Microsoft. Поэтому файлы формата docx мы открываем лучше, чем Libre, а файлы форматов odt — хуже. Но файлов docx гораздо больше. Таким образом, мы лучше открываем большую часть существующих на планете текстовых документов.

(Обратите внимание: не говорим сейчас, что Libre Office хуже. Их формат объективно более редкий, поэтому проблем и трудностей с совместимостью будет гораздо больше)

А что же с odt?

Конечно, мы работаем и с этим форматом. Как поддерживать его, когда наш основной формат несовместимый с ним docx? Варианта два: либо разрабатывать отдельный редактор (дорого и накладно), либо конвертить. Мы выбрали вариант с конвертацией: при попытке открыть odt в редакторе ONLYOFFICE, odt автоматически конвертится в docx. К сожалению, некоторые потери при конвертации очень вероятны, хотя мы, конечно же, стремимся свести потери к минимуму.

Отредактированный файл вы сможете сохранить обратно в odt. Получится схема с двумя конвертациями: odt — docx — odt. Тут нужно учитывать, что если конвертация — это сено, пропущенное через лошадь, то двойная конвертация — это сено, пропущенное через лошадь дважды.

Что мы хотим сказать этой частью статьи: нам пришлось пожертвовать качеством открытия odt. Однако мы считаем, что потери качества в 1% случаев гораздо менее существенны, чем потери качества в 99% случаев. Если вы понимаете, куда мы клоним.

Причина №2. Работа в онлайне и совместное редактирование

Мир движется в облака, и совместная работа над документами для многих уже не просто приятный бонус, а жизненная необходимость. Libre Office тоже работает над онлайн версией редакторов (Collabora Office).

Как устроен онлайн-редактор Libre (никак)

Разработчики выбрали схему, в которой десктопный редактор крутится на сервере, а конечному пользователю в браузер транслируется картинка происходящего в облаке. Действия самого пользователя передаются на сервер, внесенные изменения обрабатываются редактором, после чего пользователю отправляется новая картинка. Таким образом, разработчики решили не разрабатывать онлайн-редактор, а просто поместить свой готовый десктоп в облако и отладить механизм транслянции.

У такого подхода есть плюсы и минусы. Плюс: c такой схемой все функции, которые есть в десктопе Libre будут доступны в онлайне. Минус: чтобы в таком онлайн-редакторе могло работать большое количество пользователей, придется поднять ДЕЙСТВИТЕЛЬНО МНОГО серверов. Что-то подсказывает нам, что это будет недешево и очень медленно.

Кроме того, сейчас у Libre нет совместного редактирования. Вообще. А так как их онлайн-редактор — это десктоп, помещенный в облако, то чтобы сделать хоть какую совместку кому-то придется залезть в его ядро (точнее, в код трех разных десктопных редакторов, которые еще и писались разными командами) и производить там существенные изменения, поскольку вся мега-функциональность редакторов должна быть доступна и в совместной работе. Другими словами, придется отрефакторить три редактора. Как вы понимаете, переписывать код редакторов и делать механизм ретрансляции — это довольно далекие друг от друга задачи. В общем, наш прогноз — совместного редактирования у LibreOffice не будет еще долго. Но все функции десктопа будут.

Десктоп ONLYOFFICE — это браузер

Мы считаем, что нам в этом плане повезло больше: мы сначала написали онлайн-редактор, а затем переделали его в десктоп. Скажем так, совместное редактирование у нас есть по умолчанию, поскольку десктоп ONLYOFFICE по сути представляет собой браузер, который открывает не все страницы, а только наши — документы. Для этого мы используем Chromium Embedded Framework (CEF), подробнее об этом можно прочитать в нашей статье об анатомии десктопных редакторов.

Из других плюсов — мы считаем, что наши редакторы это редакторы «будущего», они будут работать на всем, что поддерживает HTML, будь-то новая китайская операционная система или инопланетная технология с возможностью доступа к земному интернету (мы предполагаем, что инопланетяне всё-таки решат настроить себе интернет, чтобы получше изучить нашу цивилизацию).

(Очень) Краткие выводы

Если вдруг вы не смогли прочитать много букв выше, то здесь мы мы коротко сформулируем основные отличия open source редакторов ONLYOFFICE от офисного пакета Libre Office:

  • Основной формат, с которым работает ONLYOFFICE, — OOXML (docx, xlsx, pptx). Основной формат Libre — ODF (odt, ods, odp).
  • ONLYOFFICE лучше открывает docx, Libre — odt. Но большая часть существующих на Земле документов сохранена в docx.
  • Libre Office находится в процессе создания онлайн-версии. О совместном редактировании речь пока не идет.
  • Десктопные редакторы ONLYOFFICE выросли из онлайн-версии. Совместное редактирование есть в них по умолчанию.

В общем, вам решать.

Комментарии (3)

  • 13 октября 2016 в 14:46

    0

    А что вы планируете делать когда в стране наконец придет к власти Сталин закрутят гайки и заставят все гос. организации использовать ODF, закрепленный ГОСТ Р ИСО/МЭК 26300–2010?
    • 13 октября 2016 в 14:49

      0

      Как описано выше, жевать отработанное сено.
  • 13 октября 2016 в 14:54

    0

    image
    Будет ли подобный функционал или он уже есть, но я его не нашел? Иногда в электронной таблице необходимо корректировать верстку страницы для печати

© Habrahabr.ru