4 Закрытое и открытое программное обеспечение
Письменный перевод, осуществляемый с помощью информационнокоммуникационных технологий процесс многоэтапный: переводчик должен уметь пользоваться почтовым клиентом при получении перевода от заказчика, уметь разархивировать большие по объему файлы, сканировать необходимые документы, пользоваться электронными словарями и терминологическими базами данных при осуществлении процесса перевода, знать возможности программ локализации перевода и т.д. Нужно отметить, что практически для каждой программы, используемой переводчиком в работе, имеются свободно распространяемые аналоги.
4.1 Разработка ПО как научное исследование
В своей книге «Операционная система Linux» Г.В.Курячий и К.А.Маслинский подробно говорят об особенности программного обеспечения, которая состоит в том, что обеспечение производится в одной форме в виде исходного текста (англ. source code), а распространяется и используется в другой – в виде двоичной программы, машинных кодов, по которым невозможно однозначно восстановить исходный текст. Чтобы изменять программу, исправлять ошибки или даже просто точно установить, что и как делает программа, необходимо располагать её исходным текстом.
Первоначально создание программного обеспечения для компьютеров было в первую очередь академическим занятием. Для специалистов в области компьютерной науки (англ. computer science) каждая программа представляла собой результат научного исследования, в некотором смысле аналогичный публикации статьи. Это означает, что исходный текст программы был обязательно доступен всему научному сообществу, поскольку любой научный результат должен быть верифицируем, т. е. подтверждаться другими исследователями и быть открытым для критики. Таким образом, процесс разработки программного обеспечения более принципиально схож с научным процессом: учёный брал существующие программы, исправлял их в соответствии со своими идеями и публиковал исправленные программы новый результат.
4.2 ПО как «собственнический» продукт
В условиях огромного многообразия архитектур компьютеров программное обеспечение составляло неотъемлемую часть самой машины, причём далеко не самую дорогостоящую часть, отмечают Г.В. Курячий и К.А. Маслинский. Производители компьютеров поставляли их вместе с основным программным обеспечением, по крайней мере, с операционной системой. Производство компьютеров было наукоёмким, в основе своей коммерческим предприятием.
В ситуации, когда программное обеспечение является объектом продажи наравне с предметами обихода, на него автоматически распространяются уже не только законы научной разработки, но и свойства материальных предметов, которыми можно торговать, обмениваться, право владения и пользования которыми стоит охранять законодательно. Так, программное обеспечение попало в разряд интеллектуальной собственности: т.е. исходный текст программы стал рассматриваться как произведение, объект применения авторского права. Чтобы защитить свои интересы, производители компьютеров и программного обеспечения используют лицензии вид договора между обладателем авторских прав и пользователем (покупателем) программного обеспечения. Подобные договоры заключались и с университетами, например, университету передавались исходные тексты программ и право их изменять, но запрещалось распространять их за пределами университета. Подобные ограничения означали, что тексты соответствующих программ не могли открыто обсуждаться в сообществе, т.е. не существовали для научной разработки. Были у компьютеров и программного обеспечения покупатели и вне академической среды, например, банки. Таким пользователям не столь важно получить исходные тексты программ, они заинтересованы в программном обеспечении как в законченном продукте и готовы платить деньги за надёжные и удобные программы.
В европейской культуре столь долго вырабатывались правила собственности по отношению к материальным предметам, что распространение этих прав на предметы нематериальные программные продукты выглядит делом естественным и не вызывает сомнений. А поводов для сомнений немало. Главное отличие программного продукта от, допустим, табурета, так называемое безущербное копирование. Если грабитель отбирает у крестьянина табурет, совершается злодеяние: крестьянин табурета лишается, терпит ущерб. Если крестьянин отдаёт кому-то табурет добровольно, он его также лишается, поэтому вправе требовать возмещения ущерба, например, деньгами. Для того, чтобы ущерба у крестьянина не происходило, табурет нужно воспроизвести: добыть досок, позвать столяра, краснодеревщика и оплатить их работу, и один из двух получившихся предметов обихода отдать грабителю. В этом случае ущерб – денежный – терпит тот, кто оплачивает копирование табурета. Совершенно естественно при этом законодательно запрещать нанесение ущерба, то есть признавать право распоряжаться вещью только за одним человеком – за её хозяином. Никаких дополнительных механических или юридических приспособлений, запрещающих воспроизводить табуреты, при этом не требуется.
Иное дело – программный продукт. Сколько бы средств ни было вложено в его разработку, процедура его копирования (переписывания с одного носителя данных на другой) резко отличается от процедуры воспроизведения табурета. Она не требует участия ни одного из авторов программы, ни, по большому счёту, вообще человека. Единственная расходная статья при этом – цена носителя данных и амортизация копировального устройства. В результате такого копирования получается два экземпляра программы, создающие удобства уже для двух человек. Таким образом, если человек оценивает приносимые программой удобства выше стоимости носителя данных, копирование – благо. Если же относиться к программному продукту, как материальной вещи, и закреплять право её использования за одним каким-то человеком, возникает множество неурядиц, каждую из которых приходится решать искусственными, а зачастую и противоестественными методами.
Например, придётся изыскивать, какой ущерб всё-таки наносится «хозяину» программы при её безущербном копировании. Обычно при этом фигурирует понятие «упущенная выгода», то есть та прибыль, которую хозяин мог бы получить, но не получил из-за того, что продукт скопировали. Вспоминается история 30-х годов, когда советский колхозник украл мешок колхозной пшеницы, и был осуждён за хищение в крупных размерах: если, мол, эту пшеницу всю посадить, да вырастить, да собрать, вышло бы несколько центнеров. Приходится изобретать хитроумную аппаратуру, мешающую копированию, или причиняющую при этом ущерб. Приходится вводить в законодательство особую категорию прав, условно назовём её «патент», ограничивающую злоупотребления – и свободу – всего человечества в пользу хозяина патента. Причём далеко не всегда хозяин патента и автор изобретения – один и тот же человек!
Далее в тексте патентованные программные продукты и способ их разработки будут в чём-то противопоставлены свободно распространяемым программам. Условно – потому, что далеко не во всех странах разрешено выдавать патенты на программное обеспечение, однако везде отношения собственности на исходные тексты программ регулируются общими или специальными разделами законов об авторском праве (разных в разных государствах).
4.3 Определение свободного ПО
Для того чтобы сохранить модель научного сотрудничества между разработчиками, необходимо было обеспечить, чтобы исходные тексты программ, написанных разработчиками, оставались доступными для чтения и критики всему научному сообществу. Для этого Ричард Столлман сформулировал понятие свободное программное обеспечение, в котором отразились принципы открытой разработки программ в научном сообществе, сложившемся в американских университетах в 1970-е годы. Столлман явно сформулировал эти принципы, они же – критерии свободного программного обеспечения. Эти критерии оговаривают те права, которые автор свободной программы передаёт любому пользователю.
1 Программу можно использовать с любой целью («нулевая свобода»)
Для российских пользователей эта свобода действительно «нулевая», в том смысле, что она присутствует всегда, в том числе и у пользователей патентованного ПО. По российскому законодательству обладатель прав на интеллектуальную собственность может передавать или не передавать пользователю право на распространение копий своего произведения (в данном случае – программного обеспечения), однако у него нет никаких прав каким бы то ни было образом ограничивать владельца копии в использовании программы.
2 Можно изучать, как программа работает и адаптировать её для своих целей («первая свобода»). Условием этого является доступность исходного текста программы.
3 Можно распространять копии программы – в помощь товарищу («вторая свобода»).
4 Программу можно улучшать и публиковать свою улучшенную версию, с тем чтобы принести пользу всему сообществу («третья свобода»). Условием этого является доступность исходного текста программы.
Только удовлетворяющая всем принципам программа может считаться свободной, т.е. гарантированно открытой и доступной для научного сообщества. Нужно подчеркнуть, что эти принципы оговаривают только доступность программ для всеобщего использования, критики и улучшения, но никак не оговаривают связанные с распространением программ денежные отношения, в том числе не предполагают и бесплатности. В англоязычных текстах здесь часто возникает путаница, поскольку слово «free» обозначает не только «свободное», но и «бесплатное» и нередко употребляется по отношению к программному обеспечению, которое распространяется без взимания платы за использование, но которое при этом совершенно недоступно для изменения сообществом, просто потому, что его исходные тексты не опубликованы. Такое бесплатное ПО вовсе не является свободным. Наоборот, свободное ПО вполне можно распространять, взимая при этом плату, однако соблюдая при этом критерии свободы: каждому пользователю предоставляется право получить исходные тексты программ, изменять их и распространять далее. Всякое программное обеспечение, пользователям которого не предоставляется такого права, является несвободным. Открытый доступ к исходным текстом программ, в действительности, является ключевым признаком свободного ПО, поэтому предложенный несколько позднее термин «open source software» (ПО с открытым исходным текстом) представляется даже более удачным для обозначения феномена свободного программного обеспечения, чем предложенный Столлманом «free software».
4.4 Сообщество разработчиков и пользователей
Однако главное условие существования свободного ПО, по замечанию А.Б.Кутузова, – не лицензия, а люди, которые готовы делиться текстами своих программ и совершенствовать тексты чужих. Свободное ПО унаследовало модель открытой научной разработки, а вместе с ней и специфическую организацию сообщества разработчиков и пользователей, в некоторых отношениях напоминающую академическое сообщество.
У любого пользователя программного обеспечения непременно возникают вопросы, когда он пытается применить его для решения своих задач. Традиционная коммерческая модель разработки и использования программного обеспечения основана на том, что исходные тексты программ являются коммерческой тайной производителя, а пользователь получает готовый продукт – скомпилированную программу. Такая программа является несвободной. Пользователь несвободной (патентованной) программы платит за неё производителю, который взамен предоставляет ему некоторые гарантии, одна из которых – отвечать на вопросы о работе программы. Специально для этого производитель организует службу поддержки, которая по телефону и по электронной почте отвечает на вопросы пользователей.
Пользователь свободно распространяемой программы не получает вместе с ней никаких гарантий: автор сделал её исходный текст открытым для общества, но при этом не брал на себя обязательств объяснять всем, как работает программа. Поэтому получить ответ на свой вопрос пользователь может из двух источников: из документации, а если её недостаточно – от более опытных пользователей. Хорошо, если такие пользователи есть среди знакомых, а если нет? В этом случае их всегда можно найти в списке рассылки в Internet, посвящённом данной программе.
Любой пользователь свободной программы может направить свой вопрос в список рассылки. Списки рассылки читают разработчики программы и её активные пользователи, и обычно среди них находится тот, кто ответит на вопрос.
Так получается, что пользователи свободных программ, в отсутствие централизованной службы поддержки, организуются в сообщество для взаимопомощи, появляется новая документация в жанре FAQ (Frequently Asked Questions, ЧАсто задаваемые ВОпросы), представляющая собой список вопросов с ответами. Пользователи патентованных программ тоже задают одни и те же вопросы, только не в списке рассылки, а службе поддержки, в результате так же появляется документация типа FAQ, которая, почему-то, редко выходит за пределы внутреннего пользования производителя программы.
В любой программе непременно имеются ошибки (англ. bugs). Производитель патентованной программы оплачивает работу отдела контроля качества, который занимается поиском ошибок. Тем не менее, некоторые ошибки этот отдел пропускает, и они достигают пользователя. Пользователь несвободной программы, столкнувшись с ошибкой, не может выявить её причину (поскольку ему недоступны исходные тексты программы), но, скорее всего, способен описать ошибку и условия, в которых она происходит. Он может сообщить об ошибке производителю программы (обычно посредством обращения всё в ту же службы поддержки), и если там решат, что ошибка действительно в программе, а не в работе пользователя, о ней будет сообщено разработчикам. В итоге пользователь может ожидать, что в следующей версии программы ошибка будет исправлена.
У свободно распространяемой программы обычно нет оплачиваемого отдела контроля качества. Значит, пользователь может столкнуться с ещё большим количеством ошибок, чем в патентованной программе. Тем актуальнее для него возможность сообщить об ошибке разработчикам программы. Раньше в сопровождающей программу документации было принято указывать электронный адрес, по которому разработчики принимали сообщения об ошибках (англ. bug report). Некоторые вводили стереотипную форму для таких сообщений, чтобы облегчить и автоматизировать их обработку. Уже это требует существенно более высокой связности сообщества во всём мире, существенно большей, чем достаточно для закрытой разработки.
Принципиальное преимущество пользователя свободной программы заключается в том, что у него, в отличие от пользователей несвободных программ, всегда есть возможность заглянуть в исходные тексты. Конечно, для многих пользователей исходные тексты не более понятны, чем двоичные исполняемые файлы. Однако при достаточном уровне познаний в программировании пользователь может установить причину ошибки в программе и устранить её, исправив соответствующим образом исходный текст. Если пользователь заинтересован в развитии программы, то с его стороны будет разумно не только сообщить автору об ошибке, но и прислать ему свои исправления к исходному тексту программы: автору останется только применить эти исправления к тексту программы, если он найдёт их корректными и уместными.
Чем больше у свободной программы активных пользователей, готовых вносить исправления и дополнения и делиться ими, тем надёжнее работает и быстрее развивается программа. Причём такая свободная модель отслеживания и исправления ошибок для программы, у которой тысячи активных пользователей, может оказаться гораздо более эффективной, чем у любой патентованной программы: ни одна компания не может себе позволить такой огромный штат сотрудников в отделе контроля качества. Поэтому действительно популярная свободная программа может оказаться гораздо надёжнее патентованных аналогов.
Написать большую программу в одиночку довольно сложно и даже не всегда возможно, особенно если автор занимается этим в свободное от работы время. Большинство современных свободных программ пишется группой разработчиков. Даже если начинал писать программу один человек, и она оказалась интересной, к разработке могут присоединиться активные пользователи.
Очень многие свойства сообщества разработчиков и пользователей свободных программ проистекают из того, что все его участники обычно занимаются этой программой из интереса или потому, что эта программа – необходимый для них инструмент (например, зарабатывания денег). Время, потраченное ими на программу, не оплачивается, поэтому нет никакой надежды, что обстоятельства не переменятся и разработка не прекратится вовсе. Нередки случаи, когда разработка программы начинается благодаря одному автору-энтузиасту, который привлекает многих к участию в разработке, а потом энтузиазм лидера гаснет, а вместе с ним затухает и разработка.
Место свободных программ на сегодняшнем рынке ПО очень значительно, и многие коммерческие и государственные предприятия используют свободное ПО прямо или опосредованно. Собственно, опосредованно все пользователи Интернет задействуют, например, свободную программу Bind, предоставляющую службу DNS. Многие организации, особенно предоставляющие услуги через Интернет, используют свободный web-сервер Apache, от работы которого непосредственно зависит их прибыль, не говоря уже о серверах на платформе Linux. Выгода использования свободного ПО очевидна: за него не приходится платить, а если приходится – оно стоит гораздо дешевле патентованных аналогов. Главный недостаток с точки зрения коммерческого пользователя: разработчики свободных программ не несут никаких обязательств по качеству программы, кроме моральных. Поэтому сегодня большие корпорации, например, Intel или IBM, находят необходимым поддерживать проекты по разработке свободного ПО, оплачивая сотрудников, которые работают в рамках этих проектов.
Итак, подводя итог, скажем, что для переводчика свободное ПО привлекательно по трём причинам:
1) бесплатно;
2) весьма надёжно;
3) часто обновляется.
Представим в таблице программы, которыми пользуются переводчики в профессиональной деятельности и аналоги свободного ПО (см. таблицу 1).
Таблица 1 – Закрытое и открытое программное обеспечение
Пожалуй, две самые важные для переводчика свободные программы – офисный пакет OpenOffice.org и система памяти переводов OmegaT. Использовать их можно как под Windows, так и под GNU/Linux.