Архивы: по дате | по разделам | по авторам

Apache и "Русский Apache". Попытка анализа успеха проектов

Архив
автор : Алексей Тутубалин   11.12.2001

Статья подготовлена на основе тезисов, представленных на рабочей встрече "Свободное программное обеспечение: бизнес-модели и корпоративные инициативы", проведенной 28 ноября Государственным университетом "Высшая школа экономики" и ИД "Компьютерра" при спонсорской поддержке компаний IBM и Sun Microsystems.

Статья подготовлена на основе тезисов, представленных на рабочей встрече «Свободное программное обеспечение: бизнес-модели и корпоративные инициативы», проведенной 28 ноября Государственным университетом «Высшая школа экономики» и издательским домом «Компьютерра» при спонсорской поддержке компаний IBM (www.ibm.com) и Sun Microsystems (www.sun.com).

На сегодняшний день Apache поддерживает функциональность приблизительно девятнадцати миллионов WWW-серверов (по данным Netcraft), большая чаcть из которых работает под различными клонами Unix, включая свободные 1.

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

Причины успеха Apache можно разделить на две группы: технологические причины, связанные с техническими преимуществами перед конкурентами, и нетехнологические.

Технологические причины успеха Apache

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

Возможность легкого расширения обусловила появление большого количества производных от Apache серверов - Stronghold, Apache/SSL, разнообразных систем создания динамических сайтов (Apache/mod_perl, PHP и др.), удовлетворяющих большинство потребностей Web-разработчиков по сегодняшний день.

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

Открытость процесса разработки. Процесс разработки Apache открыт для наблюдения и комментирования всем желающим и потому предсказуем. Это позволяет выпускать дополнительные модули к новым версиям практически одновременно с их выходом.

Нетехнологические причины

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

Очевидно, что эта схема не может быть применена в произвольном проекте, так как требует разумности от всех разработчиков группы, что достижимо далеко не всегда.

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

Лицензирование. Существенной причиной успеха Apache является действительно свободное лицензирование. Apache License, в отличие от наиболее распространенной в среде ПО с открытыми исходниками лицензии GNU GPL, не навязывает свободное распространение производных работ, а требует лишь сохранения права на имя - указания, что производный проект использует код, разработанный Apache Group. При такой схеме лицензирования коммерческие компании охотнее вкладывают свои ресурсы в развитие продукта, примером может служить участие IBM в разработке Apache 2.0 и перенос Apache на платформу Windows.

Все перечисленные причины успеха Apache являются существенными, отсутствие любой из них заметно ухудшило бы продукт в глазах части либо всех пользователей.

Русский Apache. История и нескромный анализ причин успеха

История. Одновременно с появлением в Рунете WWW-серверов с информацией на русском языке возникла проблема правильной поддержки кириллицы - в России используется множество кодовых таблиц для русского языка. «Единственно правильной» методики поддержки кириллицы не существовало, выдвигались достаточно самобытные идеи, авторам которых приходилось создавать свои варианты серверного и даже клиентского ПО.

К началу 1996 года достигнуть консенсуса разработчиков, администраторов и пользователей не удалось, при этом даже не существовало стандартов, описывающих правильную поддержку неевропейских алфавитов в http/WWW.

В том же 1996 году Дмитрий Крюков, автор первых версий поисковой машины Рамблера и Rambler’s Top100, разработал «Русский Apache», поддерживающий несколько кодировок кириллицы для сервера Apache. Решение Крюкова было самым качественным из имеющихся - клиенты могли читать документы в удобной для них кодировке, не модифицируя свое ПО. Большинство модулей Apache корректно работало с русским языком.

К началу 1997 года Крюков увлекся разработкой Rambler’s Top100, времени на поддержку «Русского Apache» у него не осталось, и в феврале 1997 года проект был передан автору этой статьи.

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

Существенная причина успеха «Русского Apache», несомненно, - успех Apache (более того, по данным Netcraft популярность Apache в домене .ru составляла на май 2001 года около 85% - много больше, чем в среднем в мире). С другой стороны, доля «Русского Apache» «на рынке» - около 50%, при этом поддержка множества кодировок последние полтора-два года не является необходимой - подавляющая часть клиентского ПО поддерживает кодировку MS Windows cp1251.

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

Технологические причины

Технологическое лидерство. Обладая всеми преимуществами исходного Apache, русская версия добавляет прозрачную поддержку любого количества кодовых страниц для одного языка. В отличие от конкурентных решений, динамические документы могут собираться из источников в разных кодовых таблицах, что позволяет строить сложные WWW-сайты в гетерогенном окружении. Эти свойства покрывают потребности подавляющего числа пользователей, единственным серьезным упущением является отсутствие поддержки многоязыковых серверов с несколькими кодовыми страницами для каждого языка.

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

Нетехнологические причины

Открытость разработки. Найти постоянных желающих участвовать в разработке «Русского Apache» не удалось. Часть работы удается «свалить» на волонтеров, в основном они делают скомпилированные версии под различные операционные системы. Однако привлечь к обсуждению проекта и связанных с ним проблем удалось достаточно много людей, в настоящее время рассылки читают около тысячи человек, преимущественно WWW- и UNIX-разработчики.

Поддержка силами сообщества WWW-разработчиков. Сообщество подписчиков рассылок успешно справляется как с задачей поддержки «Русского Apache», так и WWW-разработки вообще; по всей видимости, рассылки (и их архив) - лучший источник знаний о WWW-разработке в Рунете.

[i42446]


1 (обратно к тексту) - С точными цифрами по России есть проблема. Есть данные от Netcraft на 1997-й и 2001-й годы, есть подробные данные, полученные автором в проекте Ru-Survey в 1998-99 годах, но они не независимы. Самую свежую цифру приводит проект Netstat: «доля рынка» Apache в России на осень 2001 года составляет 79%.
© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.