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

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

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

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

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

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

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

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

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

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

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

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

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

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