Три кита свободного софта
АрхивМненияВ основе порядка, царящего в мире свободного программного обеспечения, лежат несколько принципов. Три главных такие: свобода, открытость и авторское право. Первые два всем известны, третий же часто незаслуженно забывается.
От редактора: Эту статью можно, в некотором роде, считать ликбезом. Хотя понятия "свободное программное обеспечение", "открытые исходники" кажутся простыми и общеизвестными, их окружает столько путаницы и мифов, что ещё одно объяснение не помешает. Статья написана с позиций сторонника идеологии free software, но это не должно вас смущать. Просто помните, что приводимые рецепты не универсальны, и противоположные мнения тоже имеют право на существование (потому данная статья и публикуется в такой рубрике).
Кроме неоспоримых достоинств, у традиционного коммерческого способа разработки программного обеспечения есть и недостатки. В наше время создавать новый продукт с нуля - непозволительная роскошь. Вместо того чтобы заниматься собственными уникальными идеями, программисты вынуждены решать рутинные задачи и в который раз изобретать велосипед; сроки разработки при этом катастрофически растут. Куда разумнее использовать готовые компоненты от сторонних разработчиков, но тогда встаёт вопрос лицензионных отчислений. Нередко они выливаются в ощутимые суммы, и молодой проект немедленно сталкивается с достаточно ощутимыми финансовыми затратами.
В процессе разработки всплывает ещё одна проблема: необходимость тестирования и отладки программы. Собственными силами это делать долго, непродуктивно и просто скучно. Но и оставить "на потом" эту работу нельзя: даже самая гениальная идея может погибнуть в пучине мелких недочётов и недоработок. Придётся нанимать штат тестеров. И даже продажа готового продукта, как ни парадоксально, тоже требует постоянных вложений.
Для крупных организаций всё это не проблема, но для начинающих компаний, состоящих зачастую из нескольких молодых людей с головами, полными идей, но пустыми карманами, эти затраты могут стать непреодолимой преградой на пути к славе и заслуженному благосостоянию. В последнее время много говорят о таком выходе: разработку можно вести по принципам, принятым в мире свободного программного обеспечения.
Теоретически всё просто: отлавливаете из океана свободного софта необходимые компоненты, собираете их в одно целое, вносите свои изменения или добавляете те самые собственные уникальные решения и получаете требуемый результат в короткие сроки и практически даром. Казалось бы, при таких выгодных условиях мы должны сейчас наблюдать лавинообразный переход разработчиков всего мира на "свободные рельсы", но на практике этого не происходит.
Чаще всего при рассмотрении принципов свободной разработки в качестве будущей модели для собственного проекта возникает несколько вопросов. Первый (и главный): как же продавать то, что доступно всем? Может быть, деньги - и зло, но без них жить тоже не получается, поэтому резонно надеяться на некоторое вознаграждение за свой труд. Вдобавок, как уследить за конкурентами, если код моей программы открыт? Они используют мои уникальные решения в своих продуктах, востребованность моих программ снизится, и потенциальная прибыль - вслед за ней. И вообще, если все, кому не лень, смогут изменять мой код по собственному усмотрению и распространять от своего имени, то как я сохраню за собой законные права автора?
Вопросы серьёзные, но на самом деле не всё так грустно. В мире свободного программного обеспечения отнюдь не царит анархия. Несмотря на сравнительную молодость, сообщество разработчиков и пользователей свободного софта сформировало вполне чёткие правила игры, нарушение которых так же противозаконно, как и в мире коммерческого ПО. Любая, даже самая небольшая программа, защищена одной из многочисленных свободных лицензий, самая распространённая из которых - стандартная общественная лицензия GNU. Тысячи компаний и индивидуальных разработчиков, миллионы пользователей ежедневно работают со свободным ПО и при этом нет никакой неразберихи и уж тем более анархии.
Как так выходит? Всё очень просто. В основе порядка, царящего в мире свободного программного обеспечения, лежат несколько принципов. Три главных такие: свобода, открытость и авторское право. Первые два достаточно широко обсуждаются в околокомпьютерной прессе, третий же - авторское право - часто незаслуженно забывается. Более того, по каким-то непонятным причинам бытует ошибочное мнение, что принципы свободной разработки противоречат соблюдению авторских прав. На самом деле, именно авторское право является гарантом получения реальными создателями всех положенных благ и играет стабилизирующую роль для двух других принципов - свободы и открытости.
Давайте рассмотрим каждый из трех главных принципов подробнее.
Свобода
Это основной принцип, название которого даже вошло в сам термин "свободное программное обеспечение". Согласно ему, каждый может свободно выполнять, копировать, изменять и распространять программное обеспечение. При этом ни сам автор, ни пользователи или распространители программы не имеют права хоть каким-то образом ограничивать применение к ней данных действий.
Идея сделать программное обеспечение свободным родилась не на пустом месте. Несколько десятилетий назад, когда компьютеры были такими большими и дорогими, что позволить себе их приобретение могли лишь крупные организации, программы представляли интерес лишь для тех, кто с ними работал, и без ограничений кочевали из одной научной лаборатории в другую. Разработчики, занимающиеся различными проектами, могли не делать одну и ту же работу дважды, а использовать наработки коллег и экономить время и средства. Это устраивало всех, пока компьютерная техника не стала доступна более широким слоям населения. Программное обеспечение стало товаром и приобрело все стандартные свойства последнего.
Впрочем, у программ есть и уникальные черты. Разработка (или, иными словами, изготовление, производство) программы требует определённых затрат, а вот тиражирование или копирование цифрового кода при современном уровне развития техники практически ничего не стоит. Написанную однажды программу можно бесконечно долго "клонировать", с неё не убудет, она не испортится и не исчезнет. Кроме того, само "производство" программ больше напоминает эволюционный процесс: при разработке почти всегда используется уже созданный ранее код.
История о том, как возникли Фонд свободного программного обеспечения и само понятие "свободное программное обеспечение", известна, наверное, всем, кто когда-нибудь интересовался этим вопросом. В 2002 году "Компьютерра" публиковала главы из книги Сэма Уильямса "Свободный - от слова "свобода", рассказывающей о крестовом походе Ричарда Столлмена за свободу софта.
На некоторых рынках свободное программное обеспечение уже занимает существенную долю. Его разработкой и использованием занимаются тысячи компаний различного масштаба. Они смогли решить для себя те вопросы, которые обсуждались в начале статьи, и, вероятно, не считают, что свобода программного обеспечения плохо сочетается с коммерческой деятельностью. Иски и судебные тяжбы по поводу заимствования одними разработчиками кода других редки (компания SCO, пару лет назад принявшаяся шумно обвинять разработчиков Linux в плагиате, так пока и не смогла подкрепить обвинения доказательствами, и дело, похоже, заглохло).
Примеряя к своему проекту принцип свободного распространения ПО, не стоит забывать одну важную вещь: эта свобода - не односторонняя. Отдавая плоды своего труда сообществу, вы не только ничего не теряете, но и получаете право использовать разработки других членов сообщества, а этот багаж во много раз превосходит ваш вклад. Другими словами, делясь малым, вы получаете взамен несоизмеримо больше. Это позволяет в короткие сроки и без каких-либо серьёзных затрат дополнить ваш собственный программный продукт новыми функциями и свойствами, на самостоятельную разработку которых у вас ушло бы немало времени. При этом индивидуальность вашего ПО не нарушается: согласно принципу свободы, вы вправе вносить любые изменения в полученный от сообщества код. И это ещё один плюс в пользу свободного софта: при коммерческом способе разработки вы можете купить право на использование сторонних компонентов, но будете вынуждены подгонять собственный код под особенности чужих разработок - вносить изменения в них зачастую запрещено.
Ещё один важный момент. Разрешая другим участникам рынка пользоваться вашими наработками, вы, тем самым, автоматически получаете огромный штат сторонних разработчиков. Все изменения и улучшения, сделанные другими программистами в вашем коде, вы свободно можете добавлять к собственному продукту. Свобода не имеет ничего общего с анархией, и на страже ваших интересов стоит лицензия GPL, согласно которой никто не вправе ограничивать распространение своего ПО, если при его создании использовалось свободное программное обеспечение (в данном случае ваше). Любой, кто воспользовался вашим кодом и сделал в нём какие-то изменения, обязан вернуть в сообщество (то есть вам) результаты своего труда. Нарушение этого правила уже относится к противозаконным действиям. Парадоксально, но, выбирая принципы свободной разработки, вы не столько отдаёте, сколько получаете! Вопреки сложившемуся мнению, свободное программное обеспечение делают не романтики и филантропы, а вполне прагматичные люди, которые умеют считать деньги и ценят своё время.
Кстати, о деньгах. "Свободное" не значит "бесплатное" (в английском языке путаницу вызывает слово "free", которое означает и свободу, и бесплатность; в русском языке это разные слова, но объяснять разницу между ними почему-то всё равно приходится). Принципы свободного распределения софта отнюдь не исключают возможность его продажи. Более того, продажа свободных программ практически ничем не отличается от аналогичных действий с коммерческим софтом. И в том, и в другом случае пользователь покупает не код как таковой, а готовое решение, отвечающее запросам покупателя. Другими словами, мы оплачиваем труд разработчиков, которые потратили время и силы на создание некоего изделия. При этом сам программный код является лишь строительным материалом (зачастую не единственным), из которого состоит конечный продукт. Единственное отличие от коммерческого способа - возможность бесплатного получения этого самого строительного материала. Пользователь свободного ПО волен выбирать: получить программу бесплатно и самостоятельно подгонять её под собственные задачи, осуществляя интеграцию с уже установленным на компьютере ПО, производя исправления в случае обнаружения ошибок, изучая принципы работы и доступные возможности программы, или оплатить услуги авторов программы по записи на носитель, доставке в ваш регион, технической поддержке, предоставлению справочного руководства и решению проблем, неизбежно возникающих в процессе работы с программой. При этом возможность бесплатного получения программы позволяет сохранять в рамках приличия стоимость вышеперечисленных услуг: пользователь будет покупать ПО, если его собственные затраты времени и денег на аналогичные действия будут превышать оплату услуг разработчиков. В случае с коммерческим софтом пользователь вынужден покупать ПО на тех условиях, которые выгодны разработчику, что часто приводит к желанию последнего получить сверхприбыль без особых на то оснований.
Конец первой части. Продолжение следует...