Свободное программное обеспечение

Существует давний спор по поводу определения свободного программного обеспечения между сторонниками лицензий BSD-типа (позволяют делать что угодно) и GPL-типа (требуют, чтобы изменения распространялись под той же лицензией). Само понятие «свобода» подразумевает не только возможности что-то делать, но и ограничения, вызванные свободой других, поэтому лицензии вроде GPL мне кажутся более свободными, чем лицензии вроде BSD, которые скорее про произвол, а не про свободу. Лицензии типа GPL не только дают свободу использовать программное обеспечение по своему усмотрению, но и требуют не лишать этой свободы других. Это, конечно, лишь философская аналогия, с ней можно спорить, поэтому более важным является тот факт, что GPL — это, по сути, договор о сотрудничестве. Лицензия GPL является более эффективным механизмом для сотрудничества, т. к. защищает от паразитов (см. «Индивид может конфликтовать с обществом»), которые пользуются свободой изменять код, но не вкладывают свои наработки в общий котёл. Такое поведение дестимулирует остальных делать вклад в общее дело и может разрушить это общее дело, а GPL позволяет даже капиталистическим конкурентам работать вместе (например, над ядром ОС Linux). Есть и чисто индивидуальные преимущества GPL-лицензирования для авторов свободных проектов, но это уже за рамками данной книги [Hintjens].

Свободное программное обеспечение, в соответствии с определением Ричарда Столлмана и Free Software Foundation [3], называется таковым, если его лицензия даёт следующие права пользователю:

  1. Запускать программу, как ему заблагорассудится.

  2. Изучать, как программа работает, и модифицировать её по своему усмотрению.

  3. Распространять копии программы.

  4. Распространять модифицированные копии.

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

Государство должно использовать только свободное программное обеспечение, потому что:

  1. Сделанное на общие деньги должно быть доступно всем (см. «Быть полностью открытым»).

  2. Свободное ПО защищает от рисков привязки к поставщику (см. «Независимость от крупного бизнеса»).

  3. Свободное ПО будет экономически эффективнее при масштабах и сроках существования государства. За него можно заплатить один раз и пользоваться им везде и всегда.

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

  5. Свободное ПО стимулирует конкуренцию, т. к. монопольное владение исходным кодом даёт преимущество в конкурентной борьбе.

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




ОБСУДИТЬ