-->

Собор и Базар

На нашем литературном портале можно бесплатно читать книгу Собор и Базар, Рэймонд Эрик С.-- . Жанр: Прочая компьютерная литература. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Собор и Базар
Название: Собор и Базар
Дата добавления: 16 январь 2020
Количество просмотров: 125
Читать онлайн

Собор и Базар читать книгу онлайн

Собор и Базар - читать бесплатно онлайн , автор Рэймонд Эрик С.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

Перейти на страницу:

Этот эксперимент начался поздно ночью, когда я заметил, насколько обЪявления в файле rc стали напоминать небольшой императивный язык. (Вот почему я заменил ключевое слово 'server' на 'poll').

Традиционно программисты стремятся использовать точные и краткие управляющие конструкции. Это правильно, потому что вычислительные ресурсы дорогие, и процесс синтаксического анализа должен быть максимально простым и дешевым.

Потому брать за основу английйский язык невыгодно, так как в нем около 50% избыточных конструкций.

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

Существуют еще несколько поводов для беспокойства. Во-первых, нежелательно, чтобы возросшая стоимость синтаксического анализа, стала сама по себе источником ошибок. Во-вторых, при попытке сделать язык «англоподобным», часто требуется, чтобы «английский» потерял свою форму настолько, чтобы он походил на естественный язык, не больше, чем традиционный синтаксис. (Это можно часто видеть в языках запросов «четвертого поколения» и языках коммерческих баз данных.) В управляющих конструкциях fetchmail'a этих проблем удалось избежать, так как область действия языка сильно ограничена. Он практически не является общецелевым языком,и поэтому несложно перейти от небольшого подмножества английского языка к действительному языку управления. Отсюда можно извлечь еще один урок:

16. Если ваш язык не является полным по Тьюрингу, добавьте немного синтаксического сахара.

Другой урок касается безопасности. Некоторые пользователи fetchmail'a просили меня изменить программу так, чтобы она хранила зашифрованные пароли в файле rc.

Я не сделал этого, потому что это не добавляет никакой защиты. Любой человек, имеющий право читать ваш файл, мог бы запустить fetchmail под вашим именем и, возможно, декодировать ваш пароль. Шифрование пароля в .fetchmailrc могло бы дать людям ложное чувство защищенности. Общее правило здесь следующее:

17. Система безопасности надежна, пока надежны ее секреты. Избегайте псевдо-секретов.

9. Необходимые условия для модели базара

Читатели ранних версий этой статьи обязательно поднимали вопрос о необходимых условиях для разработки проекта в стиле базара, Здесь обычно рассматривали квалификацию лидера проекта и состояние системы на момент, когда принимается решение опубликовать исходные тексты и создать сообщество сотрудничающих разработчиков.

Очевидно, что никто не сможет начать разработку в таком стиле с нуля. Можно тестировать, отлаживать и улучшать программы, работая в стиле базара, но начать проект очень трудно, Ни я, ни Линус даже не пытались это сделать.

Вашему сообществу разработчиков нужно что-то, что можно отлаживать и тестировать.

Когда вы начинаете создавать сотрудничающее сообщество, вам необходимы убеждающие доводы. Ваша программа может не всегда правильно работать. Она может быть неполной, содержать ошибки или иметь плохую документацию. Однако, она должна обязательно убедить потенциальных сотрудников, в том что их собираются вовлечь в нечто стоящее.

Linux и fetchmail были представлены публике как программы, имеющие строгую основу. Многие люди, когда-либо размышлявшие о модели базара, поначалу относились к этому утвверждению критически. Однако позже почти все они приходили к мнению, что лидеру проекта крайне важно иметь высокую квалификацию и интуицию разработчика.

Однако не будем забывать, что Линус заимствовал идеи разработки от UNIX. Я же позаимствовал их у родового popmail'a (хотя мне пришлось переделывать значительно больше, чем Линусу). Так ли уж необходим координатору исключительный талант разработчика или он может использовать чужие идеи?

По-моему не очень существенно, способен ли координатор на оригинальный дизайн. Однако, совершенно необходимо, чтобы лидер проекта был способен отличить хороший дизайн от всех остальных.

И Linux, и fetchmail показали очевидность этого утверждения. Линус – отличный разработчик, который к тому же показал свое умение распознавать хороший дизайн и встраиваить его в ядро Linux. А я, в свою очередь, уже описывал, как единственная наиболее мощная идея в разработке fetchmail (SMTP forwarding) была получена со стороны.

Прежние читатели этой статьи отмечали, что я склонен недооценивать первоначальный дизайн в проектах базара, так как сам я отлично с ним справляюсь, и, поэтому принимаю это как должное. Возможно, в этом есть доля правды, дизайн, в отличие от кодирования и отладки, – мой конек.

Проблема первоначального дизайна заключается в том, что вы начинаете проект, усложняя себе задачу, в то время как следует оставлять ее простой и понятной. Некоторые мои проекты проваливались из-за того, что я совершал эту ошибку, и поэтому я старался не допустить ее при разработке fetchmail.

Итак, я уверен, что fetchmail удался, потому что я ограничил свою изобретательность. Давайте рассмотрим Linux. Предположим, что Линус Торвальдс стремился убрать основные изобретения в дизайне операционных систем, разве получили бы мы такое мощное и стабильное ядро?

Конечно, определенные знания в области дизайна, а также навык кодирования необходимы, но мне кажется, что каждый, кто всерьез думает о такой разработке, превосходят требуемый минмиум. Репутация внутреннего рынка открытых программ оказывает давление, которое предостерегает недостаточно компетентных людей.

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

Необходимость этого очевидна. Для создания сообщества разработчиков, вам необходимо как-то привлечь людей, заинтересовать их тем, что вы делаете.

Техническая часть, конечно, очень существенна, но и ваша личность имеет немаловажное значение.

Линус не случайно является симпатичным парнем, который нравится людям, и которому люди с удовольствием помогают. Также не является совпадением то, что я – очень энергичный экстраверт, которому нравится работать в команде.

Если вы знаете как понравиться людям, это очень сильно поможет вам в разработке модели в стиле базара.

10. Социальный контекст открытых программ

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

18. Чтобы решить интересную проблему, найдите проблему которая вас заинтересует. Это произошло с Карлом Харрисом и его родовым popclient'ом, это произошло со мной и fetchmail'ом. В этом нет ничего нового, гораздо интереснее другое. История с Linux'ом и fetchmail'ом указывает на следующую стадию в эволюции программного обеспечения – активное сообщество пользователей и разработчиков.

В «The Mythical Man-Month» Фред Брукс рассматривал различные зависимости времени разработки. Он показывает, что сложность проекта и его коммуникационные издержки квадратично зависят от числа разработчиков, в то время как проделанная работа зависит только линейно. Это утверждение называется «закон Брукса», и большинство признает его правильным. Однако, если бы дело было только в законе Брукса, Linux не мог бы существовать.

Пять месяцев назад, Джеральд Венберг в «Психологии программирования» предложил теорию, которую мы можем рассматривать, как жизненную поправку к закону Брукса. Обсуждая «неэгоистичное программирование» (egoless programming), Венберг замечает, что если разработчики не являются безраздельными владельцами исходников программ и приветствуют, когда другие люди помогают искать ошибки и предлагают различные улучшния, программа прогрессирует намного быстрее.

Перейти на страницу:
Комментариев (0)
название