Будейовицкий анабазис Рыбникова

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

[Любимов А.В. (avl AT atmsk DOT ru)]

Будейовицкий анабазис Рыбникова.

Вместо предисловия.

Наверное, все знают Гашековский вариант анабазиса. Это вечное движение по кругу с твердым убеждением, что рано или поздно цель путешествия будет достигнута. Швейка в итоге вывели из этого заколдованного круга и отправили по адресу. Данная статья - попытка сделать тоже самое с г. Рыбниковым и другими людьми, которые периодически доказывают, что gpl-совместимые лицензии* (и программы под этими лицензиями) ущербны, бесполезны для пользователя, тяжелы для разработчика и совсем не свободны. При этом приходится как то объяснять тот парадокс, что именно под GPL&Co создана полнофункциональная и конкурентоспособная** серверная и десктопная среды, которых боится даже тот, кто не боится ничего - наш мировой монополист МС. Приходится снова и снова возводить логические конструкции аля "Дюжина ножей в спину Open Source", чтобы снова со всей беспомощностью оказаться на исходной позиции.

Чтобы не прыгать к источнику и обратно я привожу здесь достаточно объемные цитаты из оригинальной статьи. Надеюсь этот момент не станет поводом для претензий со стороны автора и/или владельцев сетевого ресурса, на котором эта статья размещена.

Как всегда, вся работа над материалом прошла в полностью свободной среде Linux с применением только свободного программного обеспечения. Хостинг и прочее сопутствующее также работают под управлением того же линукса. Не воспринимайте данное заявление, как лозунг "Нигде кроме, как моссельпроме" - я не Павка Корчагин, несколько лет назад пользовался виндовс и если бы мне было удобнее работать в другой операционной системе или с другими программами, я бы так и сделал. Но таковы факты - собственный сервер, который не падает годами, прост и одновременно функционален и действительно удобную и надежную десктопную систему мне дал GNU/Linux. Раз уж мы говорим о преимуществах opensource, то грех этот факт не отметить.

Freeware

Начнем, пожалуй, с наиболее простой и понятной разновидности некоммерческого программного обеспечения — Freeware. Что это такое? Компиляция из наиболее расхожих определений этого термина получается на удивление краткой: по сути, Freeware — это программное обеспечение, которое может использовать, не выплачивая за это денег, любой желающий.

Начнем с того, что freeware никогда не было и никогда не будет некоммерческим программным обеспечением. В основе freeware всегда*** лежит вполне конкретный рассчет. Либо захватить долю на рынке и перейти стать платным продуктом, либо способствовать повышению продаж услуг, оказываемых с использованием этой программы или сопутствующих программ или железа, либо попытка сделать себе имя либо все это вместе взятое. Попытка назвать freeware некоммерческим ПО приведет к тому, что тот же internet explorer, icq, acrobat reader или 180-дневную версию windows server 2003 придется тоже признать некоммерческими. Абсурд, не правда ли?

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

Бессмысленное утверждение. В любом случае авторскими правами на любую программу обладает ее автор. Это положение прописано в законодательстве всех стран и не может быть нарушено никакими лицензиями.

Как ни странно, «в некоторой степени Freeware» сейчас производят не только энтузиасты, но и коммерческие фирмы — как правило, это «персональные» варианты профессиональных программ, отличающиеся урезанной функциональностью или же просто лицензионным ограничением, запрещающим использование бесплатных версий в коммерческих целях.

Ничего странного в этом нет. Рынок прагматичен и просто не покупает программы, если его к этому не принудить. Те у кого нет рычагов для этого выпускают бесплатный (но закрытый) софт и надеются, что когда нибудь все изменится. Иногда так и происходит...


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

  • право принимать решение относительно дальнейшей судьбы программы: будет ли она развиваться, будут ли выходить новые версии и/или исправления, будет ли осуществляться техническая поддержка и в каком объеме;
  • право на изменение статуса программы: разумеется, та версия, что уже была выложена в публичный доступ как бесплатная, даже с точки зрения закона не может быть объявлена платной, однако следующая версия может перейти в разряд, к примеру, Shareware, или и вовсе стать «полностью коммерческой»;
  • кроме того, автор, являющийся полноправным хозяином кода, может просто продать его кому-нибудь другому, после чего дальнейшая судьба программы будет определяться уже новым хозяином.

Опять бессмысленное привязывание самых основ авторского права к ограниченному кругу freeware. Все эти права есть у автора любой программы под любой лицензией.

Иными словами, нам (как авторам/разработчикам) в очередной раз «ненавязчиво предлагают» стать «спонсорами». И мало того, что спонсорами — а чуть ли не пожизненными, и без права изменения статуса. Придумал программу — делись! Не самой программой делись, этого нам мало! Вообще всем — наработками, алгоритмами, форматами… Поделился — свободен, гуляй. Нет, в принципе, можешь даже продолжать — может, еще что-то интересное придумаешь. Но обязательно в публичный доступ! Потому как исходный код должен принадлежать всем, без этого каши не сваришь. Пусть даже ты и сваришь, а вот другой — нет. Это же несправедливо по отношению к другому, верно? Значит, кашей нужно делиться. А пользователи — они тебе помогать будут. И себе заодно. И всем остальным друзьям, знакомым и даже незнакомым. Потому что сила — она, брат, не в деньгах, она — в пользователях. Уж ты поверь. Взаимовыручка, сознательность и классовое чутье пролетариата и трудового крестьянства… впрочем, это меня уже куда-то совсем не туда понесло.

Снова с больной головы на здоровую. В очередной раз "«ненавязчиво предлагают» стать «спонсорами»." как раз авторам freeware. Ведь у freeware не может быть соавторов - только пользователи, которые бесплатно пользуются плодами труда автора этого самого freeware-продукта. Не здесь ли кроется причина "странного" положения вещей - freeware мир беден и просто элементарно незаметен на фоне GNU?

И мало того, что спонсорами — а чуть ли не пожизненными, и без права изменения статуса. Придумал программу — делись! Не самой программой делись, этого нам мало! Вообще всем — наработками, алгоритмами, форматами… Поделился — свободен, гуляй. Нет, в принципе, можешь даже продолжать — может, еще что-то интересное придумаешь. Но обязательно в публичный доступ! Потому как исходный код должен принадлежать всем, без этого каши не сваришь. Пусть даже ты и сваришь, а вот другой — нет. Это же несправедливо по отношению к другому, верно? Значит, кашей нужно делиться. А пользователи — они тебе помогать будут. И себе заодно. И всем остальным друзьям, знакомым и даже незнакомым. Потому что сила — она, брат, не в деньгах, она — в пользователях. Уж ты поверь.

Это уже просто GPL-фобия. :)

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

Взаимовыручка, сознательность и классовое чутье пролетариата и трудового крестьянства… впрочем, это меня уже куда-то совсем не туда понесло.

Само собой, не туда. Причем давно. :)

Если уж проводить аналогии, то closed source ПО можно сравнить с феодализмом. Бесплатным пряником freeware или кнутом распространенных закрытых форматов и протоколов пользователя загоняют в стойло и начинают "доить". Этой аналогией хорошо объясняется низкое качество и высокая себестоимость закрытых программных продуктов. Феодализм - малоэффективный строй с большой долей ручного труда и постоянным изобретением велосипеда в каждой вотчине.

GPL же переворачивает страницу феодальных отношений. Теперь каждый может построить свой код на уже сделанном до него и зарабатывать своим трудом более эффективно. Единственное условие - не превращать своих покупателей/пользователей и соавторов в заложников. Стоит ли в таком случае удивляться, что GPL проекты чрезвычайно живучи? Что сообществу GNU удалось сделать то, что не многократно не удавалось гигантам типа IBM ? Где теперь OS/2 или beos? что стало с инвестициями тех, кто предполагал в своих проектах жизнь этих ОС? И куда теперь инвестирует Sun и тот же IBM?

Самой же показательной лично мне кажется вот эта замечательная выдержка из манифеста сторонников Open Source:

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

Совершенно верно. При любом качестве свободного ПО возможно появление более интересного, функционального или просто лучше отрекламированного коммерческого аналога. Естественно, что на первых этапах коммерсанты предложат наилучшие условия для захвата рынка. Вопрос, что будет потом, когда доля на рынке будет захвачена? Авраам Линкольн как то сказал, что те, кто согласен променять свободу на богатство, не заслуживают ни того ни другого. Интересно, а чего заслуживают те, кто согласен променять свободу даже не на богатство, а на кусок сыра в мышеловке?



Сказка о расширяемой функциональности


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

Вполне естественно, что в этом случае он должен использовать свою особую лицензию. GPL создавалась как раз для тех, что заинтересован в развитии своей программы и выражает соответствующие интересы. Должен сказать, что совсем запретить расширение функциональности автор не может ни при каких условиях. Соответствующие ситуации, при которых разрешена декомпиляция, адаптация и изменение программы без согласия и вообще информирования автора изложены в законодательстве РФ.

Если же желание предоставить такую возможность имеется, то для программы просто-напросто… реализуется интерфейс внешних подключаемых модулей, плагинов (plug-ins). В конце концов, если ПО большое и сложное, может быть даже реализован собственный API или встроенный скриптовый язык (опять же с возможностью вызова внешних модулей). Между прочим, если довести этот подход до абсолюта, то можно вообще любое программное обеспечение, работающее под управлением операционной системы, рассматривать как «расширяющее изначальную функциональность ОС». Примеров программ с поддержкой плагинов и/или встроенного скриптинга масса: знаменитый редактор растровых изображений Adobe Photoshop, программа трехмерного моделирования 3ds max, условно-свободный файловый менеджер FAR (вот вам не-Open Source успешно расширяемое Freeware!)… даже пресловутый Internet Explorer!


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

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

даже пресловутый Internet Explorer! Между прочим, по поводу последнего: я вот тут припомнил, что открытый браузер Mozilla лишь совсем недавно приобрел способность сохранять HTML-страницы с картинками в формате Macromedia Flash, несмотря на принадлежность к Open Source и открытость кода. А вот для закрытого, входящего в состав коммерческой операционной системы браузера Microsoft Internet Explorer подобные плагины появились явно больше года назад…

Ну что же, у вас есть одна причина, к тому же уже неактуальная, а здесь приведены 99 причин использовать мозиллу. Просвещайтесь :)

По поводу плагинов - к вашим услугам, к примеру, http://sidebar.ru/ (сотни плагинов отсутствуют в ИЕ вообще как класс) и http://www.mozdev.org/


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

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


основное правило Freeware — «правило истинной свободы»

А вы, случаем, в аум-синрике не подрабатывали? :)

Сказка о независимой экспертизе кода

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

Это действительно, сказка. Само по себе открытие кода никак не влияет на работоспособность "встроенных «черных ходов», «шпионских штучек» и прочих средств невидимого для пользователя слежения за его действиями и воровства данных". Точно также публикация баланса и прочей отчетности предприятия не гарантирует от недобросовестности его менеджмента. И тем не менее постоянно раздаются требования сделать бюджет более открытым, сделать бухгалтерию более прозрачной, печатать состав продукта на его упаковке и т.д. и т.п....


Сама по себе прозрачность ПО не дает никаких гарантий, потому что этого недостаточно - это только необходимо. Ошибки встречаются в любом коде - и в закрытом и в открытом. Но почему то как только открывают какой нибудь продукт, так сразу вываливаются скелеты из шкафов. Так было и с опенофис и с мозиллой и с firebird. Так будет везде, где легче искать и достаточно следопытов. И того и другого в GNU пока хватает, поэтому опенсорсные проекты в лидерах по безопасности и стабильности. Опять прагматизм, опять суровая правда жизни и никаких молитв аля Рыбников ("А сердце то в партию тянет" В. Маяковский)...



Гм… Вообще-то, в таких случаях неплохо бы связаться с автором, не так ли? Вот и в «About…» его почтовый адрес прописан… Связаться и спросить: а нет ли в твоей программе, мистер потенциальный злобный Буратино, каких-то черных ходов или троянских коней? А я, разумеется, отвечу: «Да что вы, как можно! Конечно же нет!» А они в ответ: «А чем докажешь?!» А я им в ответ: «Ну, дык, возьмите исходники, да и посмотрите!» Что? Нет, вы не ослышались. Ведь я, как автор программы, имею полное право предоставить ее исходники определенному частному лицу и/или организации. Если мне так захочется. Если они будут убедительны, мотивируя свою необходимость в этих исходниках. Если я заинтересован в сотрудничестве с ними, а они — в сотрудничестве со мной. Предоставить, разумеется, на оговоренных мной условиях, устраивающих в то же самое время другую сторону. То есть мы просто возьмем и договоримся. Э

Можно, конечно, связаться с автором.

Вот, к примеру, the bat (пример уже приводился в ответе Герману Иванову). Когда выяснилось, что в библиотеке zlib есть уязвимость, автору был послан запрос "Используется ли zlib в программе и подвержена ли она уязвимости? "
Ответ был короток "Нет" (понимай как хочешь).
Потом был проверен код программы the bat и обнаружено, что библиотека zlib в нем присутствует. Снова был послан запрос (ведь нигде не было сказано, что такие то версии the bat уязвимы и их надо обновить) с результатами расследования и теперь уже ответа не было вовсе.
Изумительно. Программа, работающая с конфиденциальной информацией и находящаяся на переднем крае не может быть проверена на "вшивость" даже от известных дыр!

Другой вариант. Я звоню в МС, спрашиваю о наличии дыр и после переговоров "по Рыбникову", получаю доступ к исходникам windows XP. И что мне с ними делать? Я что, могу в одиночку верифицировать несколько миллионов строк кода? Закрытого, мутного коммерческого кода? Это все равно что лично провести полную аудиторскую проверку банка перед тем, как доверить ему свои сбережения. :)


Сказка о жизни после смерти

«Последний довод королей» в случае со сторонниками Open Source звучит прямо как на какой-нибудь торжественной мессе (да и, по сути, есть в нем нечто религиозное): Open Source Software способно сохранять жизнеспособность даже после того, как изначальный автор по каким-то личным причинам решил не заниматься более его развитием. Дескать, если код закрыт — то вот проекту и смерть пришла, а если открыт — то «упавшее знамя подхватят новые бойцы». Замечательно. Прекрасно.

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

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

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

Предположим, я почувствовал себя плохо, голова болит, в животе урчит, в общем — пора писать завещание. И вспомнил я, что есть у меня Freeware-проект, и жалко мне будет, если погибнет он безвозвратно, а сын-распутник подался в манагеры, и некому мне завещать дальнейшую работу над программой. Нормально, жизненная ситуация. Только два маленьких вопроса. Первый: а почему я должен завещать свое детище всем? Потому что мудрый дядя Ричард Столлмен решил, что от этого «будет всем ЩАСТЕ»? Не надо мне мудрых дядь, я сам мудрый. И друг у меня есть хороший, тоже программист, как раз вместе с ним парочку кусков кода и писали. Я свою программу лучше ему отдам. А там, глядишь, если загорится этим делом, да усовершенствует, да переведет в разряд Shareware — может, еще и денег на ней чуток заработает. Эдакий получится «подарок с того света» — тогда-то мне, конечно, уже все равно будет, а сейчас об этом думать — приятно.

В конце концов — хорошо, я сделаю свою программу Open Source «по завещанию». Но кто-то мне может внятно объяснить, с какой стати я должен это делать сейчас?! Сейчас, когда я ей занимаюсь, выпускаю новые версии и патчи, обеспечиваю техподдержку, и программа живет нормальной, полнокровной жизнью, безо всяких дополнительных извращений? Хорошо, я согласен признать Open Source как способ обеспечения «жизни после смерти» — но при жизни-то меня, пожалуйста, не тревожьте! «А не спеши ты нас хоронить», как поется в одной хорошей песне…

Никто не заставляет никого вступать в ряды сторонников GNU. Это было бы противоестественно - тянуть к свободе за уши. Есть вполне конкретные преимущества, которые получает тот, что вступает в ряды опенсорса и есть столь же конкретные обязательства, которые из них вытекают. Решение присоединятся пользоваться помощью сообщества или тащить все на себе всегда принимает автор и это не мафия, где вход - рубль, а выход -два. Автор всегда может распорядиться своим кодом так, как он считает нужным. Вместе с тем, рыба ищет, где глубже, а человек - где лучше и если свободное сообщество день ото дня крепчает - может быть, есть с чего? :)


Итак, Freeware vs. Open Source. С точки зрения автора, «vs.» здесь смотрится вполне уместно

Через всю статью прошло сравнение опенсорса с freeware. Странно, опенсорс в отличие от freeware совсем не обязан быть бесплатным и по размерам не сравним с freeware. Ну ведь глупо сравнивать целую вертикаль в тысячи и тысячи серьезных программ дебиан или альтлинукс с коллекцией бесплатных скринсейверов, сменщиков обоев да прочей шелухи. Где компиляторы? где ядро? где glibc, glib, gtk+, gnome2, gnomeoffice, smb, cups, apache и прочее, без чего невозможен ни десктоп ни сервер? Нет уж, господа-любители freeware, вы еще не доросли до серьезного разговора. Мы тут пока с реальными игроками разберемся, а уровень freeware - повторные реализации одного и того же тетриса... :)

С уважением, Любимов А.В.

avl@atmsk.ru


*   Свободных лицензий достаточно много. Не все из них идеальны, но в данной статье отличия слишком незначительны, чтобы на них заостряться. Итак, далее, везде, где написано GPL, надо иметь в виду все gpl-совместимые лицензии (gpl, lgpl, fdl, bsd ...) <назад>

** Вообще говоря, правильней было бы говорить не о конкуренции, а о замещении, но как то прижилась именно конкуренция. <назад>

*** Такие заявления принято доказывать, но явление freeware слишком незначительно, чтобы рабирать его "по косточкам". Вполне допускаю, что существуют маньяки, которые в соответствии с принципом "дала, а замуж не пошла", разрабатывают некоммерческие программы без задних мыслей и под закрытыми лицензиями. На этом истина относительно сути freeware точно должна восторжествовать.<назад>


Источник: atmsk.ru

[ опубликовано 23/09/2004 ]

Любимов А.В. (avl AT atmsk DOT ru) - Будейовицкий анабазис Рыбникова   Версия для печати