3.2.7 Стиль программирования, модель вычислений, платформа Стиль программирования находится над моделью вычислений, так как
модель вычислений задает набор правил, в рамках которых реализуется тот или
иной стиль. Между решаемой задачей, стилем программирования и моделью
вычислений не должно быть концептуальных противоречий. В противном
случае возникает резкий скачок сложности проектируемой системы,
увеличиваются количество ошибок, сроки выполнения, быстро заканчивается
бюджет проекта. К сожалению, большинство программистов не воспринимает
эту проблем, что обычно приводит к увеличению проектных бюджетов и
огромному количеству ошибок.
В
качестве
примера
нарушения
гармонии
между
стилем
программирования и моделью вычислений можно привести ОС РВ, в которых
искусственно создается потоковая модель вычислений, а в качестве стиля
программирования используется структурное программирование (чаще всего
на языке Си). Аналогичные проблемы есть в современных операционных
системах общего назначения (Microsoft Windows 2000/XP/Vista, Linux,
FreeBSD, Mac OS и т.д.) и в системах программирования для них (Java, C#, C++
и т.д.). В своей статье "Проблемы с потоками" Эдвард Ли подробно освящает
эту проблему [13].
Чтобы избежать противоречий, используют способ проектирования на базе
платформ, в котором каждый слой имеет свою модель вычислений и
гармонично связанный с ним стиль программирования. Каждый слой системы
при этом является фундаментом для последующих слоев и перемешивания
понятий, встречающегося в современных ОС РВ, не происходит [40].