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