Плоский мир: краткая история ХХI века
Шрифт:
«Мои родители познакомились, работая на «Ай–Би–Эм» в Южной Калифорнии, и я вырос в городке Ла–Канада, к северу от Пасадены, — рассказал Беленфорд. — Учиться в моей школе было непросто, так как имелась серьезная конкуренция, родители многих учеников работали в Лаборатории испытаний реактивного движения, входящей в систему Калифорнийского технологического. Так что с самого раннего возраста меня окружала наука, и в моей среде «яйцеголовость» была в порядке вещей. В нашем доме всегда стояли компьютеры, а на использованных перфокартах, на которых когда–то работали мейнфреймы «Ай–Би–Эм», мы записывали списки покупок.
Минимум программистских навыков я освоил довольно рано, и к выпускным классам уже хорошо разбирался в компьютерах… Школу я закончил в 1991–м, но еще в 1989–м, в самые первые дни Интернета, приятель как–то дал мне на дискете копию программы Fractint. Она не была пиратской, это была коллективная разработка группы программистов для бесплат–його пользования, и она предназначалась для рисования фракталов [6] . Когда программа запустилась, на экране стал прокручиваться список электронных адресов всех тех программистов и математиков, которые участвовали в ее создании. Я заметил, что в программу был включен и исходный код. Так я впервые познакомился с идеей открытого кода — с бесплатно скачиваемой программой коллективного авторства, вдобавок снабженной исходным кодом. Она изменила образ программиста, сложившийся у меня в голове. Я начал понимать, что в написании программ может быть задействована интересная социальная динамика, в отличие от того, что я уже знал, — мира профессиональных разработчиков коммерческих компаний и «шкафов» ЭВМ, которым они скармливали информацию и забирали результаты. Та работа была для меня немногим привлекательней бухгалтерского учета».
6
Фракталы — удивительные по красоте графические изображения, рождающиеся на стыке искусства и математики. — Примеч. автора.
После школы в 1991 году Белендорф поступил на физический факультет Беркли, но вскоре ему перестало нравиться делить себя между абстракциями, о которых ему рассказывали в аудитории, и теми увлекательными вещами, которые начали появляться в Интернете.
«В то время при поступлении в колледж вам давали собственный адрес электронной почты, и я начал использовать его, чтобы общаться с другими студентами и путешествовать по форумам музыкальной направленности, — сказал Белендорф. — В 1992–м я начал собственную интернет–рассылку, которая была посвящена калифорнийской электронной сцене. Участники могли размещать свои сообщения на форуме, рассылка начала расти, мы обсуждали всякие музыкальные события и местных ди–джеев. Затем мы подумали, почему бы не приглашать собственных ди–джеев и не устраивать мероприятия самим. У нас организовалась своя команда: кто–то говорил: «У меня есть музыка», кто–то еще: «У меня есть музыкальная система» или «Я знаю, где на пляже можно в полночь устрою ить вечеринку». Тогда, в 1993 году, Интернет все еще большей частью состоял из рассылок, электронной почты и РТР–сайтов (файлохранилищ). Я начал собирать архив электронной музыки и заинтересовался, как можно было бы выложить его в он–лайне для всех желающих. Тогда я впервые услышал о Mosaic, веб–браузере, созданном Марком Андриссеном. Я нашел работу в компьютерной лаборатории при бизнес–школе Беркли и все свободное время посвящал исследованию возможностей Mosaic и других веб–технологий. Это привело меня на форум, участниками которого были люди, разрабатывавшие первые поколения веб–браузеров и веб–серверов [7] .
7
Веб–сервер — это программа, которая позволяет любому эксплуатировать свой домашний компьютер в качестве хост–машины для сайтов во Всемирной паутине. К примеру, веб–сервер Amazon.com уже долгое время работает на «движке» производства Apache. Когда ваш веб–браузер идет на www.amazon.com, самый первый фрагмент ПО, с которым он общается, это Apache: браузер запрашивает у Apache страницу Amazon, и в ответ браузеру отсылается содержание этой страницы. Ваши странствия по Сети на самом деле представляют собой взаимодействие вашего браузера с различными веб–серверами. — Примеч. автора.
Я сидел в этом форуме и наблюдал, как Тим Бернерс–Ли и Марк Андриссен спорят друг с другом о функциональных возможностях веб–технологий, — вспоминал Белендорф. — Это было восхитительно и рождало редкое чувство причастности: чтобы быть одним из них, не нужно было ни степени, ни других подтверждений твоего статуса. Скоро я понял, что между моими приятелями по музыкальному форуму и этими специалистами, которых объединял интерес к веб–программированию, есть нечто общее. Итак, какое–то время я следил за обсуждением, а потом рассказал об этом приятелю, который, как, оказалось, был одним из первых сотрудников журнала «Уайрд». Тогда он сообщил мне, что редакция хочет, чтобы я сделал для них вебсайт. Они платили мне 10 долларов в час, и в результате я сделал им и электронную почту, и их первый сайт — Hot Wired… Он был одним из первых онлайновых журналов, существовавших за счет рекламы».
Руководство Hot Wired решило, что на сайте будет регистрация с паролями, — рискованное на тот момент решение с точки зрения большинства интернет–пользователей. «В те t дни, — заметил Эндрю Леонард, который в 1997 году написал историю Apache для Salon.com, — большинство вебмастеров пользовались разработками Национального центра суперкомпьютерных приложений — Национального центра приложений для сверхвычислительных машин при Университете Иллинойса (бывшего также местом рождения первого браузера — Mosaic). Однако разработанный там веб–сервер не умел справляться с аутентификацией паролей в таком масштабе, в каком это требовалось Hot Wired. К счастью, сервер Центра юридически был всеобщим достоянием, а значит, исходники были открыты для всех посетителей. Белендорф просто воспользовался прерогативой хакера: он написал скорректированный фрагмент кода, «патч» для их сервера, который решал проблему с паролями. При этом он был не единственным, кто возился в ту зиму с кодом Национального центра суперкомпьютерных приложений. В бурно растущей Всемирной паутине вебмастера начинали все яснее понимать, что придется брать инициативу в свои руки. Оригинальный код был заброшен и собирал виртуальную пыль, поскольку главный программист Национального центра суперкомпьютерных приложений, студент Университета Иллинойса Роб Маккул (вместе с Марком Андриссеном и автором Lynux Эриком Бина) перешел на работу в «Нетскейп», еще тогда мало чем зарекомендовавшую себя компанию из Силиконовой долины. В то же время Сеть продолжала расти без остановки — и создавала новые проблемы для существующих веб–серверов». Заплатки множились на этой расползающейся ткани, закрывая одну дыру и тут же обнаруживая новую.
Постепенно именно из этих заплаток — незапланирбван но, но неуклонно — стал складываться современный веб–сер вер. Но поскольку Национальный центр суперкомпьютерных приложений уже не мог взять процесс под контроль, у каждого автора была своя версия кода, лишь отчасти пересекавшаяся — благодаря обмену патчами — с версиями других.
«Я тогда был на грани того, чтобы бросить университет, — рассказывал Белендорф. — Мне ужасно нравилось работать над сайтом для «Уайрд», в ходе этой работы я узнавал больше, чем узнавал в Беркли. С моей скромной группой помощников мы часто обсуждали, почему сотрудники Национального центра суперкомпьютерных приложений не отвечают на наши электронные письма. Мы посылали патчи для их системы, безо всякой реакции с их стороны. И мы подумали: «Если Национальный центр суперкомпьютерных приложений будет продолжать не обращать внимания на наши исправления, что же будет дальше?» Процесс усовершенствования доставлял нам удовольствие, но нам не нравилось отсутствие обратной связи и то, что исправления были никому не нужны. Я списался с некоторыми людьми, которые, как я знал, обменивались патчами друг с другом… Большинство из них входило в рабочие группы, занятые созданием стандартов, то есть части объединенной группы решения инженерных задач в Интернете, — первых стандартов коммуникации между машинами и приложениями в Интернете… Мы решили, что возьмем будущее в свои руки и выпустим собственную версию веб–сервера, в которую войдут все наши исправления.
Мы посмотрели, что написано на сайте Национального центра суперкомпьютерных приложений о правах, и текст в сущности сводился к следующему: упомяните, что код был создан в Университете Иллинойса, если будете его усовершенствовать, — и не вините нас, если он перестанет работать. И мы принялись создавать собственный сервер на основе уже имеющихся патчей. Ни у кого из нас не было времени, чтобы целиком посвящать его этому занятию, но мы полагали, что если объединим усилия и будем действовать открыто, вместе со всеми желающими, мы сумеем создать нечто лучшее, чем сможем купить в магазине — впрочем, все равно ни в одном в магазине ничего подобного не продавалось, ведь это было еще до того, как «Нетскейп» поставил на рынок первый коммерческий веб–сервер. Так стартовал проект Apache».
К февралю 1999 года они полностью переписали оригинальную программу Национального центра суперкомпьютерных приложений и оформили свое сотрудничество под именем индейского племени.
«Я выбрал такое название, потому что хотел, чтобы оно звучало утвердительно, заявляло нашу позицию, — сказал Белендорф. — Апачи были последними, кто сдался наступающим федеральным войскам, а в то время мы боялись, что с пришествием больших корпораций их «цивилизаторские» уси–дая уничтожат ландшафт, созданный первыми строителями Интернета. Так что «Apache» казалось мне неплохим именем для движения, и кроме того другие увидели в нем любопытную игру слов: APAtCHy в смысле «сервер, который практически состоит из патчей»».
Итак, в результате множества ходов Белендорф вместе с коллегами по открытому коду — большинство которых он даже не знал в лицо, а только по электронной переписке и чату — создал виртуальную, онлайновую, антииерархическую фабрику по производству ПО, которой никто не владел и никто не управлял. «Нас объединяла инженерная задача, а что касается координации и направления/оно определялось спонтанно, в зависимости от того, кто и когда хотел поучаствовать в написании кода».
— Но как в реальности работает эта фабрика? — спросил я у Белендорфа. — Ведь нельзя же просто набрать кучу незнакомых людей и оставить их без присмотра совместно сочинять новый код?
— В принципе, для разработки потребуется место, где хранится исходник, а управление процессом осуществляется с помощью специальных инструментов, например, Системы параллельных версий [8] , — пояснил Белендорф. — CKS–сервер находится в Сети, на моем компьютере установлен CVS–клиент, и он позволяет мне, подключаясь к серверу, получать копию кода, с которой я начинаю работать и вносить свои изменения. Если мне кажется, что моим патчем уже можно поделиться с другими, я задействую программу под названием Patch, благодаря которой создается отдельный файл, являющийся компактным набором всех изменений. Он называется патч–файлом, и его я могу передать кому–то еще, так что все остальные могут с его помощью исправить свою копию исходника, чтобы проверить его в работе. Если у меня есть право доступа к серверу, которое жестко ограничено определенным числом участников–контролеров, после этого я могу занести патч в репозитарий, чтобы он навсегда стал частью исходника. Cl/S–сервер отслеживает все изменения, и кто был их автором… Таким образом, у вас может быть доступ к чтению, но не быть доступа к изменению. Когда патч заносится кем–то в репозитарий, он рассылается по почте другим разработчикам — так работает система экспертной оценки, — и если что–то в куске кода не так, вы исправляете дефект, на который вам укажут.
8
Concurrent Versions System — CVS (англ.).
— Как сообщество выбирает доверенных лиц?
— Что касается Apache, — сказал Белендорф, — мы начинали как группа из восьми человек, которые по–настоящему доверяли друг другу, и по мере того как на нашем форуме появлялись новые люди и посылали нам свои патч–файлы, мы начинали доверять и им тоже, так что, в конечном счете, нас стало больше 1000. Мы стали первым проектом открытого кода, который бизнес удостоил своим вниманием и который поддержала сама «Ай–Би–Эм». «Уникальные разработки Apache позволили размещать на одной серверной машине тысячи разнообразных веб–сайтов — музыкальных, информационных, текстовых, порнографических, — поэтому вскоре их веб–серверу стала отходить львиная доля провайдерского рынка», — прокомментировал Эндрю Леонард. В то время «Ай–Би–Эм» пыталась продать собственный сервер, называвшийся GO, но его доля на рынке оказалась мизерной. Apache–сервер был лучшим технологическим решением и к тому же бесплатным. Поэтому в «Ай–Би–Эм» решили, что если они не могут разгромить «апачей», он должны взять их в союзники. А теперь остановитесь на секунду и вообразите эту ситуацию. Крупнейшая в мире компьютерная компания признала, что ее инженеры не способны превзойти случайно собравшуюся группу яйцеголовых, и поэтому отказалась от своей технологии в пользу их технологии!