"Эрик С.Рэймонд. Собор и Базар (Linux) " - читать интересную книгу автора

разработки открытого пгораммного обеспечения, который я сознательно провел в
базарном стиле. Успех этого проекта превзошел все ожидания.
В этой статье я расскажу вам историю этого проекта, и на его примере
покажу несколько правил эффективной разработки свободного программного
обеспечения.
Не все эти приемы я узнал из мира 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. Хорошие программисты знают, что можно написать; а великие знают, что
можно переписать.
Я не претендовал на великого программиста, а попытался его имитировать.