Книга: Искусство программирования для Unix
3.1.9. Входные барьеры для разработчика
3.1.9. Входные барьеры для разработчика
Другой важной характеристикой, по которой различают операционные системы, является совокупность сложностей, препятствующих простым пользователям стать разработчиками. Существует два определяющих фактора. Одним из них является денежная стоимость средств разработки, а другим — затраты времени, необходимые для того, чтобы развить мастерство разработчика. В некоторых средах развиваются также социальные барьеры, однако они обычно являются следствием базовых технологических сложностей, а не первопричиной.
Дорогостоящие инструменты разработки и сложные неясные API-интерфейсы ведут к возникновению небольших элитных культур программирования. В таких культурах программные проекты являются крупными, каковыми они и должны быть, для того чтобы окупить вложения как финансового, так и интеллектуального (человеческого) капитала. Для крупных проектов характерно создание крупных программ (и, как следствие, это часто приводит к большим дорогостоящим провалам).
Недорогие инструменты и простые интерфейсы поддерживают любительское программирование, культуру увлеченных энтузиастов и исследования. Программные проекты могут быть небольшими (часто формальная структура проекта является явно излишней), а провалы не являются катастрофическими. Это меняет стиль разработки кода. Кроме прочих преимуществ, они демонстрируют меньшую склонность к неверным подходам.
Любительское программирование стремится к созданию большого количества небольших программ и сообщества знаний, которое самостоятельно укрепляется и расширяется. В мире дешевого аппаратного обеспечения присутствие или отсутствие такого сообщества становится все более важным фактором, определяющим, будет ли операционная система жизнеспособной в течение длительного времени.
Любительское программирование зародилось в Unix. Одним из новшеств, которое впервые появилось в Unix, была поставка компилятора и инструментов написания сценариев как части стандартного инсталляционного набора, доступного для всех пользователей. Это поддерживало культуру разработки программного обеспечения как хобби, которая охватила множество инсталляций. Множество любителей, писавших код в Unix, не считали свое занятие разработкой кода, они считали его написанием сценариев для автоматизации общих задач или настройкой своей среды.
Для того чтобы разработать систему, полностью противоположную Unix, нужно сделать любительское программирование невозможным.
- 3.1.1. Унифицирующая идея операционной системы
- 3.1.2. Поддержка многозадачности
- 3.1.3. Взаимодействующие процессы
- 3.1.4. Внутренние границы
- 3.1.5. Атрибуты файлов и структуры записи
- 3.1.6. Двоичные форматы файлов
- 3.1.7. Предпочтительный стиль пользовательского интерфейса
- 3.1.8. Предполагаемый потребитель
- 3.1.9. Входные барьеры для разработчика
- Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Договор с разработчиками
- Барьеры на пути подражателей
- Входные и выходные данные
- Глава 32, которую написал Майкл Миджет Как, управляя продажниками, обходить их психологические барьеры
- Карьера разработчика программного обеспечения
- Барьеры и порядок выполнения
- 19.2. Лучшие практические приемы при взаимодействии с разработчиками открытого исходного кода
- Входные данные
- Жизнь разработчика в тестировании
- Пример работы разработчика в тестировании
- Исключения разработчика