среда, 18 октября 2017 г.

История и некоторые причины проблем LibreOffice

Он взял из рук Карлсона кричащий сверток и нежно прижал его к себе.
-- Не плачь, маленькая! -- сказал Малыш. -- Ты ведь такая милая…
Астрид Линдгрен. «Малыш и Карлсон»
перевод Л.Лунгиной
Вы конечно знаете, что пакет LibreOffice включает в себя несколько модулей, таких как Writer, Calc, Draw… Все эти модули связанны в одно приложение и не могут быть установлены по отдельности. Но больше всего вас может смутить различная проработанность (хотя, по правде говоря, заброшенность) этих модулей. Для того, чтобы лучше понимать, откуда вырастает такая разная заинтересованность у разработчиков различными модулями, появление и исправление ошибок и непроработанность документации, я предлагаю сначала погрузиться в историю появления LibreOffice. И начнём мы с самого начала.



В далёком-далёком 85 году XX века немецкая компания StarDivision GMBH, созданная 16-летним программистом Марко Беррисом (Marco Börries), разработала приложение под названием StarWriter. И работало оно под MS-DOS. Нормального офисного пакета в то время ещё не было. Как пакет StarOffice был выпущен только в 1994 году и включал в себя уже StarWriter, StarCalc и StarBase для Windows 3.1. А в 1995 получив версию 3.0 имел уже StarWriter, StarCalc, StarDraw, StarImage, StarChart и мог работать под управлением DOS, Windows 3.1, OS/2, Solaris SPARC, Power Macintosh. В 1996 году вышла версия 3.1, отличительной особенностью которой стала поддержка Linux. Где-то между 95 и 98 годами в пакет попали так желанные нашим сообществом персональный менеджер StarSchedule, почтовый клиент StarMail, агрегатор новостей StarDiscussion и ещё несколько компонентов, нормальные названия которых я не смог раскопать. Позже все эти компоненты были удалены из пакета. И, к слову говоря, пакет тогда был проприетарный, свободным он стал позже. Сложно оценить популярность этого офисного пакета на данном этапе. Конечно, если поставить перед собой цель копать, то раскопать можно многое. Но я думаю, нам будет интересно другое.

Осенью 1999 года компания Sun Microsystems приобрела StarDivision. Тогда же был открыт исходный код, и, начиная с версии 6.0, StarOffice выходил на основе OpenOffice.org. С 2005 года Sun объявила о своём отказе от SISSL, и код стал доступен только под лицензией LGPL. Нужно отдать должное разработчикам Sun Microsystems, которые вносили львиную долю в разработку свободного офисного пакета. С открытием исходного кода, также стало образовываться свободное сообщество вокруг пакета. Стали появляться заинтересованные люди в развитии документации, дизайна, кодовой базы. И, если быть честным, то на мой взгляд, команды LibreOffice до сих пор не могут повторить этого расцвета согласованного творчества. Под управлением Sun Microsystems OpenOffice.org выпускался с 2001 по 2010 годы. И отличительной чертой было то, что был план на версию, и версия выпускалась по готовности. Затем было несколько корректирующих релизов. Но все равно, одной из основных особенностей было то, что основные релизы тестировались сообществом, и ключевые ошибки исправлялись до выпуска. Конечно не все, но всё же… И это ощущение целостного, законченного и стабильного продукта пропало в LibreOffice. Для полноты картины нужно упомянуть, что в Wikipedia без ссылок на источники сказано, что было продано 25 миллионов лицензий StarOffice. Не совсем понятно, было ли это только за время существования StarDivision, или сюда включено всё время существования пакета. Но по исследованиям FlashCounter Statistics Service в начале 2010 года в Германии OpenOffice.org и его производные были установлены на 21 % компьютеров пользователей. То есть, более чем на пятую часть пользовательских компьютеров. Во время существования OpenOffice.org от него отделились форки. Из основных значимых для истории форков можно упомянуть следующие три: Go-oo, который по сути просто набор патчей для улучшения; NeoOffice (в последствии просто Neo), целью которого была улучшенная интеграция с окружением OS X; IBM Symfony была создана как ещё одна коммерческая версия офисного пакета.

В 2009 году Sun Microsystems была поглощена корпорацией Oracle, к которой также перешли права на торговые марки StarOffice и OpenOffice.org и их код. Для проекта OpenOffice.org тот период больше похож на предсмертные судороги: жесткий пресс со стороны Oracle, развал сообщества, угасание интереса со стороны активных членов. Фактически за год Oracle смогла развалить всё, что было достигнуто. Они выпустили свой StarOffice, переименованный в Oracle Open Office. В это же время выходят две версии OpenOffice.org. Но уже в сентябре 2010 года было объявлено о создании проекта LibreOffice.

Если вам нравится копаться в грязном белье, то вы обнаружите, что любое открытое сообщество, как бы оно не восхваляло светлые идеалы, по факту — просто сообщество, со всеми его недостатками. Эти недостатки точно также мешают ему, как и любому другому сообществу. Но я не буду тыкать в лица пальцем, нас интересует история и то, к чему она нас может подготовить.

Официальной версией создания проекта LibreOffice является давление со стороны Oracle на проект OpenOffice.org. В связи с этим был создан фонд The Document Foundation (TDF) и организовано ответвление от OpenOffice.org под названием LibreOffice. К слову говоря, организаторы TDF просили Oracle передать права на торговую марку OpenOffice.org в фонд, но компания отказала в этом и передала код и торговую марку проекту Apache, ещё больше раздробив сообщество. Проект LibreOffice был поддержан многими свободными проектами. Но если быть честным, то, скорее всего, эта поддержка была больше пинком противному Oracle, чем реальной поддержкой свободному проекту. В сущности, первые версии не отличались OpenOffice.org.

С самого начала проект LibreOffice воспользовался стратегией, которую использовал Google для продвижения своего браузера Google Chrome. Если вы вспомните выпуски браузера Chrome, то увидите, что первые полгода, год браузер просто бешено менял версии. Мне кажется, что по началу это вообще было раз в 2 недели, и я говорю не про исправления ошибок, а про полноценные релизы. И я помню своё мнение, когда наблюдал это: «Как быстро он развивается, как интенсивно… Это технология будущего!» Поверьте, я не копался в изменениях версий, я просто наблюдал как меняются цифры в версиях и делал свои выводы. И я думаю, многие так сравнивают, если какой-то продукт выпускает версии чаще, нам кажется что он развивается быстрее. Команда LibreOffice сознательно или бессознательно использовала этот принцип, чтобы сразу позиционировать себя как быстро развивающееся решение. На самом деле количество фактически вписанного кода в проекте от этого не увеличивается. А как программист, член команды документации и постоянный пользователь я вижу, что некоторые компоненты так и не изменились со времен Sun Microsystems, и не потому, что в этом нет необходимости. Основные изменения вносятся в Writer и Calc. Причем эти изменения не являются целостными, особенно это заметно на уровне дизайна. Даже если взять только Writer, вы можете обнаружить, что при работе в нормальном режиме и в режиме составного документа мы видим разный дизайн панелей, меню и различное поведение всплывающих окон. А IDE Basic, например, не трогалось со времен OpenOffice.org. Конечно, частично это связано с тем, что у проекта нет четкой концепции. Сейчас его развитие похоже больше на эволюцию биологического организма: каждый разработчик вносит какие-то правки, назовем их мутациями, и со временем остаются «полезные» или безвредные мутации, но целостного плана развития нет. Это принцип меритократии в действии — кто больше «мутаций» совершил, тот и прав, целостность и полезность этих мутаций рассматривается только с точки выживания вида. Второй причиной можно назвать психологическую. Значимые версии LibreOffice выпускаются каждые полгода, и каждые полгода происходит отсечка в голове разработчика — «готово». Вместо того, чтобы остановиться, осмотреться, создать концепцию и план и постараться осуществить его за следующие полтора года, наши разработчики несутся сломя голову, потому что, за полгода нужно успеть сделать новое, что-то значимое. И опять же, «мы наконец привели всё в порядок» не будет работать, должно быть построено новое. Такое отношение к проекту создает нагрузку на многие сопутствующие команды, больше всего страдают команды документации и локализации. Это не секрет, что сегодня, команда документации отстает на несколько лет (лет, а не версий), команда локализации занята переводом интерфейса и у них не хватает времени заниматься переводом документации. Русскоязычная справка не переводилась уже со времен OpenOffice.org, а те изменения, которые были сделаны пару лет назад, выполнялись при содействии немецкой компании CIB. Единственная команда, которая счастлива от быстрой смены версий — это команда маркетинга. Потому что, даже если поезд не едет, они все равно могут «качать вагоны и объявлять остановки».

Чтобы до конца быть честным, нужно упомянуть, что разработкой LibreOffice занимаются не только частные лица, но и коммерческие компании. Наибольший вклад вносят британская компания Сollabora, немецкая CIB Software и американская Red Hat. При этом Сollabora разработала Online LibreOffice и версию для Андроида, вернув код в проект. Кроме того, если вы посмотрите на консультативный совет TDF, то увидите там много интересных имен: и некоммерческие организации, Free Software Foundation, GNOME, KDE e.V.; и коммерческие — Google, Intel, AMD, Canonical, RPA RusBITech. И на сегодняшний день кодовая база, по крайней мере в популярных компонентах, ушла очень далеко от своего прародителя OpenOffice.org.

Но при всём при этом, ошибки копятся огромной волной, интерфейс не унифицирован, и есть совершенно непонятные мелкие недоработки, которые отравляют рабочий день в LibreOffice. Да ещё и плохая совместимость с проприетарными форматами. И было бы логично заморозить выпуск новых версий и привести всё в порядок, выпустить полноценный, целостный офисный пакет, но…

За что же я люблю LibreOffice? Почему при всех недостатках я использую его как свой основной офисный пакет, а из LibreOffice Calc вылезаю «только, чтобы попить чаю».

Причина в том, что на сегодняшний день, LibreOffice действительно столп открытого программного обеспечения. Но даже если мы не берём во внимание открытость, а для многих пользователей это и не имеет значения, лишь бы было бесплатно, LibreOffice смог осуществить очень много удобных концепций, которые значительно упрощают работу офисного работника. И этого нет ни в одном другом бесплатном пакете. Ошибки — да, они есть. Но практически любая ошибка, которую можно сейчас найти в приложении, имеет достаточно простой обход. И здесь в большей мере важно, чтобы человек профессионально владел инструментом. И чем более профессионально вы владеете инструментом, тем менее значимы для вас появляющиеся ошибки, и более важна сама концепция работы с инструментом. А в этом, как я уже говорил, LibreOffice нет равных.

Дополнительная литература и источники: