Публикации Проводник Хаоса Весна IT

Как сделать популярный дистрибутив

Андрей Орлов  2008-11-13 22:02

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

Как сделать самый популярный дистрибутив линукс

Как сделать самый популярный дистрибутив линукс

Уже почти два десятка лет тысячи разработчиков во всем мире пытаются сделать самый популярный дистрибутив. Они объединяются в различные сообщества, что приводит к некоторому успеху (Red Hat, SUSE, Mandrake, Debian, Ubuntu), но список недостатков дистрибутивов, остается стабилен: недостатки всем известны, но - не устраняются.

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

Видя все это, я прихожу к выводу, что причина непопулярности свободного программного обеспечения лежат не в отсутствии возможностей (подавляющее большинство из них решаются грамотными разработчиками за считанные дни), а в каких-то системных противоречиях. Поэтому стратегия развития должна основываться не на сиюминутной реализации недостающих возможностей, а в изменении самого подхода к разработке. Именно поэтому я не стану писать очередной список "ЧЕГО НЕТ В СВОБОДНОМ ПО", а попытаюсь описать само сообщество разработчиков и протекающие в нем процессы.

Кем и как разрабатывается свободное ПО

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

Добровольцы

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

Образование
Доброволец разрабатывает ПО для того, чтобы научится его разрабатывать, по окончании обучения ПО становится бесхозным;
Квалификационная оценка
ПО разрабатывается для возможности включить в резюме факт его разработки и продаться с потрохами, по достижении этого результата ПО опять же становится бесхозным;
Наука
ПО разрабатывается с целью подтвердить какие-то теоретические концепции, как только ПО справляется с этой задачей - оно становится ненужным.

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

Продвинутые пользователи

Это класс разработчиков пишет ПО для своих собственных нужд. Основная особенность продвинутых пользователей в том, что они пишут код "для себя", и встречаясь с проблемами всегда стоят перед выбором: "Нужно ли потрать лишних ДВА ДНЯ работы, на то чтобы решить проблему, которая приводит к увеличению трудозатрат при использовании ПО на ДВЕ МИНУТЫ в течении ОДНОЙ человеческой жизни". Хуже того, решение проблем, возникающих из-за неправильных действий пользователя ПО при таком подходе вообще неактуально. Про документирование кода я просто молчу.

Картельный сговор или Бизнес-модель открытого исходного кода

Коммерческая разработка свободного ПО основана на том, что некие поставщики услуг оказывается в состоянии писать код, но зарабатывают деньги не на его продаже, а на оказании платных услуг на его основе. При этом в ряде случаев оказывается более выгодным делиться исходным кодом и разрабатывать его вместе c другими поставщиками услуг, несмотря на конкуренцию за потребителя. Это похоже на картельный сговор: поставщики услуг имеют успех до тех пор, пока давят потребителя единой кодовой базой: куда бы потребитель не дернулся, он везде наткнется на одно и тоже. Конкуренция между ними возможна, но лежит в плоскости договоров с потребителем, а не в потребительских свойствах ПО. Нарушение любым из них сговора приводит к резкому локальному успеху и полному провалу всей отрасли. Мы не наблюдаем этого по очень простой причине: единая кодовая база служит своеобразным регулятором картельного сговора: ее стоимость сравнима с затратами на термоядерный синтез, поднять альтернативу в одиночку невозможно.

Как водится, нарушение картельного сговора считается самым большим грехом, против которого направлены и внутрисистемные соглашения (copyleft, GPL и т.п.) и культурная традиция, запрещающая (вполне обосновано) форки.

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

Заказчик как неотъемлемая часть процесса разработки

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

Вот именно этого заказчика и не хватает при разработке дистрибутивов линукс.

Существующая технология разработки дистрибутива

Обычно это выглядит так: собирается компания вот тех самых "поставщиков решений", которая объединяется с "продвинутыми пользователями" (которые являются поставщиками решений для самих себя) и пытается все используемое ими программное обеспечение объединить в единый продукт. Ценность этого продукта состоит лишь в том, что его удобно использовать в качестве начальной точки отсчета при разворачивании системы. Разработка дистрибутива не является разработкой ПО и вот почему:

  • Нет разработчиков, которые бы вели разработку ПО, направленную на поддержку дистрибутива как конечного продукта: даже такие необходимые детали как пакетные менеджеры и инсталяторы, утилиты настройки и прочее ПО масштаба дистрибутива либо случайно прирастает трудами "добровольцев" и более уже никогда не меняется, либо заимствуется из других дистрибутивов. Качество этого ПО всегда крайне низкое.
  • Нет того самого "Тупого заказчика": ребята делают продукт "для себя", и на них полностью распространяются тезисы раздела "Продвинутые пользователи";
  • У дистрибутива нет будущего (это просто очередная точка отсчета, она позволяет вернуться к ней, но не определяет никакого плана будущего развития);
  • Нет анализа рынка сбыта: ребята делают продукт "для себя" и включают туда то, что нужно им.
  • Нет разработчиков, которые могли бы взять на себя коррекцию и дописывание, исправление ошибок в продуктах, входящих в дистрибутив. Отговорка мантейнера: "а при чем здесь я, это апстрим виноват", - является более чем общей, причем, мантейнер более чем прав: попытка самостоятельно (не в рамках политики дистрибутива) исправить явные ляпы апстрима приводит к снижению полезности дистрибутива (и нарушает вышеупомянутый картельный сговор).

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

Как же сделать самый популярный линукс

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

Вот это рецепт. А все те рассуждения, которые я прочитал в рассылке - это перемалывание тем, о которых я устал не то что читать, а даже помнить об их существовании :).

Десктопный линукс

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

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

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

Заключение

К сожалению, я мало знаю компаний, которые бы пошли на это. Может быть просто прошел мимо. Отчасти такой подход использует Red Hat: во всяком случае, у них есть подразделение собственных разработчиков, которые разрабатывают перспективное ПО для Red Hat в первую очередь. Недавний опыт Apple, хоть и не имеет отношения к линуксу как таковому, неплохо демонстрирует перспективы. В России ситуация несколько хуже: я знаю пару фирм, которые продают свободное ПО со своей поддержкой, разрабатывая как общедоступные патчи, так и небольшой корпус закрытого кода: они успешны, что не может не радовать, но наличие закрытого кода несколько настораживает. Кроме того, о дистрибутиве в их случае речи не идет. А вот российские дистрибутивостроители, в сущности, паразитируют на сообществе: в оправдание им можно сказать только то, что и сами они денег на этом не поднимают.

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

DreamBot Zope3 Учат тут Нейросети Репозиторий Слив! Статистика Редакторам Мобильный блог
Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site nooxml Сайт посуточной аренды квартир в москве