Софтпанорама 1995, No.1 (55) *** FOREWORD *** Составитель Н.Н.Безруков =================== Copyright 1995, OOO Софтпанорама ======================= ---------------------------------------- # К О Л О Н К А Р Е Д А К Т О Р А # ---------------------------------------- Остановится - оглянуться ! (традиционная январская колонка) Уважаемые коллеги ! Если предположить, что кто-то каждый день в определенный час раздевается, становится в определенную позицию перед кинокамерой и де- лает один снимок, и так всю жизнь, то после его смерти об этом человеке имелся бы весьма интересный, хотя, наверное, немного жутковатый фильм. Если предположить, что средняя продолжительность человеческой жизни равна 70 го- дам, то в фильме было бы примерно 25.5 тыс.кадров. Т.е. при 24 кадрах в сек. весь фильм бы занял примерно 18 мин. и за эти 18 мин. перед нами бы прошла вся человеческая жизнь. Т.е. на наших глазах человек бы рос, мужал, старел, дряхлел... Что-то подобное можно делать не только с человеком, но и с периодическим из- данием, и раздел HISTORY по сути является аналогом приведенного выше мето- да. В этом году в нем будут воспроизводиться некоторые материалы выпусков, отстоящих от данного на два и четыре года. Я настоятельно рекомендую не пренебрегать этим разделом. Для того, чтобы заглянуть вперед, полезно пери- одически оглядываться назад. Сопоставление выпусков с интервалом в два года наглядно показывает динамику развития как программного и аппаратного обес- печения, так и самого бюллетеня. Получается весьма интересная картина, ко- торая позволяет как бы почувствовать ход истории, почувствовать тенден- ции... Тем более, что уровень знакомства с историей у нас оставляет желать лучшего и в этом плане мы действительно "Иваны, не помнящие родства" :-(. Важность понимания истории совсем не очевидна, когда тебе, скажем, 25 лет, однако "ничто не ново под луной" и по-видимому первый, пионерский этап раз- вития программирования позади, хотя темпы развития технологии остаются су- масшедшими. Однако даже минимальное понимание того, что то, что в январе 1994 продавалось за $2500( VL 496dx2/66/256-4-200-acc1M-svga14"0.28) сегод- ня можно купить за $900 снижает нездоровый блеск в глазах при виде P90 :-). Поэтому важно понять, что гонка за последней версий микропроцессора или программы это, пожалуй, не самое разумное поведение и что на смену P90 при- дет P120, а потом и P150. Для сопоставления я приведу несколько заметок из январского номера 1994 года. Они объективно свидетельствуют насколько скро- мнее были наши запросы всего год назад: Не покупайте 386dx40 - вы платите деньги за старье !!! Цена на 386dx40-4-120-SVGA.028 упали ниже $900. Процессоры 486sx33 и 486sx40 вытесняют самую популярную модель компьютеров красной сборки... Большинство пользователей "средней руки" уже сейчас не склонно поку- пать устаревшие модели 386dx40, предпочитая им сопоставимую по цене модель 486sx33 и 486sx40 которые при цене порядка $1000 почти вдвое производительнее. 486dx40-4-170-SVGA.28 в Москве можно купить дешевле $1200. Таким образом компьютеры 386dx40 переходят в класс домашних компьютеров и цена на них к лету может упасть еще на $200. # БНН Летом 1994 года ожидается сильное снижение цен на микропроцессоры 486 фирмы Intel... По мнению ряда наблюдателей цена стандартной конфигурации компьютера на базе 486dx33 может упасть ниже $1000 в результате захвата значи- тельного сегмента рынка процессорами dx3 фирмы IBM. IBM уже опередила Intel в производстве процессоров с утроением частоты и начала поставки первых компьютеров Power PC, которые являются основным конкурентом компьютерам на микропроцессоре Pentium. Фирма Cyrex готовится выпуст- ить свой процессор M1 который также конкурентоспособен с Pentium при более низкой цене. # БНН IDE не хочет умирать. Возможно граница емкости IDE-винчестеров будет ото- двинута за 528M... В настоящее время стандарт IDE ограничивает емкость дисков этого наи- более популярного типа значением 528M. Фирма Seagate предложила произ- водителям винчестеров модифицировать стандарт таким образом, чтобы по- высить максимальную емкость, допускаемую стандартом, до 8.4 гигабайт. Судя по всему новый стандарт IDE-2 будет принят и обеспечит совмести- мость снизу вверх со старым стандартом. # БНН Положение с программным обеспечением еще интереснее. Коммерческой фирме необ- ходимо периодически менять номер версии, чтобы оторваться от конкурентов и увеличить продажи. Нужны ли новые возможности для того или иного приложения это тонкий вопрос. Тут нужно учесть, что ошибки при переходе к новой версии исправляются не всегда, а иногда к старым ошибкам добавляются еще и новые. Как, например, в случае перехода от Winword 2.0 к Winword 6.0. Иногда вооб- ще сама спецификация продукта "плывет", как в случае C++. Неслучайно версии трансляторов с С++, которые осваивались в конце 1994 года сегодня выглядят позавчерашним днем. Например был Borland C++ 3.1, потом появился 4.0, те- перь текущей версией стала 4.5. А разрабатывать серьезный продукт, меняя транслятор каждые полгода это "очень нервно". Так может не тем путем идут товарищи и там где некритично, можно использовать более стабильный язык. Аналогично, хотя после FoxPro 2.5 в 1994 году появился FoxPro 2.6 и бета версия 3.0 версия 2.0 еще остается конкурентоспособной. Да что там 2.0. Сейчас, например, использование "ископаемой" версии Foxbase 2.11 приобрета- ет новый смысл, поскольку, это очень компактная программа, которая много чего умеет делать. Например, программируя на REXX в OS/2 можно использовать Foxbase 2.11 просто как встроенную функцию (и действительно по объему Foxbase 2.11 меньше нынешних DLL), генерируя некоторые простые программы динамически и обрабатывая результаты в REXX. В ряде случаев это более про- стое решение, чем скажем использование OLE из Visual Basic. Т.е. не всегда и не всем нужна последняя версия, а если подумать, часто обойтись предпо- следней или хотя бы менять версии через раз, пропуская, скажем, четные :-). Вообще работа с предпоследними или даже предпредпоследними версиями программ- ного и аппаратного обеспечения это при нынешних темпах развития программно- го обеспечения является на мой взгляд довольно разумной стратегией позволя- ющей сэкономить время и силы. Устаревшие версии уценяются до уровня Shareware. Т.е. качественный продукт можно купить почти даром, часто за $10-$15. При этом ошибки выявлены, патчи доступны, статей и книг даже в наших условиях существенно больше (и кстати книги тоже дешевле, тех, кото- рые описывают последние версии), ну а если чего-то не хватает, так может и не надо, все равно всех возможностей пакета никто не использует. И, нако- нец, этот более ранняя версия обычно быстрее работает и занимает меньше ме- ста на диске. Поэтому остановиться, оглянуться часто бывает очень полезно и в этом плане я хотел бы еще раз посоветовать не игнорировать раздел HISTORY. Поскольку аудитория бюллетеня меняется, по сложившейся традиции в этой колон- ке редактора воспроизводится одна из немногих отечественных статей вызвав- ших, в свое время, резонанс на Западе. Это статья покойного академика А.Ершова "Человеческий фактор в программировании". Хотя она была опублико- вана в 1972 г. т.е. на закате хрущевской оттепели и, кстати, сначала на ан- глийском языке (фактически это выступление на каком-то обеде и я сначала познакомился с ним по тексту в Communications of the ACM и только через много лет увидел перевод), а только потом на русском. История появления этой, безусловно талантливо написанной статьи, достаточно загадочна. Напри- мер, как ни странно, русский вариант уступал английскому оригиналу и был очень похож на некачественный перевод, хотя А.Ершов владел английским дале- ко не блестяще (может академик после обеда потерял оригинал и публикация шла в обратном переводе с английского ;-). Кроме того, для тех кто знает наш уровень 1972 года, когда в стране были вообще считанные экземпляры ком- пьютеров(основными были Минск-22, Минск-32 и БЭСМ6), кажется неправдоподоб- ным, что она была написана человеком, жившим в отсталой стране развитого социализма. Не исключено, что она является пересказом талантливого обобще- ния тех времен на Западе неизвестным автором, каким-то образом "внесенного в уши" академику или результатом "бартера", скажем, ящика армянского конья- ка на текст речи для упомянутого выше обеда... Тем не менее, именно сейчас многие положения этой статьи до сих пор звучат удивительно актуально и сегодня я искренне рад, что мне удалось вспомнить о ее существовании и сделать новым читателям бюллетеня этот маленький нового- дний подарок. Я надеюсь, что старые читателя меня извинят. Поскольку как я уже указывал, статья в Кибернетике представляла собой не слишком качест- венный перевод с английского (текст этой статьи был опубликован в январском номере Софтпанорамы за 1992 г.) в публикуемой ниже версии мной исправлены некоторые шероховатости перевода. 11.01.95 С уважением Н.Безруков Софтпанорама 1992, No.1(25) *** REPRINTS *** Составитель: Н.Н. БЕЗРУКОВ ************************************************************************ А.Ершов ЧЕЛОВЕЧЕСКИЙ ФАКТОР В ПРОГРАММИРОВАНИИ Должен признаться, что когда я получил приглашение выступить на этом собра- нии, моим первым действием было узнать, кто до меня удостаивался аналогич- ного приглашения. Я нашел в списке предыдущих ораторов трех писателей, двух конгрессменов, одного генерала, но практически ни одного представителя на- шей программистской профессии. Наверное, это было не случайно: быстрое и экстенсивное развитие нашей области неизбежно увеличивало число пограничных столкновений и связанного с ними интереса к внешнему миру. Однако, по-види- мому, не менее очевидно и то, что сейчас для нас нужно не столько глядеться в зеркало общественного мнения, сколько самим разобраться в себе, с тем чтобы справиться с рядом весьма серьезных проблем нашей профессии. Во вся- ком случае, я позволил себе именно с этих позиций предложить вашему внима- нию некоторые соображения о человеческих факторах в программировании. Мой исходный тезис состоит в том, что сейчас для программистов наступают тру- дные времена. Объем программ возрастает несоизмеримо по отношению к зарпла- те. Романтический ореол непостижимости этого занятия, если он когда-либо и существовал, начинает меркнуть. Так называемые софтверхаусы тают, как вче- рашний снег на солнце. Будучи самой дефицитной профессией каких-нибудь семь лет назад, программирование начинает появляться в книгах агентств по заня- тости. Оспаривается даже само стремление рассматривать программистов как профессионалов особого рода. Главное же это то, что вольная братия програм- мистов постепенно попадает под влияние администраторов и менеджеров, кото- рые стремятся сделать труд программиста планируемым, измеряемым, однородным и обезличенным. Пожалуйста, не подумайте, что я считаю эту тенденцию неправильной. Я сам уже давно выступаю перед программистами в качестве администратора и вношу свой посильный вклад в индустриализацию их труда. С этих позиций должен согласиться, что как профессия программирование еще не достигло своей зрелости. Характерным свидетельством этому в течение по- следних лет была волна мелкого бизнеса, связанного с софтверхаусами. Такой софтверхаус "сооружался" в течение нескольких недель группой толковых про- граммистов, как правило, покинувших большую организацию, в которой они по- лучили начальный опыт. В большинстве случаев мотивом для такой инициативы была жажда наживы, полудетское желание избавиться от излишней опеки, конеч- но, в сочетании с некоторой интересной и полезной идеей в области разработ- ки софтвера. Однако в этом деле жизнеспособными оказались лишь такие колле- ктивы, в которых этот партизанский дух быстро заменялся режимом экономии, иерархией отношений, жесткой дисциплиной, словом, всем тем, что в свое вре- мя вытолкнуло их из "родительского дома". В качестве шутки можно заметить, что вся эта история напоминает сказку о трех поросятах: братья-программисты в конце концов собрались в крепком софтверхаусе, но лишь после того, как первые два были унесены волчьим ветром беспощадной коммерции. Таким образом, подчинение программирования большому бизнеса - это неизбеж- ный факт. Однако я вижу некоторую опасность в превращении программистов просто в высокооплачиваемый отряд наемных тружеников умственного труда. Пе- ред лицом этой тенденции программист должен найти некоторую систему внут- ренних ценностей в своем деле, обладание которой позволит ему легче ассими- лировать индустриальные методы работы, а где надо - преодолевать их. Мой второй тезис состоит в том, что эта система ценностей в программировании объективно существует, однако осознана не до конца, известна на всем и по- этому требует распространения и защиты. Эта система имеет много компонент, пожалуй, самая важная из них - это профессиональный статус программиста (надо сказать, что я говорю о программистах в широком смысле, причисляя к ним и системных аналитиков), но мне сейчас больше хочется сказать об эсте- тической, или об эмоциональной, стороне программирования, причем не только о том, что вознаграждает программиста, когда он выходит со своим продуктом на рынок, но и о том, что составляет его нравственную опору, когда он оста- ется наедине с программой или машиной. Вы, конечно, можете спросить меня, а стоит ли говорить об этом? Ответ будет состоять не только в том, что программирование стало сейчас массовой про- фессией. Мой третий тезис заключается в том, что программирование - это самая трудная из всех массовых профессий. Ее трудность до сих пор еще ни в коей мере не признана обществом, она на порядок выше даже таких экзотических профессий, основанных на гипертрофии врожденных способностей, как цирковые артисты и верхолазы. Трудность профессии программиста в том, что именно программисты непосредст- венно "упираются" в пределы человеческого познания в виде алгоритмически неразрешимых проблем и глубоких тайн работы головного мозга. Ее трудность также в том, что программист должен обладать способностью пер- воклассного математика к абстракции и логическому мышлению в сочетании с эдисоновским талантом сооружать все что угодно из нуля и единицы. Он должен сочетать аккуратность банковского клерка с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью бизнесмена. А кроме того, программист должен приобщаться к корпоративным интересам, иметь вкус к коллективной работе, понимать цели работ и многое другое. Я знаю, что эти трудности могут быть преодолены только путем большого эмо- ционального напряжения, требующего от программиста особого самосознания и внутренней позитивной установки. Если когда-либо А.Хейли напишет роман "Вы- числительный центр", вы увидите, что это будет самый увлекательный его бестселлер. Мой следующий тезис состоит в том, что понимание или хотя бы ощущение эстети- ческой природы программирования является не только одной из движущих сил программиста, но и необходимо для тех, кто управляет программистами, и в особенности для тех, кто их воспитывает и обучает. Позволю себе перечислить некоторое количество организационных альтернатив, или просто трудных вопро- сов, правильно разрешить которые можно только с полным учетом обсуждаемых факторов: Возможна и нужна ли организация разработки софтвера по принципу конвейера ? Кого и почему труднее найти для реализации софтверного проекта - руководи- теля или исполнителя ? Как сочетать элитарность системного программирования с его массовостью ? Как воспитать программиста - через мировоззрение (университет) или профес- сиональные навыки (технический институт) ? Что такое индивидуальные способности в программировании, специфичны ли они и нужны ли они ? Можно и нужно ли отделять проектирование большой программы от ее изготовле- ния ? Эти вопросы являются только частью общей проблемы. Посмотрим вкратце, как связать поставку этих вопросов с анализом человеческого фактора в програм- мировании. О конвейере. Я лично считаю конвейер поистине дьявольским изобретением. Под- нимая продуктивность на небывалый уровень, но в то же время является самым бесчеловечным видом работы из всех мне известных. Конвейерный метод в про- граммировании может либо убить интеллектуальную компоненту в труде програм- миста, либо вызвать неврозы из-за противоречия меду монотонностью в трудо- способностью работы. Представьте себе человека, обязанного 8 часов в день, 5 дней в неделю, 500 недель в году, решать одни кроссворды, и вы поймете, что такое программист, специализирующийся, например на написании редактиру- ющих программ. Одним словом, раскрепление людей по элементарным операциям в многомодульной системе - далеко не простая задача. О руководителях и исполнителях. Не торопитесь ставить руководителя на первое место, объясняя, что по определению руководителя найти или создать труднее. Давайте подумаем, почему сплошь да рядом руководитель проекта предпочитает начинать с молодыми специалистами, кончившими университет два-три года на- зад, нежели с людьми, чей стаж работы превышает пять лет? Но потому ли, что мы предпочитаем использовать чистый лист и пластичность молодого человека, нежели преодолевать пассивное сопротивление более зрелого и менее ясного для нас 33-летнего главы семейства. Но это, в частности, означает, что мы не умеем гармонично развивать профессиональные достоинства исполнителя так, чтобы они не падали с возрастом и были бы полезны и для него самого и его настоящих и будущих начальников. Элитарность программистов представляется мне очевидной и в этом представле- нии является интереснейшим вызовом человечеству в целом, причем, надеюсь, этот вызов будет принят и преодолен. Эту мысль я поясню позже. Мировоззрение и профессионализм. Проблема, конечно, не только в том, чтобы объективно оценить требуемое соотношение кандидатов наук и дипломированных инженеров, хотя вокруг этого возникает изрядное количество всем известных кадровых проблем. Суть проблемы в том, чтобы признать, что программирование требует от человека несколько особого взгляда на мир, его потребности и эволюцию, особой моральной подготовленности к своему долгу. Программист - это солдат технической революции и как таковой должен обладать революцион- ным мышлением. Теперь я подхожу к тому, чтобы сформулировать центральный тезис моей речи. Он состоит в утверждении, что программирование обладает богатой, глубокой и своеобразной эстетикой, которая лежит в основе внутреннего отношения про- граммиста к своей профессии, являясь источником интеллектуальной силы, яр- ких переживаний и глубокого удовлетворения. Корни этой эстетики лежат в творческой природе программирования, его трудности и общественной значимос- ти. Здесь, прежде чем продолжить основную мысль, хочу подчеркнуть важность вну- треннего отношения человека к своему делу. Сейчас идет много споров о том, является ли программирование специфической профессией. Это не отвлеченный спор, а дискуссия, результат которой имеет прямые организационные, юридиче- ские и образовательные последствия. Так вот, результат этого спора меньше всего должен определяться тем, что будут говорить о программировании не сведущие в нем люди, какими бы авторитетом и властью они ни обладали. Наше собственное самосознание и способность к корпоративному взаимопониманию - вот что самое главное. Выделить эстетическую сущность любого вида профессиональной деятельности очень просто. Она, по всей сути, реализуется в субъективных категориях, глубоко сплетается с этическим кодексом профессии, ее техническим содержа- нием и юридическим статусом. Поэтому мое перечисление эстетических компо- нент программирования также будет носить субъективный и очень предваритель- ный характер. Сначала я сделаю некоторые замечания, отражающие внутреннюю природу про- граммирования. Творческая и конструктивная природа программирования не требует особых дока- зательств. Хочется высказать, быть может, более спорную мысль, что в своей творческой природе программирование идет намного дальше большинства других профессий, приближаясь к математике и писательскому делу. В большинстве других профессий мы лишь "приручаем" силы природы - просто "сажаем тигра в бензобак", - используя те или иные физические или биологические явления, не обязательно постигая их сущность. В программировании же мы в некотором смы- сле идем до конца. Один из тезисов современной теории познания "мы знаем это, если можем это запрограммировать" очень выпукло характеризует этот ма- ксимализм нашей профессии. Другим очень важным эстетическим принципом программирования является его высочайшая требовательность к законченности продукта. Конечно, это харак- терно для многих инженерных профессий. Однако программирование и здесь идет дальше. Хотя в мультимиллионных программных конгломератах это свойство поч- ти исчезает, на уровне индивидуальной работы всегда существует поразитель- ный контраст между почти сделанной и полностью сделанной работой. Эта сто- процентность программирования - источник его трудности и в то же время глу- бочайшего удовлетворения работающей программой. Машина, снабжая программой, ведет себя разумно. Программист является пер- вым, кто обнаруживает это. Применяя метафору троицы, он ощущает себя в этот момент и отцом - создателем программы, и сыном - братом этой машины, и но- сителем святого духа - вложенного в нее интеллекта. Это торжество интеллек- та, наверное, самая сильная и самая специфическая сторона программирования. В отношении к машине у честного программиста есть еще одна особенность. В некотором смысле он относится к ней как хороший жокей к своей лошади. Зная и хорошо понимая возможность машины, он никогда не позволит себе компенси- ровать леность ума беззаботной тратой ресурсов ЭВМ. Это чисто эстетическое отношение к делу является самым эффективным предохранителем против бездум- ной "пессимизации" софтвера, которая хотя и не вызывает особых возражений у компаний, продающих машинное время, но на деле приводит к надувательству покупателя или потере эффективности. Другую часть эстетической сущности программирования составляют такие его ком- поненты, которые связаны с социальной или общественной функцией программи- рования. Всякий раз когда мы рассматриваем социальное явление большого мас- штаба (а появление и использование ЭВМ безусловно является таковым), мы должны поискать некоторые широкие исторические аналоги, которые могут дать какую-то опору для экстраполяции и предвидения. О том, что ЭВМ принесли с собой техническую революцию и связанную с ней индустриализацию умственного труда, я уже говорил. Мне хочется провести еще одну аналогию, которая имеет более прямое отношение к профессии программиста. Разработка и распростране- ние софтвера, мне кажется, во многом напоминает то, что произошло в резуль- тате появления книгопечатания. Как книги накапливают внешний образ мира в глазах их авторов и позволяют воспроизвести процесс его познания, так и программы и банки данных накапливают информационную и операционную модели мира и позволяют не только воспроизводить, но и предсказывать его эволюцию, давая тем самым небывалую власть над природой. Быть хорошим программистом - это сейчас такая же привилегия, как быть грамот- ным человеком в ХVI веке. Эта привилегия дает право программисту ожидать аналогичного признания и уважения со стороны общества. К сожалению, эти ожидания не всегда оправдываются. Хочу только заметить, что осуществление этого признания требует работы с обеих сторон. В частности, для программис- та необходимо следование одному этическому принципу, который носит общий характер для всякого профессионала, но имеет специальную интерпретацию для программиста. Чисто логически имеют место три варианта: работа ради работы; работа ради денег; работа ради цели. В системе координат программиста первые два мотива стоят на первом плане, хотя в абсолютной системе координат имеет значение лишь третье. Потому я хочу сказать, что программист сможет достичь полной гармонии с обществом только в том случае, если лояльность той цели, в достижении которой его программа является лишь частью, станет его внутренней установкой. Говоря об общественной функции программирования, не могу не заметить, что на пути к реализации этой функции лежит одна нерешенная техническая проблема - обеспечение аккумулятивного эффекта программирования. Это очень сложная, но абсолютно необходимая для решения проблема. Спектр мнений о ней - бесконе- чен. Одни говорят, что сейчас работают только считанные проценты составлен- ных программ, другие считают, что OS/360 - это уже практически бессмертный комплекс программ. Возвращаясь к теме моей речи, хочу сказать, что предо- ставление программисту перспективы длительного и стабильного использования его продукта окажет решающее воздействие на его профессиональное самосозна- ние. Позвольте теперь с позиций только что сделанных утверждений завершить обсу- ждение ранее перечисленных альтернатив и трудных проблем. Об индивидуальных способностях в программировании. Нам необходим образ иде- ального программиста. Конечно, это будет мифическая личность. Но кто ска- зал, что нам не нужны мифы и сказки о программистах? Каждый из нас должен хоть раз в жизни видеть или хотя бы слышать о чудо-программисте, из про- граммы которого нельзя убрать ни одной команды, или который пишет тысячу команд в день, или обнаруживает ошибку при исходном шансе один к миллиону и т.д. Человеку свойственно искать ориентиры и примеры. Именно с этих позиций хочу внести свой вклад в спор о пресловутых "примадоннах" в коллективах программистов. Объявлять их нежелательными - это по крайней мере близору- кость или зависть к их исключительным качествам. Мне посчастливилось в жиз- ни встретить несколько таких примадонн от программирования, которые при всей их индивидуальности и даже экстравагантности вносили неоценимый вклад в работу коллектива, особенно в трудных ситуациях. Так что я решительно стою за признание и полный учет весьма широкого диапазона в индивидуальных способностях к программированию. О разделении проектирования и изготовления софтвера. Налицо двойственное от- ношение к этому вопросу. Руководители, ответственные за долговременные про- екты, и многие другие ищут пути к формализации этапов разработки и передачи проекта из одних рук в другие. В то же время само дело отчаянно сопротивля- ется такому разделению. Я хочу сказать, что правильное решение этого вопро- са невозможно без учета человеческого фактора и эстетической потребности, препятствующей тому, чтобы заниматься реализацией чужих идей или не видеть самому овеществления своей идеи. Отдавать технический проект в чужие руки - то же самое, что посылать своих детей в интернат, что хотя и бывает необхо- димо, но чревато потерями. В заключение хочу вернуться к тезису об элитарности программирования и о его будущем. Моя апологетика на первый взгляд подчеркивала исключительный, осо- бый характер программирования и его предельные требования к человеческим возможностям. Эта требовательность и образует тот самый вызов человеку, о котором я говорил вначале. Когда я был последний раз в Соединенных Штатах в 1970 г., на меня произвели большое впечатление новые идеи профессоров Мас- сачусетского технологического института Марвина Минского и Самюэля Пейперта об обучении детей. Они выбросили в корзину ходячее представление, что дети учатся бессознательно методом подражания. Они доказывают, что человек чему- то научается только в том случае, если у него в голове складывается блок- схема действия, выделены подпрограммы и приложены информационные связи. Профессор Пейперт навсегда обратил меня в свою веру на примере жонглирова- ния двумя мячами, когда, апеллируя к моим способностям программиста, он за десять минут научил меня тому, чего я сам не сделал бы и за несколько ча- сов. Таким образом, человек неизмеримо усилит свой интеллект, если сделает час- тью своей натуры способность планировать собственные действия, вырабатывать общие правила и способ их применения к конкретной ситуации, организовывать эти правила в осознанную и выразимую структуру, - одним словом, сделается программистом. Когда-то возможность читать и писать считалась божьим даром, уделом избран- ных. Сейчас в эпоху грамотности, на что потребовалось 1000 лет, мы выделяем новую избранную категорию людей, которые становятся посредниками между че- ловечеством и информационной моделью мира, упрятанной в машины. Сделав ис- кусство программирования общим достоянием, мы лишимся своей элитарной исключительности перед лицом повзрослевшего человечества. Это ли не высший эстетический идеал для нашей профессии. Я назвал ряд актуальных проблем, в том числе связанных с человеческим факто- ром в программировании. Я не назвал, пожалуй, самой главной. Мы сейчас не- насытно вербуем молодежь в программисты, обещая им златые горы. Однако по- коления людей меняются значительно медленнее, чем поколения машин. Почитай- те рекламы технических журналов за последние 10 лет. Слова "революция", "Новое поколение" появляются там с неимоверной частотой. Я хотел бы спро- сить авторов этих реклам, а знают ли они, как сделать, чтобы программист в возрасте свыше 50 лет был бы не меньше полезен ему, чем 30-летний. Через 30 лет у нас таких программистов будет миллион. Пожалуй, честно будет сказать, что сейчас у нас нет даже подхода к тому, как ассимилировать ветеранов в современных условиях изменчивости и нестабильности, сделав тем самым про- фессию программиста пожизненной и дающей человеку ощущение социального удо- влетворения. КИБЕРНЕТИКА 1972 No.5 с.95-99 (со стилистическими исправлени- ями Н.Безрукова)