История и философия проекта GNU
Георг Греве <[email protected]>Перевод речи, которая была произнесена в CLOWN (Cluster of working nodes — Кластере рабочих узлов — проекте 512-узлового кластера машин под Debian GNU/Linux) в Падерборнском университете (Германия) 5 декабря 1998 года.
Есть также немецкий оригинал. Рекомендуется читать в оригинале.
Замечание автора. При переводе этой речи я пытался по возможности точно воспроизвести оригинал, который я произнес по-немецки. Разбить немецкие периоды и обратить их в удовлетворительный английский было не так-то просто, и я хотел бы поблагодарить своего соседа по комнате Дуга Чапина, моего друга и природного американца, который помогал мне с некоторыми фразами и словами. Перевод, конечно не отразит всех эмоций и подтекстов, но я думаю, что мы подошли к этому очень близко...
Во время подготовки к этой речи я прочел несколько документов и поговорил со многими людьми. В процессе этого я осознал, что даже те, чьи рабочие места были созданы более или менее непосредственно проектом GNU, не понимают его настоящего значения. Кажется, в условиях всеобщего энтузиазма часть сознания схоронилась в корнях. Сегодня вечером я надеюсь обнажить пару таких корней.
Начало лежит где-то между семидесятыми и восьмидесятыми, когда программная промышленность стала тем, что мы сейчас так легко принимаем. В начале конкуренции некоторые фирмы приняли укрывание исходного текста как стратегию выживания. Пытаясь юридически оформить такое поведение, они создали такие фразы, как “пиратские копии программ“, потому что они подразумевают, что когда программы копируют, что-то теряется. Людей вынуждали соглашаться на лицензии, которые обязывали их принимать меры, чтобы ни у кого другого больше не было доступа к этим программам.
Когда приятель просил у вас копию программы, вы тут же оказывались перед дилеммой. Каждому ясно, что копирование не изнашивает программу — от нее при этом нисколько не убудет... попроси он солонку, я бы еще подумал, ведь я какое-то время не смогу ею воспользоваться. Политика компаний вынуждала вас выбирать между законностью и дружбой.
Многих это выводило из себя, и большинство все равно копировало программу — зачастую под сомнительными предлогами, которые находились в основном для очистки совести, обеспокоенной формулировками фирмы. Наверное, чаще всего это было “если бы я пользовался ею чаще, я бы заплатил” — наверное, каждый себя ловил на такой мысли, если ему только приходилось нуждаться в несвободных программах.
Один человек считал такое положение невыносимым. Привыкнув в ранние годы к (как он сам говорит) “раю”, в котором положение определяли свобода и хозяйственное применение возможностей, Ричард Столмен составил концепцию полностью свободной системы. Очень скоро стало ясно, что эта система будет совместима с Unix, и ее окрестили GNU — в то время были очень популярны рекурсивные сокращения — GNU, что значит “GNU не Unix”. Столмен собрал людей, разделявших его увлечение свободной системой, и основал Фонд свободного программного обеспечения GNU, председателем которого он и поныне является.
Поскольку прежде всего система Unix требует большого набора компонентов, было ясно, что они и будут первым шагом к полностью свободной системе. ФСПО GNU работал над их реализацией, и к началу девяностых система GNU была готова (за исключением ядра). Ядро GNU — проект под названием “Hurd” — поставил крайне смелые цели, и оказалось, что их достижение очень трудоемко и сложно. К счастью, в этот момент первое ядро Linux Линуса Торвальдса было в фазе испытаний, а когда он увидел, какую работу проделал ФСПО GNU, он поместил свое ядро под GNU GPL и сделал его ядром системы GNU.
Я не буду досказывать конец этой истории, потому что большинство из нас сами были ее участниками.
Немного раньше я сказал, что Ричард Столмен составил концепцию свободных программ — но к философии, которая за этим стоит, я так и не подобрался.
“Свободный” в выражении “свободные программы” относится не к цене, а к свободе. Тут есть свои проблемы, и в последнее время кое-кто из корифеев движения (скажем, Эрик Реймонд) стали говорить о “открытом исходном тексте”, потому что “свобода” большинству людей режет слух. Свобода трезвонит о “улучшении мира” и небезопасности. Она трезвонит о переменах, а перемены многих пугают. С целью притупить этот страх придумали другие лицензии свободных программ, чтобы эту концепцию могло усвоить больше людей и чтобы не отпугнуть предприятия.
Вот почему в проекте GNU недолюбливают выражение “открытый исходный текст”. Мы думаем, что лучше бороться с неприятием людьми этой идеи, чем размывать ее. Только если пользователи и фирмы осознают важность свободы,— только тогда мы сможем избежать возвращения к старым формам.
Философия проекта GNU утверждает, что каждому должно предоставляться право пользоваться программой, копировать ее, а также править под свои нужды. Единственное ограничение, которое ставит Стандартная общественная лицензия GNU, состоит в том, что никто не вправе отнимать эту свободу ни у кого другого.
Когда автор поместил свои программы под GNU GPL, свобода связана с ними неотделимо. Конечно, многим предприятиям это как кость в горле, потому что это не дает им взять программы, изменить их, а потом продавать несвободными. Пока есть люди, которые лелеют мечту о скором богатстве, именно эта свобода не дает таким фирмам, как Microsoft, изгадить будущее развитие нашей системы.
Наверное, чаще всего против философии GNU приводят тот аргумент, что программа представляет “интеллектуальную собственность” программиста, и если он может определять цену, по которой распространяется программа, то это только справедливо. Этот аргумент все легко понимают, поскольку в это-то нас и приучали верить последние 20 лет.
Однако реальность немного не такова. Программисты-частники, которые могут заработать на жизнь программами, которые они же и пишут,— это исключение. Обычно они отдают свои права фирме, в которой работают, а эта фирма зарабатывает деньги, ограничивая доступ к этой программе. Фактически обладает правами на эту программу и определяет цену фирма — а вовсе не программист.
Юрист, который изобретает исключительно блестящую стратегию, не имеет права заявить, что это его “интеллектуальная собственность”; метод свободно доступен любому. Почему мы так охотно принимаем положение о том, что каждая строчка программы — какой бы шаблонной и плохо написанной она ни была — так неповторима и невероятно индивидуальна? Жажда контроля дошла до того, что даже человеческие гены стали предметом патентов... хотя обычно их выдают не тем людям, которые ими “пользуются”. Должно ли быть позволено патентовать и лицензировать буквально все?
Этот-то вопрос и составляет одну из стержневых мыслей проекта GNU. Представим себе, что не существует такого понятия как патентованные программы, или программы патентовали бы редко, потому что все публиковали бы свои программы под GNU GPL.
Решения стандартных проблем, которые нужно было бы решать снова и снова, могли бы быть легко доступны. Никому не нужно снова тратить время и работать над той же самой проблемой десятки раз — программисты могли бы искать новые методы и подходить к решению новых задач. Если группе пользователей нужна в программе определенная возможность, они просто нанимают программиста и дают ему реализовать ее. Когда сняты лицензионные и денежные ограничения, развитие программ будет определяться только двумя факторами: спросом и качеством.
Кстати, о качестве — сейчас все больше и больше фирм осознает, что если дать пользователям доступ к исходному тексту, то сами они получат большую выгоду. Попросту говоря, чем больше глаз, тем больше видно. То, что невообразимо для одного, мучительно очевидно для кого-то другого. Благодаря этому свободные программы очень часто так сильно превосходят свои несвободные аналоги. Доктрина, которая сейчас как будто начинает устанавливаться в некоторых фирмах, состоит в том, чтобы дать пользователям доступ к исходному тексту, но не предоставлять никаких других прав. Усовершенствования покорно высылаются назад в фирму, которая развивает с их помощью свой продукт. По сути это огромный отдел разработок. Если мы не будем уделять этому внимания и отстаивать свои права на свободные программы сейчас, то может статься, что через пять лет нам придется платить за версию, которую сделали, внеся наше собственное изменение.
Понятие о программе как “интеллектуальной собственности” несет в себе зерно рока (прошу прощения за напыщенные слова). Пока мы принимаем это понятие, мы принимаем опасность того, что другая фирма будет пытаться взять контроль в свои руки. Microsoft не представляет воплощение зла, как некоторым кажется. Microsoft представляет естественное последствие широко принятой системы.
Страх обрубить сук, на котором сидишь, также широко распространен, но совершенно иррационален. Лучшие программы — это больше пользователей с другими нуждами и новыми мыслями, это больший спрос. Структура подстроится под новое положение, но работы будет больше, а не меньше — и она станет менее монотонной, а стало быть, более интересной.
Из обычных страхов остается еще относительно распространенный страх потери признания. Ну да, уважение, которым облечены предводители различных философий, говорит само за себя. Я со своей стороны предпочел бы, чтобы меня уважали как Линуса Торвальдса или Ричарда Столмена, чем чтобы у меня была репутация Билла Гейтса.
Положим, это и звучит как идеализм и совершенствование мира, но масса поистине великих идей возникло из желания сделать мир немного лучше.
И чтобы окончательно уточнить одну вещь: нет, проект GNU не против капитализма или фирм вообще, и в частности, он не против программистских фирм. Мы не хотим умалять потенциал доходов — совсем наоборот. Каждую фирму призывают зарабатывать как можно больше на продаже программ, услуг и документации — до тех пор, пока они не отходят от основных принципов свободных программ. Чем больше эти фирмы зарабатывают, тем больше они могут вкладывать в разработку новых программ. Мы не хотим разрушать рынка, мы просто хотим, чтобы он отвечал времени.
Одно краткое замечание об основных принципах: конечно, свободные программы требуют и свободной документации. Нет смысла освобождать потомка книги — программу — соглашаясь в то же время на контроль над ее прямым цифровым эквивалентом. Свободная документация так же важна, как сами свободные программы.
Может быть, кто-то отмахнулся от моих слов о поисках “рынка, который отвечал бы времени” как от фигуры речи, но это важный пункт философии GNU: времена, когда программы были важны только для отдельных подвижников и каких-то фирм, давно позади. В наши дни программа — это ворота в информацию. Систему, которая мешает пользоваться программами, а тем самым и самой информацией, нужно оспорить.
Когда Эрик Реймонд опубликовал так называемый “Хэллоуинский документ”, это вызвало самые разные эмоции — от эйфории до паранойи. Для тех из вас, кто его не читал: это внутреннее исследование Microsoft, в котором анализируется сила и слабости свободных программ вообще и Linux в частности. Автор в целом заключает, что у Microsoft есть две возможности отразить угрозу.
Первая — создавать новые или модифицировать старые протоколы, документируя их только очень скудно или не документируя вообще, с тем чтобы работающие реализации были только на машинах на базе Windows.
Пример этой тактики — протокол, применяемый в семействе принтеров “Cxi” фирмы Hewlett-Packard, которые вышли на рынок как крайне дешевые “принтеры Windows”. Спецификации были выданы только Microsoft, так что принтеры невозможно применять ни под какой другой системой.
“Профессионально выученный” компьютерный продавец сказал мне, что наклейка “для Windows” означает, что принтер нуждается в очень специфичном виде оперативной памяти, какой есть только на машинах с Windows; вот почему его нельзя применять под Linux. Что-то подобное приводит типичного пользователя в замешательство, а и тут я перехожу ко второй из описанных тактик.
Эта тактика обычно обозначается собирательным сокращением “СНС” (страх, неуверенность, сомнение), IBM применяла ее задолго до того, как с этим познакомилась Microsoft. Идея проста: если вы зароните в ком-то достаточное сомнение, они не посмеют делать никаких решений, по сути оставаясь в своем текущем положении. Такова суть.
Во все времена образование было врагом предрассудков номер один. Мы не должны позволять мешать образованию, позволяя нас разделять.
Самым заметным разделом за недавнюю историю было уже описанное различие между “открытым исходным текстом” и “свободными программами”. Рассказать об обоих концепциях в отдельности непросто, даже для большинства участников, и понять это можно только в историческом контексте. Поскольку это центральная точка, я хотел бы сказать об этом несколько слов.
По завершении системы GNU ядром Linux внезапно появилась полная мощная свободная система. Рано или поздно это неизбежно должно было привлечь внимание общества.
Когда это внимание было привлечено, массу фирм беспокоило слово “свободный”. Первой ассоциацией было “без денег”, а для них это сразу же означало “без дохода”. Когда затем люди пытались объяснить им, что “свободный” на самом деле означает свободу, они бывали ужасно потрясены.
Эти опасения и страхи породили идею любой ценой избегать таких слов как “свободный” и “свобода”. Родилось выражение “открытый исходный текст”.
Положим, легче всучивать идею, если употреблять выражение “открытый исходный текст” вместо “свободных программ”. Но это ведет к тому, что у “новичков” не будет ни знаний, ни понятия о первоначальной идее. Это разделяет движение и приводит к невероятно непродуктивным окопным войнам, в которых растрачивается огромное количество творческой энергии.
Увеличение заинтересованной аудитории не означает, что мы должны меньше говорить о базовой философии. Совсем наоборот: чем больше людей и фирм не понимает, что эта свобода также и в их интересах, тем больше нам надо говорить об этом. Свобода программ обладает громадным потенциалом для нас всех — и фирм, и пользователей.
Цель не в том, чтобы покончить с капитализмом или развалить фирмы. Мы хотим изменить понимание программ к выгоде всех участников, чтобы оно отвечало нуждам XXI века. Это стержень проекта GNU.
Каждый из нас вносит свой вклад в форме программы, документации или просто рассказа обществу о том, что дела можно делать по-другому.
Жизненно важно разъяснять фирмам, что свободные программы не угроза, а возможность. Конечно, это случится не мгновенно, но когда все участники осознают возможности и перспективы, мы все выиграем. Итак, если вы работаете в программистской фирме, освойтесь с темой, говорите об этом со знакомыми и коллегами. И удерживайтесь, пожалуйста, от попыток “обратить их в свою веру” — я знаю, у большинства из нас есть такая склонность — аргументы говорят сами за себя. Дайте им время спокойно поразмыслить над этим, подружиться с концепцией. Покажите им, что нечего бояться концепции свободы.
Надеюсь, я смог донести философию или хотя бы стимулировать размышления о каких-то новых идеях. Если у вас есть вопросы или если вы хотите что-то обсудить, я весь вечер здесь и буду рад ответить на все вопросы. Желаю всем интересного вечера. Спасибо за внимание.