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

пользователей найдут больше ошибок.
Больше пользователей найдут больше ошибок, потому что новые
пользователи добавляют новые способы отладки программы. Этот эффект
усиливается, когда пользователи являются сотрудниками. Каждый из них
подходит к проблеме выявления ошибок под своим собственным углом. Эффект
Delphi в этом случае хорошо работает.
Итак, если мы добавляем больше бета-тестеров, то с точки зрения
разработчиков, мы не увеличиваем сложность возможной серьезной ошибки, но
увеличиваем вероятность, что кто-то эту ошибку обнаружит, и для него она
окажется прозрачной.
На самом деле в ядре Linux'a существуют серьезные ошибки. Однако,
нумерация ядра Linux'a производится таким образом, что потенциальные
пользователи могут выбрать: использовать стабильную версию или рискнуть и
работать с новыми особенностями последней версии. Эта тактика еще не совсем
поддерживается большинством хаккеров Linux, хотя возможность выбора делает
ее привлекательной.

5. Роза или не Роза?

Изучая работу Линуса и формируя мою собственную теорию о том, почему
Linux имеет такой успех, я решил проверить свои измышления на моем новом,
значительно менее сложном проекте. Сначала я реорганизовал и упростил
popclient. Реализация Карла Харриса была неплохой, однако много С -
программистов находило в ней массу сложных и ненужных вещей. Код считался
центральной частью, а структуры данных были просто поддержкой кода. В
результате код был хорош, но дизайн структур данных по высоким стандартам
хаккера, программирующего на LISP'e, был по меньшей мере ужасным.
Однако, у меня была другая цель, отличная от улучшения кода и
организации данных. Мне было нужно полное понимание того, что я делаю.
Согласитесь, не очень-то здорово отвечать за исправление ошибок в программе,
которую ты не понимаешь.
В течение первого месяца, я просто следовал дизайну Карла Харриса.
Первым изменением, которое я сделал стала поддержка IMAP-протокола. Я
реализовал это, реорганизовав машинные протоколы в общий драйвер и три
таблицы методов (для POP2, POP3 и IMAP). Это и предыдущие изменения
продемонстрировали общий принцип, который следует помнить хорошему
программисту, особенно тем кто пользуется С - подобными языками:
9. Хорошие структуры данных и плохой код работают несколько лучше, чем
хороший код и плохие данные.
Брукс Глава 9: "Если вы покажете мне код и скроете структуры данных, я
ничего не пойму в вашей программе. Однако, если вы покажете мне структуры
данных, код скорее всего не понадобится. Он будет очевиден. " Прошло шесть
месяцев, и я начал подумывать об изменении имени - это был уже не просто
popclient. Однако, я колебался,потому что в дизайне не было ничего
принципиально нового. Для уникальности моей версии popclient'a еще очень
многого не хватало.
Все значительно изменилось, когда fetchmail научился направлять почту в
SMTP порт. Наступил день, когда я пришел к этому. Я уже говорил, что я решил
использовать этот проект для проверки моей теории о том, что действия Линуса
Торвальдса были правильными. Вы спросите, как я делал это? Я использовал для