Ещё раз о свободном ПО, лицензиях и т.д.

Виктор Вислобоков
24.08.05

Ещё раз о свободном ПО, лицензиях и т.д.

От автора

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

Разные виды ПО

Итак, по моему мнению существует несколько видов программного обеспечения:
  1. Коммерческое ПО
  2. Условно/бесплатное ПО
  3. Бесплатное ПО
  4. ПО с открытыми исходными текстами
  5. Свободное ПО

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

Коммерческое ПО
    Здесь вроде бы всё понятно. Вы должны заплатить деньги за право использовать это ПО. Количество денег может быть разным и зависеть от множества причин, начиная от количества рабочих мест и заканчивая страной, где продаётся это ПО. Заметим, что многие заблуждаются, считая, что вместе с ПО, приобретённым за деньги они приобретают гарантии безошибочной работы этого ПО или бесплатную техническую поддержку. Достаточно почитать лицензионное соглашение от той же фирмы Microsoft, чтобы увидеть, что никаких гарантий нет. Потом выясняется, что техподдержка тоже стоит денег и даже, что вы не можете никому перепродать купленное ПО, потому что фактически вы покупаете не ПО, а только лицензию на его использование. Т.е. у вас нет никаких имущественных прав даже на то ПО, за которое вы заплатили деньги. Даже если вы купили техническую поддержку, то и это не даёт вам гарантии устранения замеченных вами ошибок. Вы потратите уйму сил и времени, доказывая коммерческой фирме, что здесь ошибка и в итоге далеко не факт, что они её в итоге исправят.
Условно-бесплатное ПО
    Я укрупнил эту категорию ПО, объединив в ней:
    1. ПО, которое вы можете использовать бесплатно какое-то время, а затем обязаны либо купить его, либо отказаться от использования. ПО по истечении этого времени продолжает работать, но при этом его использование становится незаконным. Обычно такое ПО называют shareware.
    2. ПО, которое вы можете использовать бесплатно только определённое время. Обычно его называют trial software или trialware. По истечении этого времени ПО становится неработоспособным.
    3. ПО, которое вы можете использовать бесплатно неограниченное количество времени при соблюдении определённых условий. Про такое ПО иногда говорят: free but restricted. Например, вам запрещается использовать это ПО в коммерческих целях или в таком ПО могут быть отключеные некоторые функции, которые работают в коммеческой версии. Скрытая и неосознаваемая многими опасность такого ПО состоит в том, что следующая версия может стать полностью коммерческой или разработчик (правообладатель) может в любой момент изменить политику лицензирования. Представляете каково будет людям, которые привыкли работать с таким ПО бесплатно, а завтра им говорят, что либо платите нам деньги, либо отказывайтесь от нашего ПО.

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

И вот наконец мы дошли до последних трёх пунктов

Бесплатное ПО
    С точки зрения обычного пользователя - это халява и круто. Такое ПО обычно называют freeware. Пользователи очень любят такие программы и с удовольствием ими пользуются. Однако, с моей (и не только) точки зрения - это один из самых опасных видов ПО. Это некая завлекалочка, на которую можно очень легко "посадить" пользователя, а потом изменить лицензию и начинать брать за программу деньги. Разумеется при этом никаких исходников вам никто не предоставляет, ничего не гарантирует и не поддерживает. Часто фирмы зарабатывают как раз на поддержке freeware программ. Как видим, на свободность или открытость такое ПО претендовать не может.
ПО с открытыми исходными текстами
    Или как говорят open source, не всегда понимая о что же имеется в виду. Это именно открытое ПО, но далеко не свободное. Несвободное потому, что при открытости исходников с вас могут брать деньги за его использование. Вам могут запретить распространять это ПО или его модификации. Вам могут запретить бесплатно использовать всё ПО или его часть в своих собственных программах и разработках. Таким образом, ПО с открытыми исходными текстами также мало похоже на свободное ПО.
Свободное ПО
    Это такое ПО, которое поставляется с открытыми исходными текстами, т.е. тоже open source, которое можно свободно копировать и распространять, а также изменять, использовать в своей работе в любых целях, даже коммерческих. Т.е. такое ПО действительно можно назвать свободным, несмотря на то, что оно может быть и не бесплатным. Это значит, что например, с вас могут попросить денег за компакт-диск с таким ПО, но если вы добудете этот же диск у товарища бесплатно, или сделаете с него копию - это будет абсолютно легально и законно. Техподдержка для свободного ПО предоставляется как правило бесплатно самим сообществом разработчиков ПО (как правило такое ПО - это коллективный труд), но она может быть и на коммерческой основе, если вам важны такие вещи, как время отклика и обязательность. Именно у свободного ПО наболее велики скорость и шансы по исправлению замеченной вами ошибки, не говоря уже о том, что благодаря наличию исходников, вы можете исправить найденную ошибку сами. Однако, здесь есть подводные камни, которые наиболее ярко можно увидеть в различии таких лицензий как BSD и GNU GPL, о чём ниже.

Что считать подлинно свободным ПО?

Пожалуй именно эта тема является самой горячо обсуждаемой и спорной в сообществе программистов свободного ПО. Некоторые считают наиболее свободным ПО, которое имеет лицензию BSD (и подобные ей), а другие ПО, под лицензией GNU GPL (мы говорим, конечно, о 2-й версии). На мой взгляд основное отличие этих лицензий состоит в том, что при модификации исходного ПО, лицензия BSD разрешает делать с этим ПО всё что только можно, при сохраненении отметок об авторских правах и тексте лицензии. Т.е. любой может воспользоваться усилиями многих программистов и затем изменив такое ПО закрыть исходный текст и вообще сделать такое ПО хоть shareware, хоть коммерческим. С одной стороны, возможность делать с ПО всё что угодно - это та свобода, к которой мы вроде бы как и стремимся. С другой стороны, на мой взгляд, это страшная несправедливость и ограничение свободны для тех людей, которые выполнили немалую, а может даже основную часть работы над этим ПО, а в итоге за продаваемый коммерческий продукт не получают ничего, кроме какой-то косвенной отметки о том, что они также являются авторами этого продукта. Они даже могут оказаться лишены права бесплатно пользоваться тем продуктом, который сами же и написали. Другое дело лицензия GPL. Эта лицензия чётко говорит, что ПО должно поставляться с открытыми исходными текстами и запрещает закрывать эти тексты даже если первоначальное ПО было изменено. Такой же запрет действует в отношении ПО, которое содержит в себе даже часть кода, распространяемого под лицензией GPL. С одной стороны, здесь есть некоторое ограничение свободы в плане дальнейшего использования ПО. С другой стороны, лицензия GPL гарантирует свободу ПО и далее, гарантирует, что те усилия, которые разработчики вложили в свой продукт не пропадут для них и остальных людей даром - они всегда будут доступны.

Так какой же ПО будет для этих двух случаев подлинно свободным? Я твёрдо убеждён, что ПО под лицензией GPL.


Путаница с ПО

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

Для некоторых наверное будет новостью, что очень многие коммеческие программы, даже той же фирмы Microsoft (но не только они) пользуются бесплатными библиотеками под BSD-подобными лицензиями, написанными энтузиастами. В качестве примера можно привести библиотеку zlib, которая используется практически везде, где необходимо работать с алгоритмами сжатия - начиная от архиваторов и заканчивая программами работы с изображениями. Наиболее яркий пример - Microsoft Internet Explorer.

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

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

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

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

Даже в рядах программистов пишущих открытое и бесплатное ПО есть мнение, что мол нам нужно только открытое ПО без GNU. Такие люди выпячивают свои разработки, говорят, что они делают открытое ПО, которому не нужно ничто другое. Но давайте посмотрим на чём построено это открытое ПО - да на тех же программах из проекта GNU. Практически любой компилятор или интерпретатор с языка высокого уровня, который используется в открытом ПО сам компилируется из исходных текстов посредством того же GNU C, GNU C++. А в качестве инструментов разработчика повсеместно используются GNU automake, GNU autoconf, GNU make и т.д. Лично я не понимаю, какая мораль должна быть у людей, которые пользуются достижениями GNU и в то же время хаят GNU и отрицают необходимость GNU. Это всё-равно, что рубить сук, на котором сидишь.

Свобода ПО в понимании члена сообщества свободного ПО

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

Кроме того, свободное ПО предоставляет вам ещё одну свободу - самому стать разработчиком ПО и изменять и/или дополнять существующее свободное ПО теми возможностями, которые вам нужны. Какая коммерческая фирма позволит вам встать в один ряд с собой и быть точно таким же разработчиком ПО? Здесь же у вас есть полная свобода: не нравится как написано - перепишите как понравится или убедите разработчика, что так, как предлагаете вы, будет лучше. Вы можете даже создать собственный проект на основании чужой работы, если, например, договориться не удалось. Это будет вполне легально и законно. Возможность участия в любом проекте - это одна из самых увлекательных сторон свободного ПО.

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


Заключение

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

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


Благодарности

Хочу выразить свою благодарности и искреннее восхищение Ричарду Столлману, основателю GNU и Фонда Свободного Программного Обеспечения (Free Software Foundation), главному идеологу идеи GNU и свободного ПО по сей день. Именно его взгляды и высказывания положены в основу данной статьи.

Огромное спасибо разработчикам открытого и свободного ПО во всём мире. Без вашей каждодневной, упорной и кропотливой работы, свободное ПО не существовало бы в том виде, в котором оно есть сейчас. Спасибо друзья и коллеги!