Все журналы
главная
журналы
анонсы
статьи
новости
персоны
о проекте
ссылки


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

Рассылки Subscribe.Ru
Новости проекта "Все журналы"


Каталог журналов
В наш каталог принимаются все журналы, которые можно купить в Москве. (регистрировать журнал)


Спонсоры страницы:
служба по уничтожению клещей в Уфе https://ses-ufa.ru/obrabotka-ot-klecshey/



Статьи из журналов > Наука и техника > Свободу софту


Свободу софту


Автор: Константин Клягин
Источник: "Хакер Спец" - N53 (апрель 2005)

Люди с древних времен размышляли о свободе. Философы перевели тонны папируса и бумаги, выводя и формализуя это понятие. Многие квадратные километры кафеля общественных уборных зафиксировали наблюдения простых смертных на эту тему - в чем заключается свобода? Свободе ставили статуи и посвящали оды. Свободная любовь, свободная пресса или же свобода писать на стенах и дверях (или на двери и на стене) лифтов в наших подъездах? Свобода создавать или свобода потреблять? Проецируя все эти вопросы на рынок софта, попробуем разобраться в отдельном сегменте - в свободном ПО.
 
Оглядимся вокруг. Казалось бы, повсюду мы имеем коммерческие программы: Windows XP и Microsoft Office, игрушки от Id Software, куча небольших shareware-утилит. И если не учитывать специфику отечественного рынка, за все нужно платить. Неутешительная мысль, если учитывать среднюю толщину кошелька граждан. А в случае если компьютер с такими продуктами стоит не дома, а где-нибудь на фирме или в интернет-клубе, дело может закончиться совсем плохо. Вполне вероятными гостями могут быть представители правоохранительных органов, вместо опохмела решившие всем отделением пойти поохотиться на "пользователей пиратского софта".
 
На компьютерах большинства секретарш, бухгалтеров, банкиров, дантистов и бандитов действительно изо дня в день работает коммерческий софт. Такова общая ситуация в области пользовательских систем. Однако если мы выйдем в интернет и обозрим его просторы любым доступным браузером, то обнаружим совсем другую картину. Многие web-сайты работают на сервере Apache под Linux, а в строке URL зачастую приходится видеть расширение скриптов .php, которые иногда выдают ошибки базы данных MySQL. Все это: Linux, PHP и MySQL, - уже из другого мира, из мира свободного программного обеспечения и открытых исходных текстов.
 
Политика
Итак, у нас есть несколько примеров свободного софта. Но пока непонятно, по каким критериям можно считать программу свободной. Скажем, все ясно с заключенным, который только что перестал быть им - он теперь "на свободе". "Свободный полет" – это когда тебя никто не держит и у тебя хороший двигатель, а иначе это "свободное падение". Есть еще "свободные выборы" - это уже с политическим душком. В ситуации с определением свободы ПО от политики нам тоже никуда не уйти.
 
Без сомнения, самый главный политик и идеолог движения за свободный софт – это Ричард Столлман (Richard Matthew Stallman или RMS), основавший в 1984 году проект GNU. У него длинные волосы, борода и безумный взгляд. Ричард часто колесит по миру, рассказывая на всевозможных конференциях о пользе свободного ПО и о вреде патентов, о том, как негативно они сказываются на технологии, техническом прогрессе и на потенции.
 
Программы, в понимании Столлмана, сродни кулинарным рецептам. Действительно, рецепты напоминают софт, с тем лишь исключением, что компилируются они поваром, а не компилятором. Столлман говорит, что никто не сочтет это преступлением, если вы вдруг поделитесь рецептом со своим соседом, дабы тот смог приготовить блюдо на свой вкус. Кроме этого, всегда хорошо знать, чем именно тебя кормят: какие ингредиенты этого блюда и в каких пропорциях их использовали.
 
В кругах особенно страстных фанатов Столлмана называют архангелом, пророком и восьмируким Буддой. Я воздержусь от традиционных похвал и рукоплесканий. На мой взгляд, мужчина немного не в себе. Программеры по своей сути аполитичны, и им, как правило, фиолетово, под какой именно лицензией распространять собственное детище. Также, как правило, они не против, если их исходником воспользуется кто-то еще. Как это сформулировано и преподнесено - дело десятое, лишь бы код был хорошим.
 
Но Столлман гораздо более придирчив к формулировкам и названиям. В частности, в них заключается причина конфликта Столлмана с создателем свободной операционной системы Linux - с Линусом Торвальдсом (Linus Torvalds). Хотя весь исходник ее ядра и так распространяется под свободной лицензией, Линуса он упрекает в том, что тот называет свою операционку Linux, а не GNU/Linux. Столлман настаивает на том, что префикс GNU обязателен, потому что Линус написал только ядро, в то время как базовые утилиты, как и много других полезных программ под Linux, написаны именно в рамках проекта GNU.
 
Суть проблемы в том, что большинство пользователей не понимают, что Linux – это ядро, а не весь набор программ. Они могут подумать, что весь их дистрибутив создан Линусом без участия Ричарда, что и пугает последнего. Мало того, что Торвальдс однажды согласился выпустить свой собственный код под GNU-лицензией, теперь он должен еще и переименовать свой продукт.
 

Несмотря на все это, назвать Столлмана бездельником и пустомелей тоже нельзя. Именно ему принадлежит авторство таких вещей, как редактор Emacs, отладчик GDB и, самое масштабное, GCC (GNU Compiler Collection - набор компиляторов). Осмелюсь предположить, что согласно его логике, дабы неискушенные в политике пользователи не посчитали его только оратором и писателем, Ричарда стоит переименовать в Emacs/Stallman или Stallman/GCC :).

Чего хочет FSF?
Во второй половине 80-х была основана организация Free Software Foundation, которая с тех пор борется за свободу ПО. Главное оружие FSF - лицензия GPL (GNU Public License), обеспечивающая правовую базу принципу распространения свободных программ. GPL - лицензия, совместимая с концепцией copyleft (название - издевательство над словом copyright). Copyleft оговаривает основные признаки, по которым программа считается свободной. Такая свобода имеет несколько уровней:
  • уровень 0: свобода запускать программу с любой целью;
  • уровень 1: свобода изучать и изменять программу;
  • уровень 2: свобода делать копии программы для третьих лиц из дружеских соображений;
  • уровень 3: свобода улучшать программу и публиковать такие улучшения во имя выгоды сообщества.
Очевидно, что уровни 1 и 3 требуют доступа к исходному коду.
 
Так как главным врагом прогресса в сфере ПО FSF считает патенты, борьба с ним ведется следующим образом. Согласно лицензии GPL, обладателем патента на исходный код программы является FSF. Поэтому в случае нарушения лицензии, например, при использовании исходника в коммерческом проекте с закрытым исходным кодом, FSF от имени всей организации будет оспаривать авторское право.
 
Оппозиция
Сформулировав идеи свободы ПО и расписав ее уровни, Ричард Столлман продолжил бурную пропаганду своих идей. Когда в 1991 году FSF обрела в своем активе ОС Linux, среди ее разработчиков, помимо Линуса Торвальдса, оказался американец Эрик Рэймонд (Eric Steven Raymond). Окончательно устав от идеологии FSF и риторики Столлмана, в 1998 году он вместе с Джоном "Бешеной Собакой" Холлом (John maddog Hall), Ларри Августином (Larry Augustin) и еще несколькими товарищами организовал альтернативную организацию - Open Source Initiative, или, сокращенно, OSI.
 
Основанная на идее исключительно технического, а не идеологического превосходства программ с открытыми исходными текстами, OSI стала вторым сообществом программеров, продвигающим идеи открытой разработки ПО для масс.
 
Конечно, как и у всякого движения, у Open Source есть свой "Капитал", "Малая земля" и "Рухнама" в одной обложке. Принадлежащая перу Рэймонда книга называется "Собор и базар". Под этими двумя терминами понимаются два разных подхода к разработке софта.
 
- Собор. В рамках этой модели исходники открываются только когда выходит новая версия. В остальное время разработка и тестирование ведутся узким кругом разработчиков. В качестве примера Эрик в том числе приводит и проекты Столлмана GNU Emacs и GCC. Стоит ли говорить, что разработка коммерческих проектов ведется похожим образом, с тем лишь исключением, что совершенно невозможно получить доступ к исходных кодам.
 
- Базар. Модель, в рамках которой код всегда доступен публике. Она может смотреть его, ковырять и указывать на баги и проблемы еще не вышедшей версии. "Когда глаз много, любая ошибка обнаруживается быстро" - девиз, придуманный для этого подхода Рэймондом.
 
Базар. Давка. Крики. Торговля. Лужи воды с запахом селедки и молочных продуктов. Именно так Эрик и советует разрабатывать софт. Действительно, когда в разработке может участвовать любой желающий, софт к релизу становится намного стабильнее, чем он был бы при "соборной" разработке. Сказывается обильное тестирование. К примеру, именно так по сей день ведется разработка ядра Linux. А самого Линуса вместе с Ларри Уоллом (Larry Wall, автор языка Perl) и Гуидо ван Россумом (Guido van Rossum, отец Питона (Python) можно найти в списке участников OSI.
 
Писать или не писать?
На первый взгляд, все opensource-разработчики могут показаться альтруистами, чистыми невинными ангелами, делающими большую работу на благо общества. Но задумайся, возможно ли, что кто-то станет тратить сотни часов собственного свободного времени исключительно чтобы сделать жизнь других комфортнее и при этом не потребует абсолютно ничего взамен?
 
Так как исследованиями opensource уже относительно давно занимаются разные серьезные организации, для того чтобы узнать мотивацию таких товарищей, можно взглянуть на результаты опросов. Например, на исследование, проведенное в 2002 по заказу Европейской Комиссии университетом в городе Маастрихт, Нидерланды. Согласно финальном отчету, основные причины, побудившие разработчиков заниматься opensource, распределились следующим образом (в порядке убывания популярности):
  • - научиться чему-то новому или развить какие-то навыки;
  • - поделиться знаниями с другими;
  • - поучаствовать в новом способе коллективной разработки;
  • - улучшить существующие opensource-продукты;
  • - потусоваться на opensource-сцене;
  • - доказать, что софт не должен быть чьей-то собственностью;
  • - решить проблему, которая не могла быть решена с помощью коммерческого софта;
  • - получить дополнительные преимущества, которые можно было бы использовать при приеме на работу;
  • - получить помощь в реализации своих идей для ПО.
К этому стоит добавить, что авторство популярного проекта представляет собой еще и политический капитал - возможность сформировать репутацию, которую при желании всегда просто преобразовать и в денежную выгоду, то есть получить хороший заказ или устроиться на работу, связанную с тематикой такого проекта.
 
Конечно, браться стоит за что-то такое, чем ты сам станешь пользоваться. В моей практике неоднократно бывало, что какая-то уже существующая opensource- или коммерческая программа не устраивала меня по тем или иным причинам, и именно это служило поводом к созданию нового продукта. В конце концов, нет смысла изобретать колесо без повода для этого.
 
Плюсы
По своему опыту разработки opensource-продуктов скажу, что к плюсам относится имя, некоторая известность в компьютерных кругах, а также возможность позаниматься чем-то интересным. Причем если у проекта толковая идея, у него обязательно заведутся пользователи. Направление, в котором автор ведет собственный проект, зависит только от него самого.
 
А вот желание заработать денег на простом opensource едва ли оправдается. Многие проекты предоставляют возможность пользователям отблагодарить автора за его труд - так называемые donations (пожертвования). Как правило, donations выглядят так: на сайте программы вывешивается текст вроде "если вам нравится программа и вы хотите отблагодарить за нее автора, кликните здесь". Ну и перевод по webmoney, paypal или с карточки. Так вот, вывесить такое у себя можно, но возлагать на такие пожертвования больших надежд не стоит. Что-то будет капать, но очень редко и помалу. Удвоения ВВП, то есть зарплаты явно не получится. Такова человеческая натура: если платить не обязательно, то, скорее всего, никто и не заплатит.
 
Один из принципов свободного ПО - "works fine for me" (у меня работает нормально, меня устраивает), поэтому еще один плюс состоит в том, что ты ничем никому не будешь обязан. Хочешь - пишешь, не хочешь - не пишешь. А можно и забить совсем, и никто не потребует за это компенсации в соответствии с действующим законодательством и согласно условиям контракта.
 

В любом случае, у тебя будет полностью подконтрольная прикладная программа, которая будет устраивать тебя на 100%. А ежедневно пользоваться собственноручно написанным софтом, скажу тебе, - особенное ощущение.

Минусы
Очевидно, что ни один опрос общественного мнения на тему opensource не раскрыл его проблемных сторон. Думаю, что за такие вопросы исследователей вполне могли бы обвинить в сговоре с MicroSoft, а от особенно рьяных фанов движения вполне можно было ожидать и кучи под дверью. Тем не менее, минусы есть.
 
Так как возможность материальной выгоды от opensource у нас отпала, осталось моральное удовлетворение и приятное хобби. Вот проект. Он растет, развивается, привлекая новых пользователей. Изредка на сайтах и в журналах появляются рецензии на проект , в которых указывается и имя разработчика (что тоже нелишне, например, при устройстве на новую работу). Пользователи пишут в рассылку или почтой, жалуются на проблемы и предлагают новые функции. Вот здесь с функциями и багфиксами возникает вторая проблема.
 
Оказывается, что большинство просто хотят чего-то даже не задумываясь о том, что исходный код программы доступен свободно и что так предоставляется возможность самостоятельно сделать нужное изменение и прислать его в форме патча. Конечно, если автор энтузиаст и, так сказать, на подъеме, то он сделает все сам. Но со временем энтузиазм проходит и поначалу интересный проект переходит большей частью в рутину.
 

Еще одно наблюдение. Если кого-то тыкнуть носом в исходник и сказать "вперед на патчи", то такой пользователь скорее всего скажет "не умею программировать", "я не знаю языка, на котором написан софт" или "у меня нет времени". Если услышишь такие отмазки раз сто, начнешь изрядно раздражаться. А особенно неприятно, когда твое нежелание учиться пытаются компенсировать критикой кода вроде "нет комментариев" или "плохой код". Говорил всегда - скажу и здесь поговоркой. Нечего зеркало винить, коли рожа крива.

После пользователей, которые горазды только разговаривать, идет вторая категория - тщеславные юнцы. Это люди, которые присылают патчи, состоящие из одной строки добавленного кода и пяти строк с описанием того, кто прислал этот патч. Можно игнорировать.
 
Ну и, в конце концов, среди в общем благодарной публики появляются откровенно наглые персонажи. То ли они считают, что автор обязан заниматься проектом, то ли думают, что именно они заслуживают благодарности только за то, что являются пользователями, но настроение испортить временами способны.
 
Типичный сценарий:

П: У меня не работает то-то.

Р: rtfm.

П: Вот ты какой! Не буду больше программой пользоваться.

Вот и славненько. Мы дебилов не заказывали. Или вот:

П: Хочу такую-то функцию.

Р: Хочешь - сделай.

П: Но ты же автор! А я - пользователь! Я прошу функцию! Ты че?

Р: До свидания.

 
Opensource == works fine for me. Как ни странно, выходит, что главная отрицательная сторона свободного ПО - пользователи. Вернее, их наименее вменяемая часть.
 
Здесь мы первый раз идем вразрез с процитированным в начале статьи сравнением программ и рецептов приготовления еды. Ни один вменяемый кулинар не будет требовать от автора рецепта изменить что-то в творении. Он сам сделает все необходимые изменения.
 
Другие способы поучаствовать
Менее напряжным вариантом участия в opensource-разработке является содействие разработчику, выражающееся в предоставлении патчей. Напряга уже меньше хотя бы в силу того, что приходится взаимодействовать со свойской публикой - с разработчиками. Особенно актуально, если продукт ориентирован на конечного пользователя, проявляющего себя во всем вышеописанном разнообразии. Пожалуй, лучший способ помочь себе и другим - улучшить или исправить понравившийся проект прежде всего для себя.
 
С точки зрения разработчика программы, использующей какую-то общедоступную библиотеку, такой вид взаимодействия является идеальным. В этом случае действительно выигрывает прогресс и все участники процесса разработки, каждый из которых получает благодаря себе и своим соратникам постоянно совершенствующийся инструмент. Здесь примером для меня всегда была кроссплатформенная библиотека libcurl, реализующая различные сетевые протоколы. Чтобы не ограничивать ее использование, авторы выпустили libcurl под очень свободной opensource-совместимой MIT/X лицензией. Дело в том, что GPL требует, чтобы программы, использующие какой-либо лицензированный ею код, также распространялись под GPL, а значит, с открытыми исходниками. Очевидно, что такой подход делает невозможным использование библиотеки в коммерческом продукте. Кстати, можно подумать и о таком варианте, если есть желание написать библиотеку.
 
Впрочем, если просто хочется встрять в разработку чего-нибудь, можно сходить на страницу Help wanted сайта sourceforge - http://sourceforge.net/people, почитать объявления и кинуться в омут с головой.
 
Коллективная разработка или свалка проектов?
Когда в 1997 году Linux-энтузиаст Патрик Ленц (Patrick Lenz) из Германии создавал сайт freshmeat.net. Он, наверное, и не подозревал, что его детище станет крупнейшей коллекцией opensource-программ в Сети. И уж тем более в его голову наверняка не приходило осознание того, что часть такой коллекции обречена стать свалкой давно никем не поддерживаемых opensource-продуктов. И хотя сайт имеет механизм автоматической борьбы с замусориванием в виде проверки ссылок на файлы дистрибутивов и на домашние страницы проектов, на freshmeat.net достаточно программ, не обновлявшихся по три-четыре года.
 
Почему же так происходит? Отчего так часто авторы забрасывают свои детища? Отсутствие мотивации продолжать проект, отсутствие ожидаемых результатов: пользователь не пошел (крокодил не ловится, не растет кокос) или никто не присоединился к затее. Здесь хочется прояснить еще одну деталь. Если проект запускается для того чтобы вместе с тобой его разрабатывали другие, о нем можно забыть. Во-первых, твоя идея не нужна никому, кроме тебя, поэтому держаться, скорее всего, она будет на твоем и только твоем энтузиазме. Может быть, потом, когда программа будет готова и если ей воспользуется еще кто-то, подтянутся еще один-два человека.
 
Что касается мотивации, то она будет сильной настолько, насколько ты сам будешь пользоваться результатами своей работы. Выживает только то, что автор пишет для себя и что он сам использует по мере необходимости. Если ты возьмешься за сервер баз данных, но при этом продолжишь пользоваться MySQL, то ожидать от других того, что они MySQL‘ю предпочтут твою поделку, как минимум наивно.
 
Свободное против коммерческого?
Мир свободного ПО интересен и разнообразен. Успешно развиваются аналоги программ, которые в недавнем прошлом были доступны только на коммерческой основе. Adobe Photoshop можно заменить на GIMP, IIS на Apache, Windows на Linux и так далее. Бесплатно. Почему же рынок коммерческого ПО еще жив? Все ли можно заменить на opensource?
 
Возвратимся к аналогии с кулинарными рецептами. Представим, что в мире кулинарии нормой стал свободный обмен рецептами и что именно в таком мире мы пошли в культпоход в ресторан. Выпив, закусив и отведав горячего, попросим у официанта вместе со счетом рецепт заказанных яств. Едва ли посчастливится получить что-то кроме счета, особенно если ресторан - не простая забегаловка и если кушали не чизбургер, а что-нибудь поизысканнее. В серьезных ресторанах способ приготовления фирменных блюд держится в строжайшем секрете. Если рецепт популярного блюда попадет к конкурентам, такая утечка информации приведет к потере клиентуры.
 
Видимо, вера в свободное ПО подразумевает и веру в свободу кулинарии. Но как доказал поход в ресторан, это не совсем так. Впрочем, никто не отменял и "Книгу о вкусной и здоровой пище", рецептами из которой действительно можно делиться. С программным обеспечением дело обстоит примерно так же.
 
Противостояние между свободным и коммерческим ПО многие стремятся свести к вражде между FSF и Microsoft. FSF кажется многочисленной гвардией борцов за правое дело, а MS - ненавистной всем империей зла. Это тоже не совсем верно, так как на утверждении, что за копирование и использование софта нужно платить, вместе со злыми MS зарабатывают на жизнь многие тысячи небольших фирм, а также огромное количество одиночек разработчиков shareware-программ. Без копирайта мы не увидели бы многих полезных программ, потому что у всей этой гвардии просто-напросто не было бы мотивов писать их.
 
Наконец, посмотрим на большие корпорации, ныне широко именуемые друзьями opensource, - Sun, IBM, Oracle и Apple. Все GNU-сообщество кланяется в ножки дяде Эллисону (хозяину Oracle Corporation), который, аки Бог неба Зевс, мечет молнии в сторону Microsoft. Да, он инвестировал что-то в развитие Linux, но его собственные продукты от этого не стали opensource. База данных от Oracle по-прежнему стоит немалых денег. IBM тоже поучаствовала в улучшении Linux. Однако за лицензию на IBM DB2 под Linux придется выложить $337, а Sun Java Webserver стоит полторы тысячи. Продается хорошо.
 

Едва ли можно построить серьезный software-бизнес лишь на разработке свободного ПО. Раздавать бесплатно, а продавать лишь поддержку, - идея хорошая, но не очень выгодная. Ситуация такова, что компании пользуются opensource-продуктами из-за выгоды, которую те несут будучи бесплатными и обладая всей функциональность своих коммерческих аналогов.

Фирмы вкладывают средства в развитие opensource лишь тогда, когда речь идет о добавлении необходимых им функций, а не из-за идеологии. Просто это дешевле написания собственного софта с нуля. Обычно речь идет о платформах и средствах разработки, которые действительно стоит разрабатывать совместно. Но сложное ПО, направленное на решение конкретной задачи, скорее всего, будет коммерческим. Поэтому место перед монитором найдется для всех: и для opensource-программеров, и для разработчиков коммерческого софта.
 
www.fsf.org  - cайт Free Software Foundation.
 
www.gnu.org  - cайт GNU.
 
www.opensource.org  - cайт Open Source Initiative.
 
www.sourceforge.net  - сайт для коллективной разработки свободного ПО.
 
Каждому проекту бесплатно предоставляется хостинг, CVS, почтовая рассылка и серверы для сборки.
 
www.savannah.gnu.org  - похожий на SourceForge сервис, предоставляется проектом GNU.
 
www.freshmeat.org  - свежее мясо, самый большой каталог по большей части свободного софта под Linux.
 
www.infonomics.nl/FLOSS  - результаты исследования свободного ПО по заказу Европейской Комиссии.



Журнал "Хакер Спец"
описание | анонсы номеров | новости журнала | статьи

Статья опубликована 27 Сентября 2005 года


© "Jur-Jur.Ru" (info@jur-jur.ru). При полном или частичном использовании материалов ссылка на сайт "Все журналы" обязательна.
Разработка и продвижение сайта - Global Arts

Rambler's Top100