Собор и Базар

на главную - закладки

Жанры

Поделиться:
Шрифт:

1. Собор и Базар

Linux – удивительная система. Кто бы мог подумать, что несколько тысяч разработчиков, разбросанных по всей планете и сотрудничающих только через Интернет, смогут создать операционную систему мирового класса. Я во всяком случае так не думал. К тому времени как Linux оказалась в поле моего зрения в начале 1993 года, я уже около десяти лет участвовал в разработке UNIX'a и открытых программ. Я был одним из первых участников GNU в середине 80-х. Я был автором многих открытых программ, и в частности участвовал в разработке nethack, Emacs VC

и GUD modes, xlife, которые широко используются и по сей день. Я думал, что я знаю, как это делается.

Linux перевернула мои представления о том, что я знаю. Я считал, что основным в разработке небольших инструментов для UNIX'a является их быстрое проектирование и эволюционирующее программирование в течение многих лет. И в то же время я верил, что по мере того как сложность разработки увеличивается, необходим более централизованный подход. Я верил, что разработка самого сложного программного обеспечения (например, операционных систем или просто больших инструментов, таких как Emacs) должна быть подобна строительству собора. Такие программы должны создаваться мастерами-индивидуалистами или небольшими группами волшебников, работающими в строгой изоляции, не допуская преждевременных бета-версий.

Меня очень удивил стиль разработки Линуса Торвальдса – частый выпуск релизов, доступность всех исходных текстов и терпимость к разнородным программам. Это совсем непохоже на размеренное строительство собора, сообщество Linux скорее напоминает шумный базар, с множеством различных подходов и направлений. То, что на этом базаре рождается согласованная стабильная операционная система, кажется чудом из чудес.

Меня потрясло, что этот базарный стиль работает и работает хорошо. Я не только участвовал в разработке индивидуальных проектов, но также пытался понять, почему в мире Linux'a не только не возникает беспорядка, но напротив он движется вперед со скоростью, которой строители собора могут только позавидовать.

К середине 1996 года мне показалось, что я начал понимать. Судьба предоставила мне прекрасный шанс проверить мою теорию. Это был проект разработки открытого пгораммного обеспечения, который я сознательно провел в базарном стиле. Успех этого проекта превзошел все ожидания.

В этой статье я расскажу вам историю этого проекта, и на его примере покажу несколько правил эффективной разработки свободного программного обеспечения.

Не все эти приемы я узнал из мира Linux'a, но если я прав, они помогут понять, почему сообщество Linux'a производит столько полезных программ и помогут вам повысить производительность.

2. Проблемы с пересылкой почты

C 1993 года я занимался решением технических проблем небольшого свободно доступного ISP, который назывался Chester Counter InterLink (CCIL). Я был одним из основателей CCIL и написал свою собственную BBS (вы можете проверить это, сделав telnet на locke.ccil.org). Сегодня он поддерживает почти три тысячи пользователей на девятнадцати линиях. Благодаря этой работе, я имел неограниченный доступ к Internet через линию 56K! Итак, мне пришлось использовать почту Internet. По некоторым причинам мне было сложно соединить CCIL и мою домашнюю машину по протоколу SLIP.

В конце концов, когда мне это удалось, оказалось, что очень неудобно делать telnet для проверки своей почты. Я хотел, чтобы когда почта приходила на snark, я получал об этом сообщение и мог бы обрабатывать ее локальными инструментами.

Простой sendmail мне помочь не мог, потому что моя домашняя машина не всегда находится в сети и не имеет статического IP адреса. Мне нужна была программа, которая бы через SLIP соединие забирала мою почту. Я знал, что такие вещи существуют, и большинство из них использует простой протокол POP (Post Office Protocol). К тому же в операционную систему BSD/OS на locke был включен POP3 сервер.

Мне нужен был POP3 клиент. Одну такую программу я нашел через сеть (на самом деле я нашел три или четыре). Некоторое время я использовал pop-perl, но в нем отсутствовала одна необходимая возможность: он не умел выбирать адреса так, чтобы можно было правильно отвечать на письма.

Проблема заключалась в следующем. Допустим, что кто-то по имени 'joe' прислал мне на locke письмо. Если я пытался ответить на него, после того как забрал его на snark, мой mailer пытался адресовать ее несуществующему joe на snark. Исправлять вручную '@ccil.org' было утомительно.

Нужные мне возможности были очевидны, но ни один из существующих POP клиентов не знал как это сделать. Это приводит нас к первому уроку:

1. Все хорошие программы появляются для личных нужд разработчиков.

Необходимость – мать изобретения. Слишком часто программисты работают над программами, из которых они не могут извлечь ни пользы ни удовольствия – ничего кроме денег. Но в мире Linux – все по-другому, и это объясняет высокое качество программ для Linux.

Вы думаете, я тут же начал разрабатывать свой POP3 клиент, соревнуясь с уже имеющимися? Ни в коем случае! Я внимательно осмотрел все POP утилиты, которые были у меня под рукой, и спросил себя, которая из них наиболее соответствует моим требованиям. Потому что

2. Хорошие программисты знают, что можно написать; а великие знают, что можно переписать.

Я не претендовал на великого программиста, а попытался его имитировать.

Характерная черта великих – это их лень. Они знают, что судят не по усилиям, а по результатам. Почти всегда легче начать с чего-то сделанного, чем с нуля.

Линус Торвальдс, например, не пытался написать свою систему с нуля. Он начал использовать идеи и исходники от Minix, небольшой UNIX-подобной системы для 386 машин. Почти весь исходный текст Minix был переписан, однако, он послужил основой для того что позже стало Linux'ом.

Действуя в том же духе, я начал искать существующую POP утилиту, чтобы использовать ее как основу для разработки.

В мире UNIX'a всегда существовала традиция делать исходные тексты открытыми и дружественными к повторному использованию кода. Именно поэтому проект GNU выбрал UNIX как основную операционную систему. Мир Linux'a полностью перенял эту традицию. Здесь вы можете найти терабайты исходных текстов, и поэтому шансов найти что-нибудь подходящее в мире Linux'a выше, чем где бы то ни было.

Книги из серии:

Без серии

[5.0 рейтинг книги]
[5.0 рейтинг книги]
Комментарии:
Популярные книги

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Афганский рубеж 4

Дорин Михаил
4. Рубеж
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Афганский рубеж 4

Точка Бифуркации V

Смит Дейлор
5. ТБ
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Точка Бифуркации V

Шайтан Иван 2

Тен Эдуард
2. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван 2

Лондон

Резерфорд Эдвард
The Big Book
Проза:
историческая проза
6.67
рейтинг книги
Лондон

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13

Вечный. Книга III

Рокотов Алексей
3. Вечный
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга III

Имперец. Том 5

Романов Михаил Яковлевич
4. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
6.00
рейтинг книги
Имперец. Том 5

Путь Хранителя. Том 1. Том 2

Саваровский Роман
1. Путь Хранителя
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Путь Хранителя. Том 1. Том 2

Апокриф

Вайс Александр
10. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Апокриф

Живое проклятье

Алмазов Игорь
3. Жизнь Лекаря с нуля
Фантастика:
попаданцы
альтернативная история
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Живое проклятье

Чужак из ниоткуда

Евтушенко Алексей Анатольевич
1. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

Блуждающие огни

Панченко Андрей Алексеевич
1. Блуждающие огни
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Блуждающие огни