GPL или BSD? Да!
Автор: (C) Mark Nielsen
Перевод: (C) Иван Песин
Стандартная общественная лицензия GNU , на мой взгляд, многословна, и пытается поддерживать программистов, распространяющих программное обеспечение бесплатно и открыто. Она сбивает с толку понятиями "свободный" и "свобода", поскольку ограничивает свободу тех, кто не хочет свободно распространять программы, находящиеся под действием лицензии GPL. Рик Холберт (Rick Holbert) полагает, что нужно использовать термин "освобожденное программное обеспечение" вместо "свободного ПО". Эта формулировка тоже меня смущает, потому что программное обеспечение GNU не есть истинно освобожденное: вы не можете делать с программами все, что захотите, хотя слово "освобожденное" много лучше чем "свободное". Лицензия GPL требует, чтобы люди, вносящие изменения в программу, открыто распространяли эти изменения. Такое положение защищает свободу "получателя" программы, но не "программистов", вносящих в программу изменения. Быть может, это несколько сбивает с толку, потому что лицензия уменьшает свободу программистов и увеличивает свободу тех, кто программами пользуется. В общем, как мне кажется, лицензия GPL больше подойдет людям, желающим подарить свое ПО человечеству, поскольку она удовлетворяет этой цели.
Иногда, исходя из деловых перспектив, вы хотели бы взять такую программу, которую можно сделать проприетарной (т.е. являющейся вашей интеллектуальной собственностью), чтобы на ее основе сделать закрытый (для посторонних) продукт, обладающий денежной стоимостью. Если вы закрываете исходный текст имеющей определенную ценность программы и имеющих самостоятельную ценность (ваших) изменений, то вы можете брать деньги с тех, кто не может написать программу сам, поскольку это либо слишком сложно, либо подразумевает слишком большие затраты времени. В этом случае вам стоит рассмотреть возможность использовать лицензию BSD.
При другом сценарии, когда вы больше заинтересованы в предоставлении поддержки, а не в продаже ПО, тогда лицензия GPL -- не то, чего вам стоит бояться. IBM, например, использует ее для многих серверов Linux. Если вы разрабатываете бизнес-процесс, основанный на программном обеспечении под лицензией GPL, то вам не о чем беспокоится. Кроме того, вы можете не раскрывать исходные тексты программ под лицензией в стиле BSD или программ, созданных вами "с нуля" и без проблем использовать их в окружении, основанном на GPL-ПО. Существует еще множество способов использования программного обеспечения GPL без угрозы вашему бизнесу. Клиента не интересует, как это все работает, они просто хотят, чтобы это работало. Хорошим примером послужит мерзкие программы для наиболее популярной пользовательской ОС: 99% пользователей не знают, какой мусор помещен в программы, да их это и не волнует. Посмотрите на счастливых получателей патчей к их "самой стабильной и надежной версии" ОС, не смотря на то, что это противоречит здравому смыслу. Быть может, она должна быть стабильной и надежной изначально? А если текущая версия является самой стабильной и надежной, хотя и рушится, и содержит море ошибок, то предыдущие -- это мусор? Я пытаюсь сосредоточить внимание на том, что если что-то надежнее и стабильнее, чем мусор, то это все еще мусор, только слегка более стабильный и надежный (автор, видимо, пытается сказать, что KDE и GNOME -- это мусор, потому как количество ошибок в них можно охарактеризовать именно этим словом: "море" -- Прим. пер.). Все это не играет важной роли. Продажи движет не качество продукта, а возможность дешево продавать на массовом рынке продукт, который удовлетворяет минимальным требованиям (чтобы им вообще можно было пользоваться). Или же вы добиваетесь монопольного положения, а затем с помощью рекламы и денег запудриваете мозги людям и конгрессу, утверждая, что ваше ПО самое лучшее, хотя и знаете, что это не так. В конечном счете, если вы боитесь лицензии GPL исходя из соображений бизнеса, вы, вероятно, недостаточно глубоко разработали свою бизнес-модель. Наиболее популярный дистрибутив Linux в США -- не лучший в мире, ему не достает некоторых возможностей, имеющихся в других дистрибутивах, но, благодаря хорошему маркетингу и улучшениям в каждой следующей версии, он остается самым популярным. Это удерживает клиентов, которые, вероятно, даже и не знают, на сколько качественнее может быть программное обеспечение.
Поддержка авторского права в FreeBSD (http://www.freebsd.org/copyright/) предлагает набор лицензий. В общем, у вас есть свобода делать с программным обеспечением все что угодно до тех пор, пока вы подтверждаете и признаете, что оно происходит из проекта, над которым вы работаете. В каком-то смысле, у вас есть больше свободы делать то, что вздумается, но когда вы внесете в программное обеспечение изменения, вы можете "ограничить" свободу получателей модифицированного вами ПО.
Лицензии BSD не содержат "передающихся" свобод. Они не предлагают "свободы" получателям программ. Если вы хотите взять программу, разработанную другими людьми, внести незначительное количество изменений и продавать ее, то это может оказаться полезным. Можно даже скрыть суть сделанного вами от других людей.
Не-программист, возможно, понимает, что программа делает, но не то, как она это делает, и, с хорошими маркетинговыми знаниями вы, можете продать такому человеку программу, даже не принимая участие в ее разработке. Возьмите для примера наиболее популярную ОС для десктопов и вы увидите как компания, которая не имеет никакого понятия в программировании, но очень хорошо владеет маркетинговыми трюками, продает мусор под видом программного обеспечения (действительно, компания, которая выпускала XENIX, стояла у истоков графического интерфейса MacOS и на которую работают такие люди, как отец OS OpenVMS и RSX-11, кстати, одного из очень немногих, если не единственного, профессионала, который разрабатывал сразу три (!) широко распространенные ОС, не владеет никакими навыками в программировании. -- Прим.пер.). Возможность использовать ПО сторонних разработчиков (которые разбираются в том, что делают) без открытия изменений очень выгодна, если вы не программист и даже не можете написать малюсенькой заплатки, но сильны в маркетинге. С позиции бизнеса, цель которого делать деньги (а это цель любого бизнеса), если вы можете использовать ПО, полученное под лицензией BSD -- используйте его. У вас будет лучший контроль над вашей ОС, а у других людей не будет возможности копировать выгодный продукт. Две самые распространенные ОС для десктопов распространяются именно таким образом.
Хочу заметить, что BSD программисты -- хорошие специалисты, и я не хочу, чтобы вам показалось, будто я говорю о написанных ими программах, как о мусоре. Как мне кажется, пока я могу посмотреть в исходный код, он не является мусором, но как только его закрывают -- он им становится, потому что я не знаю, что происходит "под капотом" (исходя из этого утверждения, все ОС реального времени -- мусор, станции SGI -- мусор, процессоры DEC Alpha-- мусор. Список можно продолжить. Это все закрытые технологии. -- Прим.пер.). Все BSD ПО с открытым кодом -- прекрасно (хотелось бы привести высказывание Кена Томпсона [Ken Tompson] о ядре Linux: "Я видел исходные тексты, там есть как вполне приличные компоненты, так и никуда не годные. Поскольку в создании этих текстов принимали участие самые разные, случайные люди, то и качество отдельных его частей значительно разнится" -- Прим.пер.).
Один важный принцип, который нужно понять: ОДНА ЛИЦЕНЗИЯ НЕ МОЖЕТ БЫТЬ ЛУЧШЕ ИЛИ ХУЖЕ ЛЮБОЙ ДРУГОЙ ЛИЦЕНЗИИ. Она лишь может больше или меньше подходить для ваших задач. Лицензия -- это основа того, как люди должны себя вести, что очень похоже на правительство. С точки зрения бизнеса, США имеют отличное правительство, в котором деньги правят всем. С гуманитарной точки зрения есть правительства с идеями и целями получше. Но ни одно из них не может считаться лучшим или худшим, покуда они делают то, что хотят люди. Если лицензия отвечает вашим требованиям, тогда она вам подходит. Она может не подходить кому-нибудь другому, но это проблемы кого-нибудь другого. И ТОЛЬКО ИДИОТЫ ЗАЯВЛЯЮТ, ЧТО ОДНА ЛИЦЕНЗИЯ ЛУЧШЕ ДРУГОЙ, ЕСЛИ ОНИ НЕ ПОНИМАЮТ ВАШИХ ЦЕЛЕЙ. Когда мы знаем наши цели, мы можем выбирать лицензию, наиболее подходящую к ПО. Но даже на этом этапе можно дискутировать о выборе.
Когда я общаюсь с "BSD-шниками", я обычно убеждаю их в том, что GPL -- неплохая штука. Как? Как я указывал, лицензии нужны, что бы ими пользовались люди. Никто не заставляет вас использовать лицензию BSD или GPL. Так, ЕСЛИ ВЫ РЕШИТЕ использовать лицензию GPL, и не против того, что люди будут иметь полный доступ к исходному коду ваших программ, то почему это плохо? Вы согласились с этим, вы не против, и вы не хотите, чтобы некто пришел и начал получать прибыль с закрытой версии того, над чем вы упорно трудились, не получая за это ни копейки. GPL уравнивает возможности игроков так, что все имеют равные возможности получить прибыли из одного и того же ПО и нет возможности помешать кому бы то ни было получать прибыль тем же способам. Это выглядит, как управляемое рынком соревнование, способствующее развитию бизнеса и дающее лучшим возможность победить. Опять таки, вы решаете распространять программное обеспечение на равных для всех условиях. Если кто-либо не хочет выполнять условия открытости, прекрасно, пускай он инвестирует миллионы долларов, необходимые для создания собственного ПО. Никто не запрещает.
Вы можете распространять свою программу более чем под одной лицензией. Так Perl лицензирован под GPL и лицензией Artistic. Если вы хотите, чтобы ваше ПО использовалось с другим свободным ПО, вы должны лицензировать его не только под лицензией GPL. GPL не очень хорошо приспособлен для работы с другими свободными лицензиями.
Сообщество свободного ПО, в том числе GPL, критикуют за то, что оно "крадет" само слово "свобода". Вопрос: имеет ли диктатор свободу быть диктатором? Ответ: Да. Свобода не имеет ничего общего с "сообществом" [community]. Свобода означает, что вы можете делать то, что хотите, когда вы этого хотите и так, как вы этого хотите. Люди должны иметь возможность быть несвободными. Одна вещь, которая мне докучает, не смотря на то, что я понимаю, из каких политических соображений это делается: чуваки из FSF и GPL склонны переопределять понятие свободы, так, как им хотелось бы его понимать. В действительности, они ищут лишь малое подмножество понятия свободы, но не ВСЮ свободу. Они заинтересованы в свободе для людей свободно обмениваться программным обеспечением с открытыми исходными текстами и в сообществе разработчиков, но не в индивидуальной свободе делать с куском кода то, что хочется -- например, выпускать версию GPL'ного ПО без исходников. Отсюда вытекает, что GPL в действительности предлагает не "свободу" в истинном понимании этого слова, а свободу для сообщества использовать ПО. Мне не нравиться то, как они переопределяют слово "свобода", и как некоторые фанатики не хотят даже говорить с вами, пока вы не станете использовать слова "свободный" и "свобода" в их понимании. Однако, мне кажется, что это хорошо с политической точки зрения, потому как это заставляет людей думать о свободе. А с привычным напряженным рабочим графиком 80-рабочих-часов-в-неделю большинство людей просто не успевают думать.
С другой стороны, лицензия BSD не хуже. Она предназначена для программистов, которые предпочитают создавать ПО с закрытым исходным кодом. Я понимаю, почему это так привлекательно. Я понимаю, почему это так важно для некоторых людей, но позвольте мне поднять важный вопрос о BSD, который не имеет смысла с философской точки зрения:
Допустим люди создали ПО под лицензией BSD. Кто-либо может взять всю их работу и анонсировать сделанный на его основе закрытый проект. Так группа разработчиков может работать годами для того, чтобы написать полезный код. А другие люди или компании могут "украсть" все, что создали разработчики, открыв слегка измененный проект с закрытым исходным кодом, разрекламировав его, как стандарт и, тем самым, лишив настоящих разработчиков всех выгод и заслуг. Я просто не понимаю, почему так много людей так напряженно работают для того, что бы делать других миллионерами? GPL защищает от этого. Она уравнивает шансы всех, использующих данное ПО. Все имеют равные возможности.
Вот недвусмысленный пример того, насколько опасна лицензия BSD и как она помогает распространяться вирусу (эта мерзкая операционная система от первоклассной маркетинговой, но слабой в программировании компании) по всему миру. Посмотрите на несчастье с Kerberos (http://www.linuxtoday.com/news_story.php3?ltsn=2000-05-01-005-04-NW) . Какие ужасные вещи с ним творятся! Для меня лично, когда намеренно опасная компания разрушает ПО и нет возможности заставить ее считаться с остальным сообществом, значит, что нужно объявить бойкот всем версиям такого ПО. Я не могу позволить себе тратить время на постоянно проявляющиеся несовместимости между разными версиями. Kerberos уничтожен, и я никогда им не воспользуюсь. Почему он уничтожен? Ошибочная версия имеет слишком большое влияние в мире, потому не стоить использовать аналогичное ПО, зная, что однажды, будущие версии могут стать закрытыми, разрушив все шансы быть совместимым с версиями используемыми мной. Опасность быть несовместимым с другими системами, которые не вовлечены в политические игры, слишком велика для меня, чтобы использовать такой тип программ. И я всеми силами буду стараться избежать его использования (я надеюсь).
Итак, со всеми плюсами и минусами GPL или BSD, которые я указал, что же лучше использовать? Скорее всего, и ту и другую. Просто нужно понять, что делают лицензии. И если вас не волнуют последствия -- великолепно! Даже не смотря на то, что мне действительно не нравятся BSD-лицензии, если вас не волнует то, что кто-то может сделать из вашего кода закрытый продукт и продавать его, тогда BSD-лицензии могут вам подойти.
Какая лицензия больше подходит мне? Ответ: обе. Однако, я использую только GPL. Почему? Я очень признателен всему свободному ПО. Я не создаю программ, которые можно продать (обычно я пишу веб-скрипты на Python), и я хотел бы, чтобы кто-то пользовался после меня всем тем, что я пишу для мира, и потому имеет смысл использовать GPL. Я даже не представляю себе себя использующим лицензию в стиле BSD, поскольку не хочу, чтобы империя зла взяла мои программы и использовала их для извлечения прибыли, скрывая то, что они сделали на самом деле от тех, кому они выставляют счет. Причина, почему мне подходит лицензия BSD -- возможность выбора в будущем. Я не использую ее, но я рад, что такой вариант существует.
Анонимный трус высказал хорошую мысль (http://slashdot.org/articles/99/06/23/1313224.shtml):
Я был готов написать длинное эссе в ответ, но большинство читателей удовлетворит вывод: Лицензия GPL подходит свободному ПО. BSD подходит свободным людям. С лицензией GPL ПО получает большую свободу, чем программисты, работающий над ним. С лицензией BSD программисты получают большую свободу, чем код, получившийся в результате.
Я предпочитаю выражаться следующим образом:
Следовательно, любой, кто говорит, что одна лицензия лучше другой -- просто туповатый тролль, который не понимает, что решать он может только за себя. Я хочу отметить, что таких людей нужно стерилизовать, чтобы их ДНК не распространялась и не давала начало политикам, генералам и судьям которые любят принимать решения за людей в других областях жизни. Я совершенно не уважаю, даже испытываю презрение, к людям, которые выбирают лицензию на ПО за других, и испытываю не на много меньшее презрение к людям, которые позволяют делать такие решения за них. Я не имею в виду теории о том, как лицензии влияют на общество, ПРОСТО НЕ ЗАЯВЛЯЙТЕ, ЧТО ОДНА ЛИЦЕНЗИЯ ЛУЧШЕ ДРУГОЙ, потому что это мнение, основанное на каких-то оценках, но это не факт. Я приму как факт, то, что вы думаете, что такая-то лицензия лучше для вас, но не то, что она лучше для других -- это просто мнение и теория.
Похоже, что приверженцев лицензии BSD, ненавидящих лицензию GPL раз в десять больше, чем их оппонентов. Мне кажется, что это потому, что Linux раз в десять популярнее, но, если честно -- я не знаю. Если бы FreeBSD была в 10-ть раз популярнее Linux, можно представить, что было бы в десять раз больше приверженцев GPL ненавидящих лицензию BSD. Лично я свое мнение активно не высказываю, поскольку я не сталкиваюсь с ПО под BSD лицензией каждый день. И мне не нравятся люди, которые жалуются на те или иные лицензии по двум причинам:
Вот и все.
Спасибо Рику Холберту, за его советы по улучшению статьи и предложение термина "освобожденный", вместо "свободный", при разговоре об "свободном ПО" в понимании GNU.
Марк -- независимый консультант, уделяющий часть своего времени работе на GNUJobs.com, написанию статей и свободных программ и добровольной работе на eastmont.net.