Ян из Sun
АрхивВ один прекрасный день отец Яна Мёрдока сменил свою пишущую машинку на компьютер Apple II, который захватил воображение будущего основателя легендарного Linux-дистрибутива.
В один прекрасный день отец Яна Мёрдока сменил свою пишущую машинку на компьютер Apple II, который захватил воображение будущего основателя легендарного Linux-дистрибутива. Увлечение компьютерными играми прошло вместе с детством, уступив место программированию. Так все и началось. Ныне г-н Мёрдок - вице-президент подразделения Developer and Community Marketing компании Sun Microsystems. Сейчас, в 2008 году он занимается во многом тем же, чем занимался пятнадцать лет назад, - изменением мира. Мы встретились с ним на конференции Sun Tech Days, проходившей в Санкт-Петербурге, чтобы обсудить успешные и неудачные проекты, настоящее и будущее Linux и Solaris и сообщества free/open source software (FOSS) в целом.
Debian и все-все-все
Иногда кажется, что окружающие нас вещи всегда были такими, какими мы привыкли видеть их сегодня, - и всегда такими и останутся. Теоретически все мы знаем, что иногда случаются революции - но происходят они слишком редко, чтобы быть осязаемой правдой. А когда наконец что-то меняется, мы воспринимаем изменение с задержкой - и как уже свершившийся факт.
Как устроен Linux-дистрибутив, сегодня представляют себе не только небритые линуксоиды с красными глазами, но и многие "нормальные люди", - хотя бы в общих чертах. Такие термины, как менеджер пакетов, репозитарий или RPM, не кажутся совсем уж черной магией, а вручную бороться с разрешением зависимостей приходится в основном экстремалам, собирающим "Linux From Scratch". Но это не значит, что так было всегда. Когда-то дистрибутивов в современном понимании этого слова не было вообще. Linux уже придумали, а дистрибутивы - еще нет.
Речь идет о 1992–93-м годах. Было бы преувеличением сказать, что революция произошла из-за письма, отправленного 16 августа 1993 года двадцатилетним студентом университета Purdue Яном Мёрдоком в ньюсгруппу comp.os.linux.development, в котором он сообщал о начале проекта Debian. Конечно, это был не первый дистрибутив Linux (хотя слово это еще не было распространено, и в своем сообщении Мёрдок называет свой проект "Debian Linux Release"). В то время была распространена Softland Linux System (SLS) - одна из первых Linux-систем, включавшая в себя не только ядро и несколько базовых утилит проекта GNU (именно в таком минималистичном составе тогда распространялся Linux, занимая лишь пару дискет), но и другие важные для работы модули (в том числе графическую подсистему X).
Однако SLS был очень далек от современных дистрибутивов и обладал множеством недостатков. Созданный с нуля Debian оказался прорывом - не только с технологической точки зрения (введя такие революционные возможности, как установка и настройка ОС с помощью системы меню и интеллектуальную систему управления пакетами, позволяющую обновить всю систему одной командой), но и с социальной. Обнаружив, что не в состоянии достигнуть своих целей в одиночку, Ян Мёрдок предложил всем желающим участвовать в разработке. Несмотря на то что ядро Linux уже разрабатывалось в распределенной модели, для ОС целиком это казалось почти невозможным. "Как могут люди из разных частей света, разговаривающие на разных языках, безо всякого "генерального плана", без оплаты создать столь сложную штуку, как операционная система?" - писал Мёрдок в 2003 году, вспоминая события десятилетней давности. Оказалось: могут. И еще как!
Debian оказался революционным примером работы децентрализованного некоммерческого сообщества добровольцев, со своей "конституцией" (social contract), своими "законами" (policy) и своей системой принятия решений - максимально открытой и демократичной. Впрочем, демократии, по мнению Мёрдока, в проекте с самого начала было слишком много. Отсутствие "власти лидера", который может поставить точку в любом споре или принять непопулярное, но необходимое решение, может привести к стагнации проекта из-за внутренних противоречий.
- Обсуждения и поиск консенсуса - это хорошо, когда у вас есть небольшое "ядро" разработчиков. - Говорит Мёрдок. - Например, этот метод работает в Apache Foundation. Но он очень плохо масштабируется. Скажем, если вы управляете компанией в десять человек, то можете себе позволить неформальное принятие решений за кружкой пива. Но если сотрудников сотни (а в Debian сейчас больше тысячи разработчиков), вам понадобятся лидеры, менеджеры и т. д. В open source все то же самое - чтобы в проекте что-то реально делалось, нужен сильный лидер.
Ян часто сравнивает управление сообществом добровольцев и коммерческой компанией - и полагает, что между этими двумя видами деятельности много общего, несмотря на разницу в подходах и целях.
- Ключевой вопрос в обоих случаях - это мотивировать людей следовать за вами. В случае коммерческой компании это несколько проще - вы можете мотивировать людей с помощью денег. В случае сообщества - особенно в случае некоммерческого проекта типа Debian, основанного на работе добровольцев, - вам нужно проявить творческий подход, чтобы увлечь людей за собой.
Одним из способов добиться этого, по мнению Мёрдока, - дать людям почувствовать себя частью чего-то большего, превосходящего возможности отдельного человека. Впрочем, даже когда эта задача решена, в сообществе может возникнуть множество других проблем. Мёрдок рассказывает про недавнюю инициативу DuncTank (мы писали о ней в "КТ" #657):
- У Debian всегда были трудности с соблюдением сроков выхода релизов. Лидеры проекта приняли решение собрать некоторые деньги и нанять людей для управления процессом выпуска очередной версии. Но это не помогло и вызвало недовольство многих участников, которые всегда работали бесплатно. Конечно, этого следовало ожидать, ведь мы вводим деньги в сообщество, которое их никогда не видело, - хотя наблюдать за этим было интересно.
Впрочем, это не значит, что финансировать работу свободного сообщества вообще невозможно - но делать это нужно очень аккуратно.
- Мы когда-то делали один продукт, основанный на Debian, и наняли нескольких разработчиков, чтобы они участвовали в деятельности Debian-сообщества. Такого противостояния, как против DuncTank, это не вызвало, скорее наоборот. Вообще, open source стремится быть меритократией (власть достойных) - люди, делающие большую часть работы, имеют наибольшее влияние. И только так можно повлиять на процесс разработки: инвестируя, вкладывая свой код, участвуя в жизни сообщества. Например, в Sun мы нанимаем огромное количество людей, работающих над OpenSolaris.
Open Solaris и все-все-все
Кстати, о компании Sun. Конечно, трудно было найти более подходящего человека для популяризации OpenSolaris, чем Ян Мёрдок. Задачи, стоящие перед ним сегодня, не сильно изменились со времен Debian: ему нужно создать сильное, здоровое сообщество. Чтобы достичь этой цели, необходимо сделать систему более простой в установке и работе - в точности то, что требовалось Linux в 1993 году, чтобы стать мэйнстримом.
- Когда я пришел в компанию Sun год назад, я должен был окинуть взглядом Solaris и меняющуюся индустрию и понять, как мы можем сделать свою систему более привлекательной для быстро меняющейся аудитории. Стало ясно, что для динамичного развития нам нужна модульная архитектура, система управления пакетами, утилиты GNU, привычная графическая среда - в общем, требовалось сделать так, чтобы любой Linux-администратор мог работать под OpenSolaris.
Созданием такой системы и занимается Мёрдок в рамках проекта Indiana. Его цель - привнести в Solaris тот опыт, который дал миру Linux, - превратив операционную систему из монолитного образования в удобное средство доставки пользователю тех возможностей, которые ему нужны.
Solaris есть чем похвастаться. На Sun Tech Days много говорилось об уникальных возможностях этой ОС - таких, как файловая система ZFS, позволяющая делать мгновенные "слепки" с содержимого диска и возвращаться к ним в случае необходимости, или инструментарий отладки приложений D-Trace, с помощью которого можно исследовать программу буквально под микроскопом, - поэтому вопроса о том, зачем нам нужен OpenSolaris, когда есть GNU/Linux, у меня лично не возникало. Правда, возник другой вопрос: не проще ли дать возможность разработчикам ядра Linux заимствовать уникальные разработки OpenSolaris и полностью перейти на него? Ну а если это кажется неоправданной филантропией, то хотя бы взять любой GNU/Linux-дистрибутив (тот же Debian), выкинуть из него ядро Linux и заменить его ядром OpenSolaris, получив тем самым все "плюшки" почти бесплатно. (Этим занимается проект Nexenta.) Впрочем, дела обстоят не так просто, как кажется:
- Solaris был сердцем многих дата-центров на протяжении двадцати лет, он проверен временем, в Sun над ним работает более пяти тысяч инженеров, - рассказывает Мёрдок. - Одним из преимуществ нашей системы во все времена была совместимость: вы можете взять бинарный файл, скомпилированный в 1995 году на Solaris 2.5.1, и запустить его сейчас под Solaris 10. Наши пользователи ценят это. Поэтому мы не можем идти путем Nexenta - резкий переход с Solaris на Linux-дистрибутив с ядром OpenSolaris нашим клиентам просто не подходит. Мы стараемся следовать скорее эволюционным путем - начинаем с Solaris и добавляем те части из Linux-сообщества, которые наиболее востребованы нашими пользователями.
Говоря о перспективах OpenSolaris, Ян отметил, что десктопный сегмент рынка, очевидно, не является приоритетом номер 1 для Sun - но это очень хорошая возможная точка приложения усилий сообщества.
LSB, Progeny и все-все-все
Debian и OpenSolaris, конечно, не единственные проекты в жизни Яна Мёрдока. Из других известных инициатив можно отметить работу над Linux Standard Base (LSB), призванной "унифицировать" все многообразие дистрибутивов GNU/Linux с тем, чтобы разработчикам приложений не приходилось выпускать множество сборок. Несмотря на любовь FOSS-сообщества к различным стандартам, критиков LSB хватает: люди говорят, что операционная система и прикладное ПО слишком быстро развиваются и слишком сильно зависят друг от друга, чтобы любой (неизбежно устаревающий по мере выхода) стандарт имел хоть какой-то смысл. Ян частично соглашается с критиками.
- Действительно, стандартизировать такую быстро эволюционирующую вещь очень трудно. Вообще, эта работа отражает разницу между стандартами "старого типа" (такими, как POSIX), фиксирующими некоторые интерфейсы, которые затем реализуются в приложениях, - и новым процессом стандартизации, при котором стандарты задаются реализациями. Сейчас очень часто open source-реализации различных спецификаций, протоколов, интерфейсов фактически становятся стандартами просто в силу своей популярности. Мне кажется, что реальная проблема современного мира, в котором появляются подобные стандарты "де-факто", в том, что стандарты часто принадлежат отдельным компаниям и могут давать им существенное конкурентное преимущество. Такие проекты, как LSB, очень важны, поскольку поддерживают значение стандартов для индустрии. Однако это очень сложный процесс.
Еще один известный проект Мёрдока - компания Progeny, выпускавшая основанный на Debian дистрибутив под названием Progeny Componentized Linux. Она прекратила свою деятельность в мае 2007 года - и выглядело это скорее как провал.
- В каком-то смысле это действительно был провал - мы не достигли тех целей, которых хотели достигнуть, - признается Ян. - С другой стороны, это был в каком-то смысле успех - мы были прибыльной компанией, могли платить зарплату нашим сотрудникам на протяжении нескольких лет и делали интересные вещи. Так что все зависит от того, как мерить успех. Делать интересные вещи - это одно, менять мир - совсем другое.
Рассуждая о причинах относительной неудачи своей компании, Ян замечает, что она опередила свое время:
- Мы заметили, что Debian используется в качестве базы для создания различных продуктов. Мы хотели создать инструментарий, который позволил бы компаниям делать это легко и просто. Но тогда было непросто с финансами - мы долгое время пытались зарабатывать деньги, нанимать людей, работающих над технологиями, над маркетингом. В общем, наложилось несколько факторов. Хотя я думаю, что у Progeny были действительно интересные идеи, и, возможно, я их еще реализую - здесь, работая в Sun. Это тоже будет успех.
Open Source и все-все-все
Обсуждая проблемы и достижения FOSS-сообщества, мы не могли обойти стороной внутренние противоречия: вечный спор между "этиками", считающими, вслед за Ричардом Столлманом[Каюсь! Я до сих пор ничего не написал о визите Столлмана в Москву. Обещаю исправиться.], что свобода ПО ценна сама по себе, и прагматиками, полагающими, что открытые исходники и свободные лицензии - просто более удобный и приятный способ разработки качественного и надежного софта. Проект Debian, как мне казалось, тяготел к "этической" части (достаточно вспомнить его "общественный договор"), однако взгляды Мёрдока оказались несколько иными.
- Я никогда не верил в этическую часть всей этой деятельности. Я вижу, что open source - просто лучшая модель разработки, лучший способ создания сообщества. Это что-то вроде капитализма. Люди участвуют в сообществах по разным причинам. Для кого-то это форма благотворительности, желание подарить что-то миру. Другие ищут выгоды для себя. Может быть, они наслаждаются тем, что делают, и хотят заниматься этим больше, или же хотят показать, что они умеют, или хотят найти работу - в общем, существует множество причин, по которым люди участвуют в сообществах вокруг открытых проектов. Я не могу сказать, что какая-то причина - правильная, а какая-то другая - нет.
Стараясь держаться вдалеке от "политически-заряженных" дискуссий в области технологий, Мёрдок активно интересуется политикой реального мира. Я спросил его о том, какой опыт в управлении свободными проектами мы могли бы перенести на управление целыми странами:
- О! Когда дело касается государственной власти, я начинаю верить в демократию! - смеется Ян. - Скажем, американская система имеет множество недостатков, но в целом она работает. Одна из главных проблем, которые я вижу, - это двухпартийная система. Мы вынуждены выбирать между двумя экстремальными точками политического спектра, тогда как в реальности нам нужно что-то посередине. Насчет open source - мне кажется, некоторый опыт уже заимствуется. На выборах организуются кампании в стиле open source, где очень много стихийной активности - люди могут говорить о своей позиции, общаться друг с другом, обмениваться мнениями. Я не уверен насчет самого процесса управления, но включение в процесс выбора, являющегося ключевым в демократии, обычных людей и предоставление им права самовыражения и общения друг с другом помогает принять лучшие решения для всей страны.
Впрочем, в open source есть не только хорошее. На вопрос о том, что ему больше всего не нравится в FOSS-сообществе, Ян ответил мгновенно.
- Священные войны (flamewars). Технология - это религия. Люди становятся слишком замкнутыми в своих решениях, и это тормозит прогресс. У нас - инженеров - очень твердые мнения. Emacs - лучший текстовый редактор! Нет, Vi самый лучший! Во времена Usenet было несколько тысяч людей, спорящих друг с другом, а сейчас их число выросло до миллиона - и это становится большой проблемой. Я бы хотел, чтобы мы были более открытыми - и, пожалуй, чуть менее циничными, - когда говорим об открытом софте.
Солнечные технические дни
Начало апреля в Санкт-Петербурге выдалось солнечным - было даже немного обидно проводить эти дни во дворце спорта "Юбилейный", где шла конференция Sun Tech Days. Однако, несмотря на манящую погоду за окном и специализированный характер Tech Days, посмотреть на это мероприятие оказалось довольно любопытно.
Конференция проходит очень неформально. Правда, мне не доводилось бывать на подобных мероприятиях в Штатах - может, там это и привычное явление, но на отечественных технических сборищах нечасто увидишь конкурсы самодеятельности (добровольцы из зала показывали на сцене фокусы, пели и даже танцевали "калинку-малинку") или скандирование названия конференции для поднятия "боевого духа". Впрочем, нарочито-раскованные отношения с аудиторией напрягали не сильно и разговорам о серьезных вещах практически не мешали.
Запомнился доклад о проекте Sun SPOT (Small Programmable Object Technologies) - экспериментальной платформе для создания небольших устройств (размером с мобильный телефон или даже меньше), способных долговременно питаться от батарей и поддерживать беспроводную связь, - их можно использовать, например, в качестве сенсоров в "умных зданиях" или как угодно еще. Интересен "выбор операционной системы": она отсутствует. Вместо нее есть специальная виртуальная машина Java (Squawk), работающая на голом железе. По задумке Sun, это должно значительно упростить написание приложений для встраиваемых устройств - разработчику не нужно знать никаких премудростей этого дела - только привычную многим Java ME. Стоит отметить, что открыта не только вся софтверная начинка, но и спецификации железа. Экспериментируй сколько душе угодно. Целевая аудитория - исследователи и разработчики.
Впрочем, не Джавой единой - немало времени было посвящено и другим технологиям. Целая секция была выделена для "Веб 2.0" - здесь Sun’овское сообщество тоже очень активно - например, занимается разработкой различных открытых фреймворков для быстрого создания веб-приложений и машапов существующих сервисов. Помимо вездесущей Java, со сцены звучали и такие названия, как PHP, Python, JavaScript, Ruby on Rails. Моему невооруженному глазу интересной показалась разработка JRuby, позволяющая скрестить "ужа с ежом" - использовать синтаксис и все богатые выразительные возможности языка Ruby при работе в полноценной Java-среде.
Напоследок - занятный эпизод. Рассказывая про один из веб-фреймворков, очаровательная Дорис Чен (на фото) спросила, кто в аудитории работает с PHP. Стоя вплотную к сцене, чтобы сделать несколько снимков, я гордо поднял руку (мне и правда приходилось писать несложные PHP-скрипты). Дорис заметила это и радостно сообщила залу: "О! И даже этот фотограф использует PHP!" Я почти не обиделся. Честно-честно.