Будни разработчика

 | 17.13

Мой Компьютер, №17 (521), 15.09.2008

МК: Привет. Чем ты занимаешься? В чем заключается твоя профессиональная деятельность?

С.У.: Официально моя позиция называетя consultant. По сути — энтерпрайзовый разработчик-эникейщик. Работаю в ирландской фирме среднего масштаба (недавно купленной большой штатской фирмой). Формально специализируюсь на java, но последние 3 года имею дело в основном с ibm-овским стеком WMQ/WMQMB. Ну, и всякие СУБД, в первую очередь oracle, куда ж без них?

МК: Какое отношение имеешь к GNOME?

С.У.: Моя сфера интересов — интеграция GNOME и XKB, что включает в себя конфигурирование и индикацию. В ходе работы над этими компонентами мне пришлось расширить свою сферу влияния за пределы GNOME. Я, во-первых, обнаружил, что мой код может быть полезным не только в GNOME (это подтвердилось с выходом KDE4). Так появилась библиотека libxklavier. Во-вторых, я изначально был в шоке от того, что творилось в базе раскладок xfree. Это был ужас неструктурированности, на который всем активным англоязычным разработчикам было плевать. Раскладки и варианты добавлялись как попало.

Коль скоро я был «человеком GNOME», я не мог показывать эту инферналию пользователю. Было два выхода — либо «спрятать» все за набором прошитых в коде строчных констант (путь KDE3), либо разгрести эти Авгиевы конюшни, став их хозяином.

Так появился проект xkeyboard-config, сейчас он — официальная база раскладок XKB в X.Org. На сегодня вся информация о доступных раскладках, вариантах и опциях, показываемая пользователю в GNOME и KDE4, берется непосредственно из этой базы. Поэтому многие баг-репорты в GNOME я закрываю как NOTGNOME — и потом радостно встречаю их в xkeyboard-config.

Я очень благодарен Ивану Паскалю за помощь на первом этапе. Также хотел бы упомянуть Daniel Stone — без его знания внутренностей кода x.org многие проблемы висели бы годами.

Частью «основной гномовской тусовки» я никогда не был — ни географически (ибо тогда большая часть разработки велась в Штатах), ни корпоративно (я не работал ни на одну из основных компаний, двигающих GNOME). Просто общался и общаюсь с теми, с кем нужно для дела — с людьми, работающими над GTK, gnome-control-center, gnome-applets, gnome-settings-daemon.

Вопрос был про GNOME но ответ получился все больше о том, что «ниже». Но оно действительно так и было в реальности — чтобы получить что-то презентабельное на верху стека, мне пришлось спуститься вглубь. После этого построение «верхнего этажа» было относительно несложной задачей.

МК: Почему именно данный проект?

С.У.: Почти случайно. В конце 90-х в Фидо проскочил отчет с конференции, где упоминались KDE и только появившийся GNOME (в забавном ключе «KDE умирает, а тут появился крутой новый концепт, будущее за ним!»).

C++ и всей его болью я тогда был сыт по горло на работе, плюс лицензионный вопрос был тогда еще открыт… В общем, заинтересовался.

А потом обнаружил, что «переключалка» gkb там работает плохо, сделал свою gswitchit (сайт на sf.net жив до сих пор). Потом пользователи сагитировали меня включить мой вариант в базовый набор (я не очень удачно это проделал, обидел разработчика gkb). Ну и пошло-поехало…

МК: Над чем сейчас работаешь?

С.У.: В следующей версии GNOME пользователи смогут выбирать раскладки не только по стране, но и по языку. Это потребовало изменений по всему стеку — начиная с метаинформации в xkeyboard-config. Кроме того, я руковожу проектом Google Summer Of Code, посвященным разработке графического редактора раскладок. Буквально на днях мой студент выдал первый драфт — выглядит прилично. Очень надеюсь, что разработка не остановится в сентябре.

МК: Что нас ждет в GNOME 3.0? Когда мы его увидим? Не повторит ли он судьбу KDE 4.0?

С.У.: Когда? Вроде как было заявлено 2.30=3.0, считайте сами… Что ждет — выброс старого хлама из API, добавление новых возможностей. Очень серьезная заявка — добавление библиотеки Clutter в gtk. Это может привлечь мобильные платформы. Очень надеюсь на уход bonobo и libgnomeui. Мертвый, ненужный код. Как следствие — смена архитектуры панели и апплетов.

Насчет судьбы KDE4 — конечно, риск есть. Но надо помнить, что у GNOME большой опыт эволюционных, постепенных изменений. Правда, эволюционно поменять панель вряд ли получится. Важно, что у GNOME и GTK отношения принципиально теснее, чем у Qt и KDE. Все-таки разработчики GTK давно не позиционируют его как отдельную самодостаточную платформу, а работают в рамках GNOME. Это также поможет избежать повторения сценария KDE4 — который, думаю, не в последнюю очередь всем обязан революционности Qt4. Революция началась в тулките (сознательное решение Trolltech) и привела к еще более серьезной революции в десктопе. «Это не наш метод».

МК: В каких еще проектах ты участвуешь/участвовал?

С.У.: Еще один мой проект, которым я сам постоянно пользуюсь на работе — sql plugin for jedit. В 2000 г. я не нашел удобного кросс-платформенного клиента для множества СУБД. Пришлось сделать свой.

Нужно упомянуть такой интересный проект, как OLPC. Мое участие в нем весьма скромно — но это был любопытный опыт.

МК: Сейчас какая роль у тебя в OLPC?

С.У.: Меня пригласили для работы над эфиопской раскладкой. Любопытная письменнность, даже цифры собственные…

Сейчас просто изредка отвечаю на вопросы, связанные с раскладками. По сути, обычная работа в рамках xkeyboard-config.

МК: Как оцениваешь сам OLPC? Какие пути развития видишь?

С.У.: Проект, на мой взгляд, в каких-то метаниях — в том, что касается софта. Есть очень интересная и необычная, новаторская концепция Sugar. Зачем-то Негропонте решил поддерживать Windows XP — при том, что неизвестно, какой объем работ придется произвести для достижения хотя бы приемлемой скорости работы (ау, Windows ME!). Неизвестно даже, достижима ли эта цель вообще. Я попробовал использовать xubuntu на olpc — совсем не впечатлен скоростью работы, все-таки железо очень небыстрое. С точки зрения аппаратной части — конечно, этот проект «прорывный». Взять хотя бы экран, способный работать в цветном режиме как обычный LCD — и в ч/б режиме, отражая падающий свет. О гуманитарном аспекте проекта я, пожалуй, не буду говорить. Мне симпатичен базовый философский «посыл» этой команды — уничтожение «digital divide». Но я не могу сказать, что однозначно уверен в полезности и эффективности избранного метода. Как показал опыт G1G1, не все в порядке с логистикой и поддержкой. А тут еще флирт с Microsoft…

МК: Откуда такая неприязнь к Microsoft?

С.У.: К явлениям такого масштаба нельзя относиться однозначно. Все-таки этой компании мы во многом обязаны тем миром IT, который видим сейчас — и не только плохим, но и хорошим. В частности, победа открытой платформы PC — во многом заслуга этой компании. Да и технологии, разработанные или введенные в ранг «индустриального стандарта») в Microsoft, с чисто технологической точки зрения очень часто оказываются «на своем месте в свое время».

Теперь о негативном. Так или иначе, это лидер и наиболее успешный представитель компаний, сделавших бизнес на закрытом ПО. Самый отвратительный для меня класс таких компаний — «коробочники» (производители того, что называется shrink-wrapped software — «коробочное ПО», не знаю более удачного перевода). Бизнес по торговле воздухом. ПО, за которое не несут серьезной ответственности (что закреплено в соответствующих EULA). В общем, не буду пересказывать то, что до меня — и значительно удачнее — многократно произнесено Столлманом J. Только напомню, что документ, антитезисом которого можно считать GNU Manifesto, «Открытое Письмо Любителям», был написан молодым Гейтсом в 1976 г.

В контексте OLPC подключение Microsoft к проекту означает продвижение в третий мир закрытой, неэтичной платформы, рассчитанной на выкачивание денег. Запрет на свободное распространение — в странах, где каждый доллар на счету. Разве это не предательство, в каком-то смысле, изначальных целей проекта OLPC?

МК: Почему ты занимаешься именно OpenSource? Это только хобби? Или это приносит деньги?

С.У.: Во-первых, не Open Source, а Free Software. В этом ответ на вопрос — мне очень близка этическая платформа Столлмана, и я считаю неправильным выкидывать ее за борт, как сделали изобретатели концепции Open Source. В смысле процесса разработки (то, что составляет основу Open Source) — я, конечно, привык к нему, он удобен и прозрачен — но, как мы видим в жизни, он не гарантирует качественного результата. Есть качественные закрытые коммерческие продукты, есть откровенно плохие «опенсорцевые» — так что Open Source совсем не является универсальным лекарством для всех проблем процесса разработки. Что действительно важно для меня — это то, что во Free Software заложил Столлман, набор понятий о том, «что такое хорошо и что такое плохо». Для меня это хобби, занимаюсь в свободное время (поэтому — меньше, чем хотел бы).

МК: Стал бы ты работать за деньги на Open Source компанию?

С.У.: Абстрактно — да, конечно. Конкретно — я не очень представляю себе, как это может выглядеть в данный момент. Разве что — удаленная работа, ведь в месте моего проживания нет центров разработки крупных Open Source компаний. Разумеется, это означало бы начать карьеру сначала, в некотором смысле — но ради интересного и стоящего дела почему б не рискнуть?

МК: Как думаешь, какие перспективы у OpenSource и GNOME в частности?

С.У.: Блестящие, это очевидно! О серверной части не буду говорить — там все ясно. Почта и Веб просто не живут без «опенсорцевых» и свободных решений. Идет процесс открытия Java (J2SE открыт, J2EE получил открытую реализацию) — так что и на уровне предприятия в бекенде будет «наш» софт.

Про десктоп. Ниша, созданная Asus EEE PC, устроила прорыв для линуксовых решений. У Microsoft просто нет адекватного ответа (кроме откровенно юмористического варианта XP Starter Edition). Серьезные проблемы для линукса могла бы создать MacOS, начни Apple ее лицензировать (и создай слегка урезанную версию) — но этого мы не видим и можем только радоваться.

Фактически, на десктопе Windows зажаты «снизу» Линуксом (и это уже не мечты, а реальность), «сверху» — MacOS. Конечно, эта «середина» пока еще гораздо больше 50%, но наблюдается важнейший факт — OEM уже не боятся Microsoft, как раньше. Он уже не имеет возможности выкручивать им руки (особенно с учетом провала Vista). Это о линуксовом десктопе «вообще».

А какой именно это будет десктоп… Понятное дело, конкуренция между GNOME и KDE будет продолжаться. Я бы не хотел, чтобы кто-то из этих двух игроков умер. Конкуренция и выбор — это прекрасно, как и то, что в процессе работы будут находиться общие решения и стандартизоваться на уровне freedesktop.org. Это облегчит жизнь независимым производителям программ.

Единственное, на мой взгляд, угрожает линуксовому десктопу, то, что он перестает (или уже перестал) быть «андерграундом». И однажды может перестать привлекать часть «диких хакеров». Пока что у GNOME нет недостатка в независимых разработчиках (хотя, конечно, деньги RedHat/Novell/Sun очень важны). Но если однажды выражения «линуксовый десктоп» и «скучно, обыденно» встретятся — тогда комьюнити быстро умрет. Не хотелось бы.

Впрочем, это вряд ли случится завтра. А пока что у нас есть то, что в английском называется словом momentum («импульс», «толчок»). Мы его используем, в меру сил.

Глоссарий:

GNOME — свободная среда рабочего стола для UNIX-подобных операционных систем.

GNOME — (GNU Network Object Model Environment) — «сетевая объектная среда GNU».

Хkb — расширение протокола X сервера, обеспечивает работу с разными раскладками.

KDE — рабочая среда для рабочих станций UNIX, основная цель которой — «прозрачная» работа в сети.

X.Org — организация, основанная в 1999 году The Open Group и координировавшая разработку X Window System; аналогично называются и разрабатываемые ею продукты.

GKB — переключатель раскладок клавиатуры.

GTK — одна из распространенных библиотек оконных элементов системы X Window.

OLPC (One Laptop per Child) — проект, который занимается разработкой дешевого компьютера для развивающихся стран.

Ричард Мэттью Столлман — основатель движения свободного ПО, проекта GNU, Фонда свободных программ и Лиги за свободу программирования.

Anton Kapinys aka civitano

Robo User
Robo User
Web-droid editor