Еще на уроках русского языка и литературы нам объясняли, что синонимы — весьма полезная штука. Они нужны для того, чтобы излагать свои мысли не только точно, но и красиво. Разумеется, если второе не будет в ущерб первому.

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

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

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

Чтобы не быть голословным, приведу несколько терминов, определяющих в российском массовом сознании чуть ли не одно и то же: свободное ПО, открытое ПО, ПО с открытым исходным кодом, бесплатное ПО. Если вспомнить о нашей привычке употреблять к месту и не к месту английские слова, то к этому ряду добавятся Freeware, Free Software и Open Source. Поскольку к большому числу синонимов мы уже привыкли с детства, то подобное разнообразие прекрасно вписывается в наш менталитет.

А напрасно. Ведь все эти термины имеют различное значение.

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

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

Еще одно не очень понятное требование часто выдвигают наши настоящие и бывшие соотечественники. Желая продемонстрировать лояльность к нашей общей родине, они объявляют, что программу можно использовать бесплатно только в странах бывшего СССР. И не вполне ясно, к чему это относится — то ли к гражданам Союза, то ли к территориям новообразованных государств. Например, будет ли это условие соблюдено, если компьютер пересек границы?

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

Понятие Free Software ввел в обиход сам основатель Free Software Foundation (FSF) Ричард Столлман. Он же сформулировал четыре критерия, при соответствии которым программа может считаться свободной. Вот они:

— программу можно использовать с любой целью;

— можно изучать, как программа работает, и адаптировать ее для своих целей;

— можно распространять копии программы;

— программу можно улучшать, а затем публиковать свою улучшенную версию, — с тем чтобы принести пользу всему сообществу.

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

Несколько позже основатели организации Open Source Initiative (OSI) Эрик Реймонд и Брюс Перенс сочли, что термин Free Software может иметь неоднозначные толкования (в английском языке слово “Free” означает не только “свободное”, но и “бесплатное” — вспомните Freeware), и вследствие этого он не всем понравится. Поэтому они ввели новое понятие — Open Source.

Критерии открытости сформулировал Брюс Перенс. Они практически полностью соответствуют признакам, на которые ориентируется проект Debian (кстати, именно Брюс Перенс был его лидером в 1996—1997 гг.). Десять условий Open Source таковы:

— нельзя ограничивать распространение программы и требовать за нее денежную компенсацию;

— исходные тексты программы должны быть доступны;

— на основе программы могут создаваться производные продукты, которые можно распространять на тех же условиях, что и оригинал;

— если распространение производных работ запрещается по причине требования сохранности целостности исходного текста, то должно быть разрешено свободное распространение патчей;

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

— программа может использоваться с любой целью;

— не должно быть никаких дополнительных соглашений, относящихся к ПО;

— нельзя юридически привязывать программу к какому-либо другому продукту;

— нельзя накладывать какие-либо требования на другие программы;

— на пользователя программы нельзя накладывать какие-либо ограничения технологического характера.

Как нетрудно заметить, эти два термина — Open Source и Free Software — очень близки. Разница между ними носит, скорее, идеологический характер. Если под первым подразумевается прежде всего эффективная модель разработки, то под вторым — право на распространение, модификацию и изучение.

Отсюда и разница в употреблении этих обозначений ПО. В частности, Давид Уилер, один из представителей OSI, отмечал, что использование термина Open Source более уместно, если желательно подчеркнуть технические преимущества продукта, а вот про Free Software лучше говорить при намерении указать на независимость программы и отсутствие контроля со стороны третьих лиц за ее распространением и эксплуатацией.

В свою очередь, представители FSF считают, что определение Open Source слишком узко и может использоваться не в том смысле, который они вкладывают в эти слова. Таким образом, Free Software и Open Source — хоть и близкие, но самостоятельные направления.

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

Например, мы часто говорим про открытое ПО (ОПО), подразумевая под этим ПО с открытым исходным кодом (ПООК). Поскольку из контекста обычно понятно, о чем именно идет речь, мы привыкли не обращать внимания на довольно серьезную ошибку.

Дело в том, что открытое ПО — это не Open Source, а Open Software, если переводить дословно. А это означает не более чем программу с открытыми протоколами. Но английский термин используется крайне редко, вот и прижилось такое не вполне корректное сокращение. Поэтому в случаях, когда возможно разночтение, более правильно говорить о ПО с открытым исходным кодом.

Всегда ли свободное программное обеспечение (СПО) будет представлять собой ПО с открытым исходным кодом? Правильный ответ — чаще всего. Но исключения возможны.

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

Но тогда, может быть, ПООК всегда является свободной программой? Опять же нет. Хотя чаще всего это действительно так.

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

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

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

Рассмотрим пример, ставший уже хрестоматийным. Из него станет понятно, что приведенные выше рассуждения — вовсе не отвлеченная теория.

ОС Singularity, разрабатываемая корпорацией Microsoft и представляющая собой высоконадежную среду, относится к ПООК. То есть ее исходные тексты доступны в виде Singularity RDK (Research Development Kit) и распространяются под специальной лицензией Shared Source. Но свободным это приложение не является, поскольку массовый пользователь может только изучать продукт, а на всё остальное он не имеет права.

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

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