В 60-х годах на компьютерах с пакетной обработкой заданий программы на фортране собирались так: сначала копировались колоды перфокарт с нужными функциями и подпрограммами, после чего все они соединялись в необходимом порядке. Процесс этот не обходился без картонных коробок, сортировочных и копировальных аппаратов, а также стягивающих колоды резинок. Похожим образом файлы данных представляли собой колоды перфокарт, завершающиеся специальной комбинацией дырок «конец файла». Чтобы изменить строку кода или запись в файле данных (к примеру, чтобы исправить опечатку), нужно было буквально вытащить карточку из колоды и заменить ее на новую. Все это было не слишком удобно, а кроме того, взаимно несовместимые компиляторы создавали серьезные «торговые барьеры» между вычислительными субкультурами разных машин.
К 70-м годам ситуация значительно упростилась: на терминалах многозадачных мейнфреймов уже можно было использовать простейшие файлообменные системы, диалоговые функции и библиотеки стандартных подпрограмм, а также текстовые редакторы для компоновки и запуска программ (к примеру – на лиспе). Затем локальные сети, Arpanet, а потом и интернет еще более упростили процессы распространения, повторного использования и перекомпоновки кода, создав благодатную почву для развития основанной на сотрудничестве культуры хакеров. Тем временем языки программирования и практика разработки программного обеспечения эволюционировали в сторону создания модульных и компактных программных блоков многократного пользования взамен громоздких, монолитных конструкций прошлого. В частности, языки типа С++ сделали возможным создание программных «объектов» с высочайшей степенью модульности, распространение объектных библиотек и внедрение удобных механизмов вроде наследования, облегчающих модификацию и объединение существующих объектов для создания новых.
Позже, когда сетевые вычислительные среды стали нормой, языки, подобные Java, совместили достоинства модульности с простотой сетевого распространения и способностью моментального запуска практически в любой операционной системе. На техническом уровне ничто больше не сдерживает глобальный свободный обмен программными модулями. Конечно, возможности препятствовать такому обмену имеются до сих пор – это может быть намеренно привнесенная несовместимость или барьеры безопасности против вредоносного кода.
Модульное, настраиваемое и подвижное программное обеспечение дало толчок к развитию различных концепций производства и дистрибуции. Неофордистская индустриальная стратегия – которой придерживается Microsoft и другие крупные разработчики – основана на организованном разделении труда, накоплении корпоративной интеллектуальной собственности, совмещении как можно большего количества функций в одном стандартном продукте, тщательной защите этого продукта (исходный код пользователям недоступен), фирменном брендинге и захвате максимально возможной доли рынка.
Напротив, концепция открытого кода – наиболее ярко проиллюстрированная развитием операционной системы Linux – строится на творческом потенциале и разумном эгоизме пользовательских сообществ, участвующих в создании совместного интеллектуального капитала13
. В такой производственной среде программный код доступен пользователям, которые расширяют и изменяют его согласно своим потребностям и приоритетам, после чего полезные для всех модификации вносятся в исходный продукт.Наиболее радикальной (и на сегодняшний день наименее востребованной – что, впрочем, не лишает ее долгосрочной перспективы) является эволюционная концепция. В процессе так называемой «имитации эволюции» программные модули претерпевают случайные изменения («мутации»), после чего анализируются специализированной программой оценки приспособленности (аналог естественного отбора) и в зависимости от показателей либо выживают и остаются в общем пуле, либо удаляются14
.Все указанные концепции работоспособны в определенных обстоятельствах и могут быть полезны в различных комбинациях и вариантах; объединяет их то, что в качестве активного носителя все они используют модульный, гибкий и подвижный электронный текст.
Переосмысление производства и накопления
Борис Александрович Тураев , Борис Георгиевич Деревенский , Елена Качур , Мария Павловна Згурская , Энтони Холмс
Культурология / Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / История / Детская познавательная и развивающая литература / Словари, справочники / Образование и наука / Словари и Энциклопедии