Очерки информационной технологии.
Г.Р.Громов.
Москва, ИнфоАрт, 1992, 1993.

Персональные вычисления: "свет в конце тоннеля"

После того как в начале 80-х годов миллионы специалистов из различных отраслей народного хозяйства получили в индивидуальное пользование персональные ЭВМ и начали самостоятельно создавать на их базе средства автоматизации, причем в первую очередь именно тех задач, которые долгое время считались с точки зрения традиционной технологии программирования безнадежно "зелеными", положение на мировом рынке прикладных программ резко изменилось.

В 1985 г. суммарный годовой объем продаж программного обеспечения для персональных компьютеров превысил общую стоимость реализуемых на мировом рынке вычислительной техники программ для всех остальных типов ЭВМ, и эта тенденция все еще сохраняется.

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

Быстро растущая вычислительная мощность, а также рост других ресурсов персональных компьютеров позволяют этим машинам "прощать" своим пользователям самые грубые ошибки в эффективности создаваемых программ (оцениваемые по традиционному критерию производительности процессора), "вопиющую" небрежность в использовании адресного пространства ОЗУ (все более часто пользователь персонального компьютера имеет этого "пространства" больше, чем могли иметь в своем распоряжении все пользователи, вместе взятые, на типичном ВЦ коллективного пользования середины 70-х годов).

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

Сформулировать в произвольной форме требования на первый "стартовый" вариант прикладной программы (с  которой начинается  итеративный процесс экспериментального поиска нужного решения задачи автоматизации) самому себе, вероятно, все-таки в большинстве случаев легче, чем объяснять весьма туманный на этой стадии замысел даже коллеге по работе. И уже, очевидно, несоизмеримо легче, чем попытаться письменно гарантированно точно изложить эти далеко еще не сформировавшиеся идеи специалисту из принципиально иного мира (мира формальных алгоритмов), который обычно не понимает (и в большинстве случаев не должен понимать) ни существа задачи, взятой из контекста предметной области, ни языка данной предметной области. Как отмечал на страницах "Datamation" Д. С. Цихритис, профессор "науки об ЭВМ" ("computer science") из университета в Торонто (Канада), "определить, что хочет пользователь, в отличие от того, что он говорит, что он хочет, - это и есть настоящее искусство"[1] [31, с. 202].

Итак, задачу на разработку прикладной программы пользователь персонального компьютера ставит самому себе, причем лишь в той форме, которая позволит ему начать[2] содержательную работу за пультом. Затем уже в процессе разработки программы постановка задачи многократно (итеративно) изменяется, пока не будет найден оптимальный для данной ситуации компромисс между потребностями в  автоматизации производственной задачи, текущим уровнем понимания возможностей ЭВМ в решении данной прикладной задачи, допустимыми затратами времени на работу парапрограммиста над задачами автоматизации (ресурс времени, который он может отдать программированию, вместо того чтобы исполнять свои непосредственные производственные обязанности) и многими другими техническими, алгоритмическими и социально-экономическими факторами, определяющими производственную деятельность на автоматизируемом рабочем месте.

Еще лет 15 назад Б. Байцер следующим образом формулировал общие принципы создания систем автоматизации на базе ЭВМ: "Подавляющее большинство вычислительных комплексов разрабатывается ради того, чтобы прямо или косвенно способствовать повышению эффективности определенной деятельности. Работа архитектора состоит в разработке комплекса аппаратных и программных средств, реального с технической, экономической, функциональной и социальной точек зрения, т.е. такого, который работает, оптимален и жизнеспособен" [3, с. 28].

Из истории техники известно, что в каждый отдельный период было немного архитекторов, которые оказывались в состоянии находить гармоничное решение задач такого уровня сложности. Однако по мере роста областей приложений ЭВМ уже не только численность талантливых архитекторов, но и общее число рядовых исполнителей, профессионально занятых разработкой вычислительных комплексов, оказалось заметно меньше числа ежегодно создаваемых комплексов (см. рис.2.5).

Поэтому на рубеже 80-х годов начал быстро изменяться как характер решения типовых задач автоматизации, так и уровень участия в нем профессиональных исполнителей. Место архитектора при создании наиболее массового варианта систем автоматизации занял его заказчик. Профессиональные исполнители сосредоточили свои усилия на создании "полуфабрикатов" и инструментальных средств, облегчающих конечному пользователю процесс настройки типового универсального комплекса на проблемную область или индивидуальные производственные задачи. "Если раньше мы, так сказать, продавали молотки, гвозди и лесоматериалы, то теперь вынуждены заняться производством полуфабрикатов, - говорит Ст. Гаал, вице-президент по разработке программного обеспечения фирмы Data General Corp., - Причина этого в нехватке программистов во всех (прикладных) секторах" [30].

Как и в прикладном программном обеспечении» создаваемом для ЭВМ других типов, огромное большинство созданных на персональных ЭВМ прикладных про: грамм так никогда и не выходит за пределы рабочего места их создателя. Существенная разница, однако, состоит в том, что завершенная разработкой программа, которая осталась на рабочем столе профессионального прикладного программиста, - омертвленный труд, тогда как программа, созданная парапрограммистом для автоматизации даже выполняемой только им самим производственной деятельности, - средство повышения производительности труда. Причем автоматизируются такими программами обычно наиболее трудно формализуемые, узко индивидуальные фрагменты производственной деятельности, как правило, недоступные для автоматизации готовыми пакетами прикладных программ.

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


[1] В более общем контексте такого рола творческие коллизии объяснял в "Записных книжках" около полувека назад И. Ильф: "Глуховатые, не слушающие друг друга люди. Большая часть времени уходит на улаживание недоразумений, возникающих в самом разговоре, а не из-за принципиальных разногласий".

[2] А. П. Ершов, например, пояснял, что для пользователей персональных ЭВМ характерным является "приоритет действия над планом". Он цитирует в этой связи итальянского специалиста Дж. Аттарди: "Видеть и действовать, а не запоминать и писать" [32. с. 16].


Онлайн-версия CD-ROM приложения к книге Г.Р.Громова
"
От гиперкниги к гипермозгу: информационные технологии
эпохи Интернета. Эссе, диалоги, очерки
."