LXF72:Интервью

Материал из Linuxformat.

Перейти к: навигация, поиск


Праведный хакер

Как истинный евангелист предан своей вере, так и Майкл верит в сообщество бесплатного программного обеспечения. Майкл Микс не боится высказываться по поводу ядра, KDE и «монополии» Trolltech.

визитка LXF

Майкл Микс

Изображение:Miks.jpg
Майкл Микс, Майкл верит в сообщество бесплатного программного обеспечения

Открыл для себя Gnome еще в подростковом возрасте, перед учебой в Кембридже. Работал на компанию Quantel, специализировавшейся на цифровом редактировании и спецэффектах, затем перешел в Ximian, что и привело его в Novell. Сеогдня - ведущий разработчик OpenOffice.org

  • Возраст: 28 лет.
  • Национальность: англичанин.
  • Стаж работы в Linux: 10 лет.
  • Языков программирования: 7.
  • Число ПК: 6.
  • Суточная норма кофе: 2 чашки.
  • Сандалий: 1 пара.
  • Цитата: «Я не анти-QT маньяк - у меня на примете есть еще, по крайней мере, 2 сообщества».

Будучи опытным хакером, Майкл Микс (Michael Meeks) успел поработать над многими высококлассными программами для Gnome, в том числе над Nautilus и Bonobo. он был одним из первых программистов, которых наняли Мигель де Икаса (Miguel de Icaza) и Нэт Фридман (Nat Friedman), создававшие компанию Ximian. Вместе с ними он в дальнейшем перешел в Novell – и теперь работает в одном из подразделений, возглавляя команду разработчиков OpenOffice.org. Грэхем Моррисон встретился с ним на недавней Linux-конференции UKUUG в Суонси [прим. город в Великобритании, Южный Уэльс], и Майкл объяснил, почему он считает лицензию Qt от компании Trolltech такой спорной.


Linux Format: Не могли бы вы объяснить, какова ваша роль в Novell?

Майкл Микс: Считается, что я – выдающийся инженер. Я понятия не имею, что это значит. Возможно, что в определенный период своей жизни я как-то необычно одевался, таким образом, они и смогли выделить меня среди других. Да, конечно, на данный момент в компании, я отвечаю за развитие OpenOffice.org. У меня есть команда из десяти человек, по крайней мере, такое количество работает на меня сейчас, разрабатывает OpenOffice.org, добавляет новые возможности, решает, куда будет развиваться проект, помогает все это организовать. Это весьма занятно.

LXF: Сколько человек из этой команды заняты процессом интеграции OpenOffice.org в среду Novell?

ММ: Фактически, в рамках 'рабочего стола' эта задача в большей степени уже выполнена, в плане интеграции OpenOffice.org и Gnome взаимодействуют достаточно хорошо. Вы можете использовать Evolution (почтовый менеджер от Novell) для составления списков своих контактов, используя адресную книгу GroupWise (также разработанную Novell) при помощи OpenOffice.org – все это работает безупречно. Всегда есть большая вероятность найти ошибки, но, тем не менее, данная система выглядит весьма неплохо.

Так что теперь мы больше внимание уделяем стратегическим задачам, например, взаимодействию с Microsoft Access, поддержке макросов VBA и улучшению программы Calc, которая очень перспективна, но пока является слабой стороной пакета OpenOffice.org. К тому же нам необходима поддержка ограничения возможностей. Для подобных вещей существует полноценный пакет программ от Novell под названием ZENworks. Вы можете управлять Windows, Linux, Unix и NetWare с помощью единого базового консольного приложения. К тому же, ограничение возможностей должно действительно пригодиться, так как оно позволит, например, централизованно отменять пользовательские очереди печати и сделать множество других незаметных 'сисадминовских штучек', которые очень полезны при работе в сети.

LXF: Много ли приходится работать на уровне приложения с такими вещами, как ZENworks?

ММ: Чаще всего приходится создавать пакеты. Мы используем приложение под названием RedCarpet, которое берет на себя всю работу по управлению пакетами и решает проблемы с их зависимостями. На самом приоритетном месте стоит управление настройками. Этим приходится заниматься, если кто-то, к примеру, захочет поместить корпоративную эмблему на заднем фоне приложения или перенастроить рабочий стол. Это так называемая «надстройка», которая также может блокировать часть функций, чтобы не позволить людям делать то, что им не положено. Изначально, программное обеспечение очень мощное и функциональное, и часто бывает так, что вы захотите предотвратить исполнения макроса или же не дать возможность людям распечатывать или, например, изменять определенные параметры какого-то файла. Существует множество надстроек, которые просто необходимо добавить в приложение, чтобы оно работало так, как нужно.

LXF: Именно в этом нуждается корпоративный рынок?

ММ: Абсолютно. Приведем несколько банальный пример – для предприятия важно, в каком формате будут по умолчанию сохраняться документы. Вы можете сохранить в одном из форматов Microsoft Office, либо же в OpenOffice.org, или даже в новом открытом формате OASIS, который намного отличается с коммерческой точки зрения при попытке его централизованного обслуживания.

LXF: Как это будет? Какова ситуация с Microsoft ME и документами формата Open Standards?

ММ: OASIS (Organization for the Advancement of Structured Informational Standarts)? Дело в том, что у Microsoft есть одна замечательная вещь в Office12 – у них gоявился новый формат XML, и, естественно, он станет стандартом де факто – это и есть самое плохое. В то же время, OASIS отказался от использования многих схем XML, таких как XForms. Сейчас, в OpenOffice.org появилась поддержка этого перспективного формата, что не может не радовать. Все соответствует стандартам, и при сохранении файла на диск, используется схема XForms, которая широко эксплуатируется внутри документа. Конечно, что использует Microsoft – одному богу известно.

LXF: По крайней мере, формат Microsoft XMl представляет собой простой, незашифрованный текст.

ММ: Да, это простой текст, так как это необходимо для совместимости, и вы сможете открыть его безо всяких проблем с двоичными модулями. Однако, возникают сложности при взаимодействии с другими форматами… Думаю, именно поэтому в Microsoft стремятся создавать новые стандарты, вместо того, чтобы использовать множество других, весьма, на мой взгляд, замечательных. Другой пример: существует ирландское сообщество, Dublin Working Group Initiative, которое владеет всеми спецификациями метаданных XML. Оно комментирует все XML-документы, предоставляет семантическую разметку для разных типов документов и прекрасно разбирается во всех атрибутах. Конечно, все это было доступно всегда, но сейчас это приобрело действительно неплохую специфику – разработаны описания шаблонов документов (DTD), на которые было потрачено много сил и времени… и OASIS опять использует уже проделанную работу, а не заново «изобретает велосипед», вследствие чего, у него действительно есть возможность взаимодействовать с другими системами, чего, несомненно, нет у Microsoft!

LXF: Вы думаете, что Microsoft находился под давлением?

ММ: О, нет. У них есть настолько огромная база наработок, что они всегда могут «передумать» и предложить что-то более посредственное и тривиальное… в любом случае, это моя точка зрения. я не думаю, что у нас есть возможность внедрять на рынок новые стандарты, так как это делают они.

LXF: Я думаю, что приложение с такой же функциональностью, как и MS Office, но при этом с меньшей стоимостью и под вашим надзором, можно легко продать… особенно в cфере образования, муниципалитета и на других подобных рынках. Это то, к чему движется OpenOffice?

ММ: Дело в том, что цена на StarOffice (проприетарный офисный пакет компании Sun) составляет, насколько я помню, примерно 25 долларов за один дистрибутив, который вы можете установить на любой компьютер дома или в учебном заведении или поделиться им с другими студентами. Так что даже по цене мы не сможем конкурировать с пакетом StarOffice. Впрочем это здорово, что он продается на этом рынке, так как компания Sun очень много работает над OpenOffice.org. Тем не менее, я думаю, что и наши возможности здесь огромны, вне всякого сомнения.

LXF: В чем ваша сильная сторона?

ММ: Даже и не знаю, в чем моя сильная сторона, но мне нравится поддерживать свою команду и наблюдать за тем, что происходит с каждой частичкой их труда.

LXF: То есть, за всем подряд?

ММ: В каком-то смысле, да. Дело в том, что OpenOffice.org представляет собой достаточно большой продукт, в котором содержится свыше 8 миллионов строк кода так что полностью понять или представить столь глобальную картину становится весьма проблематичным. Я не могу охватить ее всю, но, все же, смотрю чуть шире, чем новички нашей команды. К примеру, уже почти год на нас работают несколько человек из индии. Но, все равно, есть множество специальных утилит и технических приемов, которые были бы полезны для внедрения в систему. Чем я и занимаюсь – в настоящий момент я работаю над производительностью, пытаюсь ее поднять.

LXF: Обладаете ли вы полной свободой при выборе решения о том, какое направление примет разработка OOo?

ММ: (Смеется) Знаете ли, эта проблема всех больших организаций. некоторые из нас лишь подливают масла в огонь, но на компанию Novell работают менеджеры по развитию продуктов, руководители проектов и многие другие. Говоря короче, мои менеджеры по продукции приходят и уходят… Я помогаю адаптироваться новым менеджерам, рассказываю им ключевые моменты – то есть то, что является для меня наиболее важным. И они, в конечном счете, со мной соглашаются. То есть, в значительной степени я стараюсь контролировать направление продукта. И это здорово, несмотря на то, что отнимает довольно много времени – составлять планы и тому подобное.

LXF: Можно ли что-нибудь предпринять, чтобы ускорить время загрузки OpenOffice.org?

ММ: Да, на самом деле, именно этим я и занимаюсь. Есть несколько проблем, касающихся загрузки. Одна из них такова: OpenOffice.org неизбежно становится все больше. Понимаете, сложность не появляется сама собой – в ее основе всегда лежит исходный код.

По мере роста дискового пространства,занимаемого программой, увеличивается нагрузка и на ядро, которое справляется с этим весьма умно – оно определяет, что именно может понадобиться приложению, после чего предварительно загружает все необходимое так, чтобы не было никаких преград для поиска, чтения, и других подобных операций. Так что основная загвоздка именно в ядре.

LXF: Так за все это отвечает ядро?

ММ: Не за все, конечно. Пообщайтесь с разработчиками ядра, и они скажут что-то наподобие этого: «Ну, знаете, Vi запускается весьма быстро!». А вы им: «Хорошо, но ведь это совсем другая весовая категория!».

LXF: Так в чем тогда проблема?

ММ: Проблем несколько. Одна из них – компоненты OpenOffice.org уникальны и больше в ОС нигде не используются. Обычно, если вы запускаете какое-либо приложение, то все необходимое для его работы скорее всего будет уже загружено в кэше для общего доступа. Например, GTK, GNOME, VFS… все это скомпоновано и большинство из этого используются в качестве общих разделяемых библиотек. И при старте нагрузки на жесткий диск нет.

Также, запуск программы тормозится из-за плохих программных алгоритмов, да и скорость поиска дорожки диска уже 20 лет, как не изменяется.

LXF: Долгое время, люди обвиняли MS в интеграции MS Office в Windows…

ММ: Правильно. Еще одна значительная проблема – сам язык C++. Как раз сейчас я работаю над компилятором, поскольку для того, чтобы увеличить скорость загрузки OpenOffice.org, потребуется более совершенный компилятор C++. Я использую весьма быстрый компьютер, но даже на нем такая операция, как формирование релокации виртуальных таблиц длится около одной секунды – это не так-то просто исправить.

LXF: Но мы говорили о ядре, сейчас вы говорите о GCC… К чему еще вы собираетесь придраться?

ММ: В OpenOffice.org также есть и другие проблемы, но мы уже проделали много работы по увеличению производительности, и в конечном счете приходим к некоторому пределу того, чего можно добиться. Так что, сейчас я рассчитываю на компилятор C++.

LXF: Разве новый Gcc 4.0 не повышает производительность?

ММ: Нет, на самом деле ухудшает, причем существенно. Раньше компилятор, к примеру, сравнивал типы исключений при помощи сличения строк, весьма медленно. Теперь это реализовано при помощи сравнения прямых значений указателей. Та же строка, тот же указатель – все теперь должно выполняться быстро.

Это в теории. на самом же деле, высокая производительность достигается только в рамках одного бинарного файла. Но после того, как вы разобьете его на совместно используемые библиотеки, очень мелкие компоненты (а большинство в OpenOffice.org представляет собой именно компоненты), вы проиграете в производительности. Раньше нам нужно было экспортировать три символа: «Компонент, расскажи о себе», «Компонент, создай себя» и еще кое-что. Все остальные символы можно было связать внутренне, так что все релокации в действительности разрешались в момент компиляции.

К сожалению, если разрешение строк происходит во время компиляции и в каждой библиотеке появляется своя копия, это перестает работать – указатели получаются разными и отловить исключение не удается.

Теперь нам придется экспортировать все символы в глобальном порядке и разрешать все на стадии работы приложения, каждый раз. А это ужасно медленно. Это было главной проблемой в производительности для [OOo] версии 2.0, и мы уже завершили огромное количество работы, создавая ограничения для областей видимости, что само по себе является новой техникой компилятора – мы практически подошли к тому, с чего начинали. GCC 4.0 – это беда.

LXF: Вы были вовлечены в эту работу?

ММ: Нет, не был. Часть моей команды занималась разметкой области видимости, чтобы постараться привести ее в первоначальный вид. И, к сожалению, от этого никто не выиграл, нам пришлось искать что-то еще в компиляторе, что могло бы быть весьма полезным и для других C++ приложений.

LXF: Я знаю, что приложения, разбитые на компоненты, очень важны для вас. Я согласен, что KParts в KDE – отменная вещь. Тогда, как вам кажется, не стоит ли реализовать что-то подобное?

ММ: Видите ли, я не большой поклонник KParts… Написав огромное количество компонентов, я думаю, что инструментарий, принадлежащий конкретной компании (KDE использует библиотеку QT, который в свою очередь находится под двойной лицензией компании Trolltech) – это абсурд. Если вы решили обладать всем этим ПО для того, чтобы писать обычные приложения, почему вы должны платить тысячу евро только для того, чтобы получить отдельные компоненты? В этом вся проблема.

Сейчас это коснулось и OpenOffice.org, когда интеграция с KDE ввязывает наш проект в эту монополистическую штукови ну, так что… Например, у Deutsche Post есть замечательное расширение, проприетарная часть кода для OpenOffice.org, и когда вы печатаете ваши письма, конверты, на вашем письме автоматически ставится двумерный штрих-код, который создается на сервере Deutsche Post и фактически ставит цифровую подпись на ваше письмо по мере того, как вы его печатаете. Это, в принципе, делает данное приложение весьма полезным. И, конечно же, им придется заплатить компании Trolltech (создателю Qt) определенные деньги, если они захотят распространять его на нашей платформе.

Я нахожу это неприемлемым. И я не вижу причин помогать монополии. Сделав такой выбор, вы сознательно лишаете других свободы выбора на неограниченный срок, что само по себе очень беспокоит. Очень не логично вкладывать огромные средства только для того, чтобы соревноваться за «рабочий стол». Очень грустная ситуация, но посмотрим, что будет дальше.

LXF: Я, конечно, понимаю, что наши взгляды в принципе не одинаковы, поскольку вы – разработчик, а я – пользователь, но я считаю, что KDE вполне хорошо работает. И если я напечатаю, к примеру, "fish" в строке Konqueror, это просто будет работать.

ММ: ну, SSH в Gnome, представляет собой ту же самую вещь. Если вы привыкли к "fish", – хорошо (смеется).

LXF: Нет, я не могу жить без SSH. Это то же самое, но только с дополнительными возможностями. Мне действительно нравится Gnome, и я рад, что есть из чего выбрать, так как KDE и Gnome кажутся весьма обособленными и разными.

ММ: Да, они такие, и, я бы сказал, продолжают отдаляться друг от друга.

LXF: Если познакомившись поближе с Epiphany, – это ведь уже совсем не похоже на…

ММ: Да, я знаю, на Firefox! но это совсем другое. Переписывать браузеры – бесполезная трата времени, усилий и денег.

LXF: Хорошо, по крайней мере есть механизм рендеринга Gecko. Хорошо бы, если бы Konqueror тоже его использовал.

ММ: Повторное использование Gecko также разумно, как и повторное использование Firefox, однако со стороны Gnome, интеграция в данную среду – это правильно.

LXF: Как вы познакомились с Gnome?

ММ: Это долгая история. Я как раз стал христианином в то время. Хочу отметить, что тогда я использовал только Windows (какую-то пиратскую версию Windows 95 c нелегальными компиляторами), и для развлечения писал игры на ассемблере. Мы спорили с богом, насколько это неэтично и неправильно. В конце концов, он победил, и я подумал о том, чтобы переключиться на использование Linux, проку от которого тогда было мало, к тому же он был лишен графической оболочки – не было способа программировать в среде разработки, к чему я очень привык. Я выбрал свою профессиональную карьеру, это и стало поворотной точкой. Именно поэтому я и начал изучать Linux в университете.

LXF: Это были 95-й, 94-й год?

ММ: Да, где-то в 95-м, в 96-м я и сделал этот выбор, после чего в 1997 году я поступил в университет. У меня была совсем небольшая программа, которую я написал сам, и я полагал, что она была весьма элегантной, аккуратной и красивой. К сожалению, она не была лишена ошибок, но я понадеялся, что GCC предупредит меня об этом. Однако компилятор этого не сделал, и я подумал: «В этой ситуации может оказаться каждый», после чего написал немного кода для проверки моей ошибки.

Общество разработчиков GCC было полностью безнадежным – я опубликовал исправление, и примерно месяц спустя кто-то ответил: «Почему никто не смог с этим что-то сделать, эта заплатка отлично работает, что происходит?» Спустя годы, кто-то еще внедрил это в GCC, и только спустя четыре или пять лет пользователи смогли увидеть изменения в конечном дистрибутиве. Никакого удовольствия.

Так я перешел на Gnome Mahjongg – простую глупую игру, но я сделал ее решаемой. Потом занялся Gnumeric (редактор электронных таблиц для Gnome). Тогда я и познакомился с Мигелем (Miguel de lcaza).

Долгое время я работал с ним. Потом я занимался Bonobo и компонентами вместе с Нэтом (Nat Friedman), а после этого они создали компанию Ximian и наняли меня. Повторюсь, это был всего лишь вопрос времени, чтобы оказаться в нужном месте, в нужное время.

LXF: Так Gnome или KDE?

MM: Определенно Gnome. Его корпоративная политика состоит в том, чтобы предложить нашим пользователям выбор и все остальное. Вполне очевидно, что, проработав в Gnome еще, я вновь отвечу – Gnome.

LXF: Причина в лицензии?

MM: Да, именно поэтому я и втянулся в этот проект. Я бы в любом случае выбрал Gnome, даже если бы эта среда не могла осуществить то, что вы хотите, а KDE, напротив, справился бы с этим. Вместо этого, я лучше бы стал улучшать Gnome, потому что, в противном случае, я мог бы навредить другим людям. Проблема в том, что до тех пор, пока не будет ясно, кто же победитель (на рабочем столе пользователя), поставщикам свободного программного обеспечения придется нелегко при выборе. Тем не менее, пользуясь каким-либо продуктом, вы на самом деле определяете его дальнейшую судьбу, поскольку каждый человек является защитником того, чем он пользуется.

LXF: Может ли Trolltech сделать что-нибудь такое, чтобы вы почувствовали себя лучше?

MM: Понимаете, разрабатывая программное обеспечение и используя при этом Qt, вам просто придется платить компании Trolltech за лицензию. Это вполне рациональная модель бизнеса, но я не думаю, что лично мне бы хотелось создавать мир, в котором бы был только один 'хранитель заветного ключа' для всего программного обеспечения. Вы можете сказать, что «у меня есть возможность использовать и другие инструментальные средства», или, что «я ведь могу запускать Gnome-приложения в среде KDE и наоборот», но проблема в том, что нужного уровня интеграции достичь невозможно. Если вы захотите взаимодействовать с файловым менеджером, вы сможете выбрать для этого Nautilus, в противном случае вам придется решать проблему с лицензированием. Я считаю, это представляет угрозу.

Надеюсь, Mono будет абсолютно другой средой разработки, во всяком случае, она будет отличаться. Очень многое в ней сейчас не используются по причине того, что пользователи привыкли применять стандартные решения, то есть то, что они уже знают – C++, Qt… Я думаю, Mono сможет предложить хотя бы что-то новое, отличное от всех, и в то же время мощное и функциональное решение. На мой взгляд, Mono является очень перспективным направлением, и, к счастью, у нас есть подходящие возможности для дальнейшего развития по этому пути, разумеется, разрешенные законом.

LXF: Вы каким-то образом контактируете с командой KDE?

MM: Да, я знаю многих ее представителей, с которыми я здороваюсь на различных конференциях, время от времени мы даже покупаем друг другу пиво. Они хорошие ребята, хорошие программисты. Мы не скрываем наше расхождение во мнениях, для нас это нормально.

LXF: Но многие люди отдают предпочтение KDE только из-за различий между файловым менеджером Nautilus, с его пространственным режимом (spatial mode), и Konqueror.

ММ: Есть очень интересные видеосюжеты по поводу того, как люди выполняют одинаковые задачи в KDE и в Gnome, вскоре мы собираемся в лаконичной форме представить эти материалы на конференции KDE. Конечно, мы пытаемся улучшить подобные вещи. Недавно в Бристоле (город на юго-западе Великобритании, графство Глостершир) проводилось исследование, в ходе которого людям «с улицы» демонстрировались четыре компьютера – два с KDE и два с Gnome, и Gnome вышел на первое место.

LXF: А пространственный режим был в это время включен?

MM: (смеясь) На самом деле, никто не хочет просматривать свою файловую систему. В конце концов, никто просто не станет «щелкать» по файлам. Все, что нужно пользователю – это быстро найти необходимую информацию. В диалоге выбора файлов в OOo мы планируем сделать интегрированный поиск. Вы просто набираете слово "fish" и программа находит вашу «рыбу». Есть, разумеется, и другие похожие утилиты для Gnome. Я думаю, что до тех пор, пока у пользователя есть стандартные права, необходимости в средствах настройки нет. Вам не нравится пространственный режим, но многим наоборот – нравится, они знают, что окно с конкретной директорией всегда будет нужного размера. Я думаю, что нашей целевой аудиторией являются занятые люди и пользователи начального уровня. Так что мы действительно следуем по пути компании Apple: Сделать что-либо как можно проще, попробовать и сделать это более функциональным, но, в тоже время, чтобы интерфейс не стал слишком запутанным.

LXF: И наконец, давайте посмотрим в будущее: сможет ли Cairo оправдать все ожидания?

ММ: На самом деле, мы уже немного работаем над его интеграцией в проект OpenOffice.org. Вот, к примеру, у меня на ноутбуке есть прототип, и я не думаю, что он будет особо полезным. У Microsoft уже были эти выпадающие штуковины, которые можно было прокручивать и совершать различные действия. Это, просто-напросто, вводит человека в состояние депрессии, по крайней мере, меня. Если эффекты хоть как-то помогают пользователю и они действительно полезны, например, прозрачные окна при перемещении окон, тогда хорошо. Но сколько времени тратят люди на то, чтобы расположить окна? Безусловно, есть определенные преимущества, но я не слишком уверен в том, что это все действительно необходимо.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию