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

ЧЕЛОВЕЧЕСКИЙ ФАКТОР

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

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

Г. Р. Громов

ПРОГРАММИРОВАНИЕ: РЕМЕСЛО, НАУКА, ИСКУССТВО, ТЕХНОЛОГИЯ...

«Микропроцессорные средства и системы» № 1, 1985

  Природа тоже разбита на факультеты, но, к сожалению, иначе, чем университет.

Академический фольклор

Функциональная сложность объектов автоматизации на базе ЭВМ быстро увеличивается с расширением круга приложений информационной технологии. Неизбежным следствием этой тенденции оказывается наблюдаемый в настоящее время сдвиг акцентов в практике программирования с исторически первых проблем логического проектирования и кодирования программ, по точно заданным формальным спецификациям, к проблемам анализа так называемых слабоструктурированных задач, создания принципиально новой технологии программирования для областей приложений с трудноформализуемыми условиями. При этом программирование, как профессиональная деятельность, все дальше эволюционирует за пределы узкого круга точно поставленных задач, которые преобладали в первые десятилетия компьютерной эры и дали повод рассматривать эту область инженерной деятельности как строго формализуемую математическую дисциплину (см., например, Э. Дейкстра «Программирование как математическая дисциплина»,1974).

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

Первые две строчки опубликованного несколько десятилетий назад стихотворения Б. Слуцкого: «Что-то физики в почете. Что-то лирики в загоне» - сразу же стали крылатой фразой, поэтически емко и точно отразив те сдвиги в социальных приоритетах, которые вызвал в послевоенной науке «атомно-кибернетический» бум. Четверть века спустя, уже не только конкурсные комиссии технических вузов, но и независимые эксперты из самых различных стран отмечали, что «тенденция сменила знак». Если в конце 50-х годов в программы гуманитарных факультетов, в том числе и старейших университетов, спешно включались курсы из цикла «физика для поэтов»,  то в наше время раздаются столь же настойчивые призывы к гуманизации инженерного образования.

Еще 20 лет назад смысл последних достижений молекулярной генетики обычно поясняли широкой публике с помощью простой аналогии: «код первичной структуры ДНК играет для функционирования генетического аппарата живого организма ту же роль, что код программы для функционирования ЭВМ». В 1981 г. журнал «Computer & People» опубликовал статью «Техника автоматизации процессов разработки программного обеспечения», автор которой, кроме прочего, разъяснил  читателям популярного компьютерного журнала, что «программное обеспечение играет для машины ту же самую роль, которую ДНК играет для живого организма».

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

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

По-видимому, первым толчком к такому переосмысливанию методологических основ информационной технологии послужил «кризис прикладного программирования», широко дискуссируемый на страницах научной периодики конца 70-х годов. Одна из крайних точек зрения, высказывавшихся в то время, была сформулирована в 1978 г. на страницах журнала «Datamation» Р. Лемосом (Калифорнийский университет, Лос-Анджелес): «Наука об ЭВМ не является и никогда не будет точной наукой, как, например, физика или математика. Эта новая наука значительно ближе к таким гуманитарным наукам, как психология или социология, которые имеют дело со всей сложностью неопределенного по своей сути человеческого бытия».

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

Наука о программах: «квантификация, анализ, синтез»?

 

А это таит опасность гражданском войны между музами.

Ф. Сидни. В защиту поэзии

На заре эры ЭВМ Дж. фон Нейман отмечал, что «многое из опыта нашей работы с искусственными автоматами может быть до некоторой степени1 перенесено на наше понимание естественных организмов». Попытки использовать математические результаты «опыта работы с искусственными автоматами» для разработки абстрактных схем интеллектуального «акта творения» (например, для формализации процесса создания простейших автоматов) восходят к работам Дж. Буля, Лейбница, Декарта и, видимо, далее в глубь веков к Архимеду и эпистемологическим учениям древних греков. Первая волна широкого общественного интереса к этому научному направлению совпала по времени с появлением ЭВМ и была инициирована, как принято считать, выходом в 1948 г. книги Н. Винера «Кибернетика или управление и связь в животном и машине».

После того как с начала 60-х годов миражи «глобальной кибернетизации» начали постепенно рассеиваться, научные исследования двустороннего интеллектуального взаимодействия «человек - ЭВМ» на некоторое время оказались локализованными в небольшом числе разрозненно действующих исследовательских групп, связанных между собой в основном лишь претенциозным термином-лозунгом: «искусственный интеллект». Ренессанс искусственного интеллекта (ИИ) как одного из научных направлений в теории вычислительной техники начался за рубежом в 80-х годах вслед за внезапно пронесшимся над ИИ-лабораториями «золотым дождем» многомиллионных дотаций, вызванным обострением соперничества между США и Японией за первенство в компьютерной технологии 90-х годов (проект создания ЭВМ «пятого поколения»).

К этому времени ряд ИИ-исследовательских коллективов начал эволюционировать в своей практической деятельности за пределы чисто абстрактных упражнений (по «естественно-языковой» тематике, машинному доказательству избранного типа теорем и другим умиротворяюще безысходным, хотя и весьма почтенным занятиям) к конструктивным исследованиям, направленным на создание конкретных проблемно-ориентированных «баз знаний». На этом направлении в конце 70-х годов были получены те первые практически полезные результаты, которые позволили начать в 80-х годах постепенно слой за слоем снимать сложившийся за два десятилетия непроницаемый налет схоластики с «искусственного интеллекта» как научного направления в теории ЭВМ. К настоящему времени в мире действует уже 2-3 десятка практически полезных «экспертных систем» (по некоторым разделам медицины, геологии, химии и другим «трудноформализуемым» областям знаний). Разрабатываются элементы промышленной технологии обработки данных с использованием машинно-экстрагируемых из профессионалов знаний (knowledge engineering). Именно вокруг этих прагматической ориентации научных коллективов и университетских лабораторий начали формироваться специализированные подразделения промышленных предприятий и независимые исследовательские фирмы, занятые поиском областей приложений и коммерческим внедрением компьютерных систем, реализующих принципы «технологии знаний».

Когда продукция какой-либо научной области становится базой для интенсивного развития новой технологии, естественно возникает необходимость существенно более четкой формулировки основных ее научных концепций. Так возникли те известные промышленные отчёты и программные статьи по ИИ, публиковавшиеся в рамках дискуссий об ЭВМ пятого поколения, в которых делались попытки ознакомить профессиональную общественность различных отраслей индустрии ЭВМ с отличительными особенностями избранного научного подхода, которые отделяют в этой области науку от технологии. Резюмируя наиболее общие установки авторов таких публикаций, можно в рамках обсуждаемой темы2 отметить следующее. В настоящее время для широкого развертывания исследований по архитектуре ЭВМ следующих поколений критически важным является итог болезненно протекающего процесса пересмотра основных постулатов науки об ЭВМ. Постулаты эти закладывались при создании первых поколений ЭВМ, которые создавались для обработки чисел (а не символов, образов и т. д.). Иначе и быть не могло. Ведь первые ЭВМ специально разрабатывались для решения ряда конкретных, как правило, математически хорошо поставленных численных задач (расчет баллистических траекторий и т.д.). Однако после того, как за 30 лет бурного развития средств электронной обработки данных основные области приложений ЭВМ ушли далеко за пределы тех реликтовых, чисто вычислительных задач, инерция научного мышления (а она традиционно преодолевается столетиями) все еще вынуждает укладывать быстро растущее многообразие задач реального мира в прокрустово ложе созданной еще в 40-х годах архитектуры «численных машин». Более того, и сегодня нередко можно встретить работы, в которых в качестве универсального критерия для отделения «зерен от плевел» в программировании («научных» методов программирования от «ненаучных») предлагается традиционно парадигма: квантификация, анализ и синтез.

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

"Когда вы в состоянии измерять то, о чем вы говорите, и выражать это в числах значит, вы что-то знаете в данной области; но если вы не можете ни измерить, ни выразить свои знания в числах, то ваши знания по обсуждаемому предмету неудовлетворительны: может быть, это лишь начало познания, первые мысленные наметки..."

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

Нормировщики в программировании

 


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

С. Лем. Звездные дневники

Более полувека назад численность «телефонных барышень» на коммутаторах приближалась к численности профессиональных программистов 70-х годов и продолжала быстро расти. Обеспокоенные эксперты телефонных компаний публиковали устрашающие прогнозы о том, что если наблюдаемая тенденция со хранится, то уже в самом недалеком будущем поголовная мобилизация всех девушек Европы и Северной Америки для работы на коммутаторах телефонных станций не позволит обеспечить приемлемой скорости соединения для десятков миллионов абонентов стремительно растущих телефонных сетей.

Такого рода «прогнозы» до сих пор с неизменным успехом служат для обоснования острой необходимости скорейшего внедрения строго научных методов нормирования и повышения производительности труда в любой бурно растущей отрасли техники. Видимо, и в то время были сторонники такого подхода, которые настаивали на необходимости квантификации артикуляции для девушек, произносивших: «Номер, пожалуйста...»; формальном анализе и синтезе их поведенческих реакций, например, в ответ на неформальное обращение со стороны отдельных абонентов. Насколько далеко продвинулась формальная наука о технике ручной коммутации в повышении производительности труда телефонисток, в какой степени помогли им нормировщики и как все это повлияло на снижение темпов роста их численности, видимо, так никогда уже и не удастся установить, так как к моменту, когда столь остро необходимая для повышения производительности труда при ручной коммутации строго формальная наука была почти создана, представители альтернативной «технологической ветви» создали АТС и передали, таким образом, многотрудную для централизованного решения задачу соединения между собой абонентов телефонных сетей непосредственно в руки самих абонентов — «конечных пользователей» этих сетей.

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

Как подчеркивал в 1978 г. А, П. Ершов, «мы не можем внедрить ЭВМ в повседневную жизнь, выделяя касту жрецов-посредников... Не хватит никаких сил, чтобы снабдить эти миллионы интерфейсов специализированными языками и процессорами». В 1981 г. Дж. Мартин предложил использовать для преодоления «кризиса прикладного программирования» подход, аналогичный тому, который оправдал себя ранее в технике связи: «Разработка прикладных программ без программистов». В настоящее время известны и широко используются различные концепции, используемые для реализации этого подхода, например, в рамках технологии автоформализации профессиональных знаний4.

Об «анатомировании» программ

 

.
...живой предмет желая изучить,
Чтоб ясное о нем познанье получить,
Ученый прежде душу изгоняет,
Затем предмет на части расчленяет
И видит их, да жаль: духовная их связь
Тем временем исчезла, унеслась!

И. Гете, Фауст

 

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

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

«Наше восхищение логикой, - отмечал в этой связи Г. Биркгофф, - не должно приводить нас к недооценке математики других чувств». Создание научных основ «математики 2-го уровня», - или по Г. Биркгоффу - «математики других чувств», ожидает длительных совместных усилий психологов и программистов, инженеров и математиков, физиологов, лингвистов,..., композиторов, художников и поэтов, чтобы в случае успеха, оказать, видимо, наиболее значительное влияние на эффективность процессов автоматизации творческой деятельности человека, рост производительности интеллектуального труда. Это влияние, видимо, будет сопоставимо по масштабам с тем революционизирующим воздействием, которое традиционная математика - «математика 1-го уровня», (основанная на «восхищении логикой») — оказала на развитие точных наук, техники и технологии трех последних столетий.

Возвращаясь к предложенной В.В. Крыловым аналогии, можно было бы отметить, что за минувшие столетия «дозволенного» медицинского анатомирования не удалось пока сколько-нибудь заметно потеснить сферу индивидуального мастерства и искусства в области, которую принято относить к «наукам о врачевании». Возможно упоминаемый автором критерий Хелстеда (или какой-либо иной способ «квантификации») и окажется со временем первым «ртутным градусником» для количественной оценки интегральных характеристик программ, однако известно, что дистанцию от «37,2°С до ... диагноза» врач все еще проходит (если проходит), опираясь отнюдь не только на цифры анализов, а в основном на свои неформальные знания, накопленный опыт, профессиональную и чисто человеческую интуицию. «Совершенно естественно, - утверждал Ж. Адамар, — говорить об уме более интуитивном, когда зона комбинирования идей находится глубоко, и об уме логическом, если эта зона расположена достаточно поверхностно».

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

Творец и продукт творения

 


...я на 85% музыкант, во мне только 15% человека

С. Рахманинов

 

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

Вместе с тем, следует отметить, что программы ЭВМ являются, видимо, одним из наиболее благодарных объектов для такого анализа. Анализ процесса создания программ может быть выполнен по самым различным научным методикам: психологическим, эстетическим, физиологическим, математическим, технологическим и т. д. Редкая возможность комплексного научного анализа такого уровня сложности, которую обеспечивают неизвестная за пределами мира программ полнота и объективность отпечатка в готовом продукте «акта творения», впервые создает предпосылки для объединения традиционно изолированных естественно-научных, гуманитарных и «точных» отраслей знания в уникальную «связку», позволяющую начать процесс покорения «Монблана» современной науки — заложить научные основы анализа интеллектуального творчества. При этом одним из первых возникает вопрос, можно ли уловить какие-либо следы «динамики» процесса творения в «статике» исходного текста программы (как и любого другого завершенного продукта творения).

50 лет назад английский историк и философ Р. Коллингвуд6 следующим образом объяснял, как он вырабатывал у себя аналитический подход к оценке продуктов человеческого интеллекта: «...я научился воспринимать картину не как законченный продукт, выставленный на восхищение ценителям, а как зримое свидетельство попытки решить какую-то живописную задачу, свидетельство, оставшееся после того, как сама эта попытка отошла в прошлое. Я понял (а некоторые критики и эстетики не могут постичь этого до конца своей жизни), что нет законченных «произведений искусств» ... Работа над картиной или рукописью прекращается не потому, что она закончена, а потому, что подошел срок ее отправки, или потому, что издатель требует рукопись, или же потому, что «я сыт по горло» и «не вижу, что еще я могу здесь сделать».

По существу, следуя логике рассуждений Р. Коллингвуда, программист может восстановить реальные причины завершения многих программистских проектов: руководство предприятия больше не дает санкции на очередной перенос срока завершения работы, «хакеру» окончательно надоела игра в эту программу и т. д. Однако если проследить трассу процесса создания произведений искусства обычно бывает очень трудно (если вообще возможно): художник нередко смывает промежуточные варианты, сохраняются далеко не все эскизы; писатели не часто складируют черновики текста (в ожидании своих посмертных академических изданий) и т. д., то общие в технике требования к документации и, в частности, к сопровождению программного продукта вынуждает регистрировать и тщательно хранить все промежуточные варианты и версии, что дает основания будущим исследователям надеяться на возможность реконструировать по этим вехам процесс создания и эволюции программ за цикл их жизни.

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

Какой она будет - «наука о программах»? Трудно, видимо, сегодня обсуждать даже общие контуры этого «голубого храма» науки будущего, давно уже волнующего воображение профессиональных программистов. Однако ясно, что «наука о программах» — это лишь одна из ветвей в общей системе древних и молодых наук о законах интеллектуального мира, неустанно создаваемого человеком.

Статья поступила 15 декабря 1984 г.

 

1. По-видимому, ключ к пониманию этого внешне очевидного замечания заключается именно в том акценте, который тот или иной читатель делает на словах «до некоторой степени».

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

3. G. Walter. Intelligent Supercomputers: The Japanese Computer Sputnik. - Journal of Information & Image Management, 1983, v. 16, 11, p. 18-22

4. Громов Г. Р. Национальные информационные ресурсы: проблемы промышленной эксплуатации. — М.: Наука, 1984, с. 96-150.

5. «Музыку я разъял как труп, поверил я алгеброй гармонию», — пояснял А. С. Пушкин истоки такого подхода.

6. Коллингвуд Р. Дж. Идея истории. Автобиография. - М.: Наука, 1980. - 448 с.