Настоящий индеец

Автор: Илья Щуров Voyager
Опубликовано в журнале "Компьютерра" №22 от 19 июня 2007 года

"Я был в России в прошлый раз двадцать лет назад в составе туристической группы - в городе, который назывался Ленинградом (в Санкт-Петербурге я не был никогда), - рассказывает Брайен Белендорф (Brian Behlendorf), пока мы ищем тихое - и, главное, прохладное! - место, чтобы поговорить о софте, музыке и женщинах. - Люди в России выглядят сейчас гораздо более счастливыми, чем тогда". Для титула "open source-гуру", которым его часто награждают, Брайен кажется очень молодым. Однако у него быстрая и энергичная речь человека, уверенного в том, что он говорит. Это неудивительно - Брайен
стоял у истоков одного из самых успешных open source-проектов, ему ли не быть уверенным?

Начало Apache

Как вы начали программировать?

- Мои родители познакомились в IBM. Отец был программистом, мама инженером. Мой первый компьютер имел 32К оперативной памяти - я не знаю, были ли такие компьютеры в Европе или в России тогда. На нем стоял интерпретатор Бейсика. Еще в школе я купил самоучитель и начал программировать простые вещи. Если помните, в те времена к книгам по программированию и компьютерным журналам не прилагались дискеты с примерами кода, в них просто печатались листинги. Большая часть моего обучения программированию заключалась в том, чтобы набрать этот код и получить какую-нибудь игрушку или что-то в этом роде.

Впрочем, программирование как таковое никогда не было для Брайена очень увлекательным занятием: "Это было для меня чем-то вроде ведения бухгалтерии, и какое-то время в старшей школе я использовал компьютер только для написания отчетов и решения других простых задач, но не программировал сам". Поступая в знаменитый Университет Беркли, чтобы изучать физику, он не собирался связывать свою жизнь с информационными технологиями и computer science. Но похоже, наследственность дала себя знать: Брайен столкнулся с Интернетом, который как раз превращался из экспериментального проекта в ключевой элемент информационных технологий. Физике пришлось подождать: юноша бросил университет ради того, чтобы строить зарождающийся веб.

Как вы учились? По книжкам?

- Как я говорил, Бейсик я изучал по книжкам и журналам. Когда стал знакомиться с Интернетом, параллельно знакомился с Unix. А для освоения Unix нужно знать только одну великую команду…

Man? (Вызов справки по любой другой команде в Unix-системах. - И.Щ.)

- Точно! Зная эту команду, вы можете изучить все. Это не очень просто, но довольно интересно: что-то вроде игры. У нас в Беркли были кое-какие курсы по computer science - нам рассказывали о компиляторах, учили программировать на C и Lisp (я ненавидел Lisp), но самые полезные для себя знания я получил самостоятельно.

В своем докладе на конференции Open Source Forum Брайен рассказывал, как появился Apache. С самого начала это был децентрализованный проект без единого лидера. Собственно, поначалу и проекта-то не было: были несколько человек, пытавшихся приспособить для своих нужд один из первых веб-серверов, разработанных в NCSA (National Center for Supercomputing Applications). В компании Organic в 1995 году Брайен занимался разработкой сайта HotWired - первого коммерческого интернет-журнала. "Я использовал свободный сервер, написанный не мной, и вносил в него улучшения. Я мог бы сохранить их для себя, но отдать их другим мне ничего не стоило, - вспоминает Брайен. - Я никогда не был блестящим программистом, и мне нужна была обратная связь: чтобы другие люди сказали, все ли правильно я делаю". Исходная кодовая база никем не поддерживалась, и наработки Брайена и его "товарищей по несчастью" так и оставались "заплатками" (патчами) к неизменному исходному коду. Однако работать с ними было не очень удобно, и вскоре было принято решение о создании "форка" со старой кодовой базы - нового проекта, который бы включил в себя улучшения, разработанные небольшим сообществом.

Кто владеет Интернетом?

Вы чувствовали, что создаете вещь, которая изменит мир?
Кстати

Одна из версий происхождения названия Apache гласит, что это игра слов от "A Patchy Server" (то есть "патченный сервер").

- В основном нет. Мы создавали первый вебсайт для публикаций. Нам нужно было впервые поместить на сайте рекламу - так что можете винить меня в появлении баннеров. Но не во всплывающих окнах - к ним я не имею никакого отношения! (смеется). Все это было значительно более интересным, нежели разработка. Написание Apache просто стало инструментом, - и хорошо, что были другие люди, со своими целями, желающие помочь. Мы просто могли работать вместе.

Впрочем, меня волновал еще один вопрос: "Кто будет управлять вебом в дальнейшем?" Когда я впервые познакомился с Интернетом, меня поразило, насколько он децентрализован. Кому принадлежит Интернет? Никому! Я был ошарашен тем, как это может быть. Тогда было много людей, веривших в обмен идеями и технологиями ради всеобщего благополучия, а не ради экономического успеха одной компании. Я задавался вопросом: как сделать, чтобы Интернет не стал собственностью Netscape или Microsoft? Так что был в этом элемент идеализма. И, наверное, зависти тоже - если бы я был Биллом Гейтсом, я бы, наверное, хотел, чтобы Интернет был моей собственностью.

Разработчики свободного софта, которые хотят, чтобы их код оставался свободным, обычно выпускают его под GPL или другой копилефтной лицензией. Однако Apache License некопилефтная: кто угодно может создать на его основе проприетарный, закрытый веб-сервер. Парадоксальным образом авторы Apache решили, что именно это позволит защитить веб от захвата какой-то компанией. "Мы хотели, чтобы нашим сервером пользовалось как можно больше людей и чтобы ни у кого не было причины им не пользоваться. Чем больше пользователей, тем больше разработчиков, - объясняет Брайен. - GPL могла отпугнуть пользователей: кто-то мог интерпретировать ее неверно - например, решить, что лицензия требует распространения исходных кодов всех cgi-скриптов и не подходит для работы коммерческого сайта".

Но была опасность, что какая-нибудь фирма (та же Microsoft, например) возьмет код Apache и сделает проприетарную программу…

- Вы считаете это опасностью, а я считаю, что это было бы даже хорошо. Во-первых, если бы они исправили ошибку в сервере, то скорее всего не стали бы хранить исправление только для себя. Потому что иначе, когда мы обновим Apache, им придется обновлять свое исправление. Во-вторых, Apache является корректной реализацией протокола HTTP и предоставляет все возможности, которые может и должен предоставлять веб-сервер. Если в Microsoft стали бы его использовать, то не смогли бы утверждать, что протокол HTTP слишком сложен для реализации. Такая ситуация была с языком HTML - когда Microsoft и Netscape реализовали только часть стандарта, а какие-то возможности реализовали по-разному, несовместимым образом. Мы считали, что самый лучший способ противодействовать желанию компаний создавать несовместимые вещи - сделать образцовую реализацию (reference implementation) протокола, причем достаточно хорошего качества, чтобы его могла использовать та же Microsoft. Мы считаем, что нам это удалось.

Прошлое и будущее

Кстати

Одно из нововведений в GPLv3 — совместимость с Apache Licen-se. Авторы GPLv3-софта смогут свободно использовать код Apache и его сателлитов.

За прошедшие тринадцать лет Apache прошел немаленький путь. От небольшого неофициального проекта до Apache Software Foundation. Сообщество выросло от восьми человек до более чем тысячи. Что изменилось за это время в процессе разработки?

Брайен на секунду задумывается. Потом начинает перечислять:

- Люди чаще используют IRC и чаще встречаются лично. Отчасти это связано с тем, что мы регулярно проводим конференцию разработчиков ApacheCon. Мы также делаем такую штуку - называется hackathon. Обычно на выходных перед конференцией собираем народ вместе в одной комнате без всякой повестки дня - люди просто находят тех, с кем хочется работать, садятся и начинают писать код. Это положительно влияет на продуктивность.

Участие в Apache сейчас - хорошая запись в вашем резюме. Люди приходят к нам в том числе из-за этого.

Мы сейчас больше времени тратим на обсуждение политических вопросов. Например, была большая дискуссия во внутреннем списке сообщества о роли женщины в open source. Это действительно очень важная тема - женщин в open source недостаточно, недостаточно женщин-разработчиков. Впрочем, одни этим очень расстроены, другим это не важно. Должны ли мы - Apache Software Foundation - изменить ситуацию? Должны ли создавать специальные места, чтобы женщины могли участвовать в работе над Apache, должна ли быть соответствующая тема на конференции? Так что мы больше времени обсуждаем подобные вопросы - хотя возможно, потому, что наша организация стала более взрослой.

А вы сейчас участвуете в жизни сообщества? Пишете код?

- Я просматриваю патчи других людей - больше времени провожу над разработкой Subversion (система контроля версий, наследница CVS. - И.Щ.), нежели Apache. Хотя еще больше я путешествую и выступаю на разных мероприятиях. Я обнаружил, что говорю лучше, чем пишу код, - так что принесу больше пользы миру, привлекая новых разработчиков и пользователей open source. Недавно я был в Южной Африке, беседовал с государственными представителями, летал в Румынию, в следующем месяце буду в Китае и Шри-Ланке…

Не просто быть хорошим пользователем open source. Нужно как минимум знать английский язык…

- Да, английский язык очень зависим от контекста, иногда даже от тона голоса, и одно и то же предложение может быть прочитано мною и вами очень по-разному. Я могу воспринимать его иронично, а вы можете быть разозлены. Это приводит к спорам, которые отнимают много сил и времени. Личное обсуждение было бы гораздо более приятным. Знание английского действительно очень важно в open source-сообществе. Возможно, на самом деле это не очень хорошо. Я думаю, что хорошие разработчики, для которых английский является родным, понимают, что им нужно писать для международной аудитории. Вероятно, все также постепенно учатся тому, что, когда читаешь электронную почту, нужно предполагать как можно более благоприятную интерпретацию, потому что лучше ошибиться в положительную сторону, чем в отрицательную.

Для создания open source-экосистем в странах типа России нужно еще много потрудиться. Я считаю, что люди могут участвовать в нашем деле, даже если они говорят только на русском, если они сфокусируются на внутреннем рынке. Помимо предоставления поддержки, написания документации, возможны и другие формы участия. Например, русскоговорящий пользователь находит ошибку и сообщает об этом русскоговорящему разработчику. Если это низкоуровневая ошибка, нужно провести определенную работу, чтобы понять, в чем именно она заключается. После этого русскоговорящий разработчик может передать эту информацию другому разработчику, знающему русский и английский, и они могут исправить ошибку. Мы должны развивать федеративную модель сообщества. Такая модель уже действует в проекте Gnome.

К тому же нужно образовывать локальные сообщества. Организовывать списки рассылки, а кроме того, регулярно собираться вместе, обучать друг друга. Так делается в Штатах и в Европе, и действительно помогает. Люди собираются выпить пива вместе, а не только существуют в онлайне.

А что можно сказать про эволюцию глобального сообщества open source за последнее время?

- Открытый софт чаще используется, все больше внедряется в корпорациях. Вы сейчас можете прийти в любую компанию и сказать: "У меня есть программа, которая решит ваши проблемы. Да, и, кстати, она открытая". В большинстве случаев это принимается хорошо. Только не надо говорить: "У меня есть замечательная открытая программа. И, кстати, она решит вашу проблему". Отталкиваться нужно от решения.

Многие компании открывают свои разработки. Посмотрите на Nokia - это была одна из самых проприетарных компаний, даже в большей степени проприетарная, чем Microsoft. Они стремилась закрыть свои платформы как только возможно. Сейчас они продают Linux-таблетки, - Брайен кивает на лежащую передо мной Nokia N770. - И это здорово! Компании начинают "открываться опен сорсу".

Музыка в исходниках

Кстати

Для принятия решений в проектах Apache обычно достаточно найти троих участников, которые его поддержат - при условии, что нет возражений. Такой подход называется "ленивым консенсусом".

Ноутбук Брайена обклеен стикерами: Creative Commons, Magnatune (интернет-магазин, торгующий музыкой без DRM-защиты), логотипы некоторых музыкальных групп. Я знал, что Брайен участвовал в создании некоторых музыкальных сайтов и занимался техническим обеспечением ряда мероприятий, связанных с электронной музыкой.

Правильно ли я понимаю, что вы вовлечены также в движение свободной культуры?

- "Вовлечен" - не совсем верное слово. Лучше сказать, что я фанат свободной музыки. Я не разместил ни одного микса под CC, потому что не смог собрать достаточно CC-лицензированных произведений, чтобы создать микс. Я этого вам не говорил (смеется): у меня есть некоторые миксы в онлайне, но они созданы из несвободной музыки. Я должен как-нибудь сделать полностью лицензионно-чистый микс.

А есть какая-то связь между вашей околомузыкальной деятельностью и open source?

- В 1992 году мы организовали вечеринку на пляже - почти в стиле open source. Мы бросили клич: "Кто может принести звуковую систему? Кто может принести свет?" Все было сделано добровольцами, я координировал процесс и следил, чтобы везде эти добровольцы были. По сути, без всякого бюджета мы организовали вечеринку на шестьсот человек.

Хотя, конечно, между музыкой и софтом есть существенные различия. Программы используются для поддержки производства, у них есть определенная функциональность, которая постоянно улучшается. У музыки нет никакой практической цели - большая ее часть существует для личного удовольствия. К тому же вокруг музыки нет тех систем, которые есть вокруг софта. Здесь нельзя взять какое-то произведение и постепенно его улучшать, выпускать версии 2.1, 2.2, обмениваться патчами и т. д. Хотя есть методы создания новых произведений на основе существующих - ремиксинг. Но это не основной источник музыки на улицах.

Однако я знаю множество диджеев, которые занимаются своим делом не ради денег, а из желания поделиться музыкой. Может быть, в этом тоже есть что-то от open source.

Основание и империя

Некоммерческая организация Apache Software Foundation (ASF) была образована в 1999 году. Целей было несколько. Во-первых, к свободному веб-серверу, владеющему на тот момент 60% рынка, стали проявлять внимание крупные корпорации — в частности IBM и Sun. Вместе с тем пришла и опасность попасть в зависимость от какой-то одной компании, а разработчики Apache хотели сохранить сообщество таким, каким оно появилось: децентрализованным и меритократичным, в котором решения принимаются на основе обсуждения технических вопросов и поиска консенсуса, а не частного коммерческого интереса. К тому же требовалось обеспечить правовую защиту разработчиков на случай претензий третьих лиц. Решением стало создание нейтральной площадки, не зависящей напрямую ни от каких корпораций, не контролирующей финансовые потоки и даже не имеющей собственного оплачиваемого персонала. Активные разработчики Apache, являющиеся членами ASF, зачастую работают на самые разные корпорации, но выступают всегда от своего лица, а не от лица работодателя. Решения в проектах ASF принимаются по принципам консесуса — здесь нет «центральной власти», в отличие от многих других open source-проектов (например, ядра Linux, где Линус Торвальдс и те люди, которым он доверяет, принимают окончательные решения). Главной задачей ASF остается создание и поддержка здоровых сообществ для работы над проектами вокруг Apache: в настоящий момент таких проектов аж 26, над ними работают 1100 участников с правами записи в дерево исходников (commit access). Помимо всего прочего, ASF занимается «просвещением» программистов в области авторского и патентного права и проводит регулярную конференцию ApacheCon, где собираются разработчики Apache и смежных проектов со всего света.



Редакция благодарит организаторов Interop Moscow 2007 за помощь в организации интервью и предоставленные фотографии.


<<Все образуется. Или не все?
Все материалы номера
Кризис жанра >>