Софтпанорама 1993, No.60(44)  *** FOREWORD ***  Составитель Н.Н.Безруков
************************************************************************

               ----------------------------------------
               #   К О Л О Н К А   Р Е Д А К Т О Р А  #
               ----------------------------------------

                           Уважаемые коллеги !

    Если предположить, что кто-то каждый день в определенный час  разде-
вается, становится в определенную позицию перед кинокамерой и делает один
снимок, и так всю жизнь, то после его смерти об этом человеке имелся  бы
весьма интересный, хотя, наверное, немного жутковатый фильм. Если  пред-
положить, что средняя продолжительность человеческой жизни равна 70  го-
дам, то в фильме было бы примерно 25.5 тыс.кадров. Т.е. при 24 кадрах  в
сек. весь фильм бы занял примерно 18 мин. и за эти 18 мин. перед нами бы
прошла вся человеческая жизнь. Т.е. на наших глазах человек бы рос,  му-
жал, старел, дряхлел...
    Что-то  подобное  я  начал  делать  в  выпуске А бюллетеня в разделе
HISTORY. В нем воспроизводятся выпуски соответствующие месяцу издания  с
интервалом в один  год. Сопоставление двух  выпусков с интервалом  в год
наглядно  показывает  динамику  развития  как программного и аппаратного
обеспечения, так и самого бюллетеня. Получается весьма интересная карти-
на, которая позволяет как бы почувствовать ход истории... Тем более, что
уровень знакомства с  историей у нас  оставляет желать лучшего  и в этом
плане мы действительно "иваны, не помнящие родства" :-(.
    Поэтому, начиная с этого выпуска  в раздел HISTORY я добавил  раздел
"НОСТАЛЬГИЯ",  в  котором  будут  повторно публиковаться статьи, которые
представляют историческую ценность или  даже не потеряли актуальности  и
сегодня, а также программы и исходные тексты, отвечающие упомянутому вы-
ше критерию. В частности в этом выпуске воспроизведена получившая  широ-
кую  известность  среди  программистов,  работающих на ассемблере статья
Александра Дударенко "CS_TSR interface for process communication", в ко-
торой  предложено  использовать  для  этой  цели  прерывание  2fh   (DOS
Multiplexor). Идея вместе  с программой ASCII  даже была украдена  неким
Николаем Заикиным (Nick Zaikin, Jr. Joint Institute for Nuclear Research
[1/93] (Dubna, Moscow region) P.O. Box 79 Head Post Office Moscow 101000
Russia), переведена, переслана в США и опубликована в версии.37 со  сле-
дующей ссылкой:

----------2F8000-----------------------------
INT 2F - ASCII v2.00 - INSTALLATION CHECK
        AX = 8000h
        DS:SI -> 4-byte signature (11h 43h 53h 10h)
Return: AL = status
            01h installed, but signature did not match
            FFh installed, signature matches
                ES:DI -> resident copy of signature (may be followed by data)
Program: ASCII is a popup ASCII table by Nick Zaikin, Jr.
Note:   the interface used by this program appears to be a general-purpose
          interface which may be shared by multiple programs, so other programs
          may also support this call with differing signatures
SeeAlso: AX=8001h"ASCII",AX=8002h"ASCII"

    Более подробно об этой краже расскаживалось в разделе FEEDBACK выпу-
ска 59c (см. заметку Дмитрия Кохманюка), которая также  воспроизводилась
в разделе ERRATUM выпуска 5Ac.
    Так что, как мы видим  использование материалов и идей бюллетеня  не
всегда идет гладко... В данном конкретном случае правду удалось  восста-
новить и  плагиатор Nick  Zaikin убран  из последующих  версий Interrupt
List. Но неприятный  факт имел место  и пятно на  его репутации, конечно
осталось.
    В целом, не только содержание Софтпанорамы, но и контингент  читате-
лей Софтпанорамы безусловно меняется и большинство из тех, кто читает ее
сейчас не читали ее, скажем,  два года назад. Поэтому перепечатки  имеют
смысл не только как демонстрация исторического развития, а и просто  как
метод доступа к  ранее опубликованным материалам,  многие из которых  не
потеряли своей ценности и сегодня.
    В частности, в выпуске С этого номера приведена ретроспективная под-
борка текстовых редакторов, опубликованных с исходниками. Я глубоко убе-
жден, что текстовый редактор это программа которую должен написать  каж-
дый, кто пытается стать системным программистом. Поэтому данная подборка
имеет, на мой взгляд, огромную ценность при обучении (а в наших условиях
это чаще всего самообучение) системному программированию.
    Кроме того, в этой колонке редактора я решил еще раз  воспроизвести
одну из немногих отечественных статей вызвавших, в свое время,  резонанс
на Западе. Это статья покойного академика А.Ершова "Человеческий  фактор
в программировании". Хотя она была опубликована в 1972 г. т.е. на закате
хрущевской оттепели и, кстати,  сначала на английском языке  (фактически
это выступление на каком-то обеде и я сначала познакомился с ним по тек-
сту в Communications of  the ACM и только  через много лет увидел  пере-
вод), а только потом на русском. История появления этой, безусловно  та-
лантливо написанной статьи, достаточно запутана. Например, как ни стран-
но, русский вариант уступал английскому  оригиналу и был очень похож  на
не слишком качественный перевод,  хотя А.Ершов владел английским  далеко
не блестяще (может  академик после обеда  потерял оригинал и  публикация
шла в обратном переводе с английского ;-). Кроме того, для тех кто знает
наш уровень 1972  года, когда в  стране были вообще  считанные экземляры
компьютеров(основными были Минск-22, Минск-32 и БЭСМ6), кажется  неправ-
доподобным, что она  была написана человеком,  жившим в отсталой  стране
развитого социализма. Не исключено, что она является пересказом  талант-
ливого обобщения тех времен на Западе неизвестным автором, каким-то  об-
разом "внесенного  в уши"  академику или  результатом "бартера", скажем,
ящика армянского коньяка на текст речи для упомянутого выше обеда...
    Тем  не  менее,  именно  сейчас  многие положения этой статьи звучат
весьма и  весьма актуально  и сегодня  я искренне  рад, что  мне удалось
вспомнить о ее существовании и сделать читателям этот маленький новогод-
ний подарок. Поскольку более ранний вариант был опубликован в январском
номере 1992 г. в публикуемом ниже тексте мной исправлены некоторые шеро-
ховатости перевода.

3.01.92                                        С уважением   Н.Безруков


Софтпанорама 1992, No.1(25) *** REPRINTS *** Составитель: Н.Н. БЕЗРУКОВ
************************************************************************

                                А.Ершов

                ЧЕЛОВЕЧЕСКИЙ ФАКТОР В ПРОГРАММИРОВАНИИ

    Должен признаться, что когда я получил приглашение выступить на этом
собрании, моим первым  действием было узнать,  кто до меня  удостаивался
аналогичного приглашения. Я нашел в списке предыдущих ораторов трех  пи-
сателей, двух конгрессменов, одного  генерала, но практически ни  одного
представителя  нашей  программистской  профессии.  Наверное, это было не
случайно: быстрое и экстенсивное развитие нашей области неизбежно увели-
чивало число  пограничных столкновений  и связанного  с ними  интереса к
внешнему миру. Однако, по-видимому, не  менее очевидно и то, что  сейчас
для нас нужно не столько глядеться в зеркало общественного мнения,  ско-
лько самим  разобраться в  себе, с  тем чтобы  справиться с рядом весьма
серьезных проблем  нашей профессии.  Во всяком  случае, я  позволил себе
именно с этих позиций предложить вашему вниманию некоторые соображения о
человеческих факторах в программировании.
    Мой исходный тезис состоит в  том, что сейчас для программистов  на-
ступают трудные времена. Объем программ возрастает несоизмеримо по отно-
шению к зарплате. Романтический ореол непостижимости этого занятия, если
он когда-либо и существовал, начинает меркнуть. Так называемые  софтвер-
хаусы тают, как вчерашний снег  на солнце. Будучи самой дефицитной  про-
фессией каких-нибудь семь лет назад, программирование начинает появлять-
ся в  книгах агентств  по занятости.  Оспаривается даже  само стремление
рассматривать программистов как профессионалов особого рода. Главное  же
это то, что вольная братия программистов постепенно попадает под влияние
администраторов и менеджеров, которые стремятся сделать труд программис-
та планируемым, измеряемым, однородным и обезличенным.
    Пожалуйста, не подумайте, что я считаю эту тенденцию неправильной. Я
сам уже давно выступаю перед программистами в качестве администратора  и
вношу свой посильный вклад в индустриализацию их труда.
    С этих позиций должен согласиться, что как профессия  программирова-
ние еще не достигло  своей зрелости. Характерным свидетельством  этому в
течение последних лет была волна мелкого бизнеса, связанного с  софтвер-
хаусами.  Такой  софтверхаус  "сооружался"  в  течение нескольких недель
группой толковых программистов, как правило, покинувших большую  органи-
зацию, в которой они получили начальный опыт. В большинстве случаев  мо-
тивом для такой инициативы была жажда наживы, полудетское желание  изба-
виться от излишней опеки, конечно, в сочетании с некоторой интересной  и
полезной идеей в области разработки софтвера. Однако в этом деле  жизне-
способными оказались лишь такие коллективы, в которых этот  партизанский
дух быстро заменялся режимом экономии, иерархией отношений, жесткой дис-
циплиной, словом, всем тем, что в свое время вытолкнуло их из "родитель-
ского дома". В качестве шутки можно заметить, что вся эта история напоми-
нает сказку о трех поросятах: братья-программисты в конце концов  собра-
лись в  крепком софтверхаусе,  но лишь  после того,  как первые два были
унесены волчьим ветром беспощадной коммерции.
    Таким образом,  подчинение программирования  большому бизнеса  - это
неизбежный факт. Однако  я вижу некоторую  опасность в превращении  про-
граммистов просто в высокооплачиваемый отряд наемных тружеников умствен-
ного труда. Перед лицом этой тенденции программист должен найти  некото-
рую систему внутренних ценностей в своем деле, обладание которой  позво-
лит ему легче ассимилировать индустриальные методы работы, а где надо  -
преодолевать их.
    Мой второй тезис состоит в том, что эта система ценностей в програм-
мировании объективно существует, однако  осознана не до конца,  известна
на всем и  поэтому требует распространения  и защиты. Эта  система имеет
много компонент,  пожалуй, самая  важная из  них -  это профессиональный
статус программиста (надо сказать, что я говорю о программистах в  широ-
ком смысле, причисляя к ним и системных аналитиков), но мне сейчас боль-
ше хочется сказать об  эстетической, или об эмоциональной,  стороне про-
граммирования, причем не только  о том, что вознаграждает  программиста,
когда он выходит со своим продуктом на рынок, но и о том, что составляет
его нравственную опору, когда он остается наедине с программой или маши-
ной.
    Вы, конечно, можете спросить меня, а стоит ли говорить об этом?  От-
вет будет состоять  не только в  том, что программирование  стало сейчас
массовой профессией.
    Мой третий тезис заключается в том, что программирование - это самая
трудная из всех массовых профессий. Ее трудность до сих пор еще ни в ко-
ей мере не признана обществом, она на порядок выше даже таких экзотичес-
ких профессий,  основанных на  гипертрофии врожденных  способностей, как
цирковые артисты и верхолазы.
    Трудность профессии программиста в том, что именно программисты  не-
посредственно "упираются" в пределы человеческого познания в виде  алго-
ритмически неразрешимых проблем и глубоких тайн работы головного мозга.
    Ее трудность также в том, что программист должен обладать способнос-
тью первоклассного математика к абстракции и логическому мышлению в  со-
четании с эдисоновским талантом сооружать все что угодно из нуля и  еди-
ницы. Он должен сочетать аккуратность банковского клерка с  проницатель-
ностью разведчика, фантазию автора детективных романов с трезвой практи-
чностью бизнесмена. А кроме того, программист должен приобщаться к  кор-
поративным интересам,  иметь вкус  к коллективной  работе, понимать цели
работ и многое другое.
    Я знаю, что эти трудности могут быть преодолены только путем большо-
го эмоционального напряжения, требующего от программиста особого самосо-
знания и внутренней позитивной установки. Если когда-либо А.Хейли  напи-
шет роман "Вычислительный центр", вы увидите, что это будет самый  увле-
кательный его бестселлер.
    Мой следующий тезис состоит в том, что понимание или хотя бы  ощуще-
ние эстетической  природы программирования  является не  только одной из
движущих сил программиста, но и  необходимо для тех, кто управляет  про-
граммистами, и в особенности для тех, кто их воспитывает и обучает. Поз-
волю себе перечислить некоторое количество организационных  альтернатив,
или просто трудных вопросов, правильно разрешить которые можно только  с
полным учетом обсуждаемых факторов.
    Возможна и нужна ли организация разработки софтвера по принципу кон-
вейера ?
    Кого и почему труднее найти для реализации софтверного проекта - ру-
ководителя или исполнителя ?
    Как сочетать элитарность системного программирования с его массовос-
тью ?
    Как воспитать программиста  - через мировоззрение  (университет) или
профессиональные навыки (технический институт) ?
    Что такое индивидуальные способности в программировании,  специфичны
ли они и нужны ли они ?
    Можно и нужно ли отделять проектирование большой программы от ее из-
готовления ?
    Эти вопросы являются только частью общей проблемы. Посмотрим  вкрат-
це, как связать поставку этих вопросов с анализом человеческого  фактора
в программировании.
    О конвейере. Я лично считаю конвейер поистине дьявольским  изобрете-
нием. Поднимая продуктивность на небывалый уровень, но в то же время яв-
ляется самым бесчеловечным видом работы из всех мне известных. Конвейер-
ный метод в программировании может либо убить интеллектуальную компонен-
ту в труде  программиста, либо вызвать  неврозы из-за противоречия  меду
монотонностью  в  трудоспособностью  работы.  Представьте себе человека,
обязанного 8 часов в  день, 5 дней в  неделю, 500 недель в  году, решать
одни кроссворды, и вы поймете, что такое программист,  специализирующий-
ся, например на написании редактирующих программ. Одним словом, раскреп-
ление людей по элементарным операциям в многомодульной системе -  далеко
не простая задача.
    О руководителях и  исполнителях. Не торопитесь  ставить руководителя
на первое место, объясняя, что по определению руководителя найти или со-
здать труднее.  Давайте подумаем,  почему сплошь  да рядом  руководитель
проекта предпочитает начинать с молодыми специалистами, кончившими  уни-
верситет два-три года назад, нежели с людьми, чей стаж работы  превышает
пять лет? Но потому ли,  что мы предпочитаем использовать чистый  лист и
пластичность молодого человека, нежели преодолевать пассивное сопротивле-
ние более зрелого и менее ясного для нас 33-летнего главы семейства.  Но
это, в частности, означает, что мы не умеем гармонично развивать профес-
сиональные достоинства исполнителя так, чтобы они не падали с  возрастом
и были бы полезны и для него самого и его настоящих и будущих  начальни-
ков.
    Элитарность  программистов  представляется  мне  очевидной  и в этом
представлении является интереснейшим вызовом человечеству в целом,  при-
чем, надеюсь, этот  вызов будет принят  и преодолен. Эту  мысль я поясню
позже.
    Мировоззрение и профессионализм. Проблема, конечно, не только в том,
чтобы объективно оценить требуемое соотношение кандидатов наук и  дипло-
мированных инженеров,  хотя вокруг  этого возникает  изрядное количество
всем известных кадровых  проблем. суть проблемы  в том, чтобы  признать,
что программирование  требует от  человека несколько  особого взгляда на
мир, его  потребности и  эволюцию, особой  моральной подготовленности  к
своему долгу. Программист - это солдат технической революции и как тако-
вой должен обладать революционным мышлением.
    Теперь я подхожу к тому, чтобы сформулировать центральный тезис моей
речи. Он состоит в  утверждении, что программирование обладает  богатой,
глубокой и  своеобразной эстетикой,  которая лежит  в основе внутреннего
отношения программиста к своей профессии, являясь источником интеллекту-
альной силы,  ярких переживаний  и глубокого  удовлетворения. Корни этой
эстетики лежат  в творческой  природе программирования,  его трудности и
общественной значимости.
    Здесь, прежде чем продолжить  основную мысль, хочу подчеркнуть  важ-
ность внутреннего отношения  человека к своему  делу. Сейчас идет  много
споров о том, является ли программирование специфической профессией. Это
не отвлеченный спор, а дискуссия, результат которой имеет прямые органи-
зационные, юридические и образовательные последствия. Так вот, результат
этого спора меньше всего должен  определяться тем, что будут говорить  о
программировании не сведущие в нем люди, какими бы авторитетом и властью
они ни обладали. Наше собственное самосознание и способность к  корпора-
тивному взаимопониманию - вот что самое главное.
    Выделить эстетическую сущность любого вида профессиональной деятель-
ности очень просто. Она, по всей сути, реализуется в субъективных  кате-
гориях, глубоко сплетается с этическим кодексом профессии, ее  техничес-
ким содержанием и юридическим статусом. Поэтому мое перечисление эстети-
ческих  компонент  программирования  также  будет  носить субъективный и
очень предварительный характер.
    Сначала я сделаю некоторые замечания, отражающие внутреннюю  природу
программирования.
    Творческая и конструктивная природа программирования не требует осо-
бых доказательств. Хочется высказать,  быть может, более спорную  мысль,
что  в  своей  творческой  природе  программирование идет намного дальше
большинства других профессий,  приближаясь к математике  и писательскому
делу. В большинстве других профессий мы лишь "приручаем" силы природы  -
просто "сажаем тигра в бензобак", - используя те или иные физические или
биологические явления, не обязательно постигая их сущность. В программи-
ровании же мы в некотором смысле  идем до конца. Один из тезисов  совре-
менной теории познания "мы знаем это, если можем это  запрограммировать"
очень выпукло характеризует этот максимализм нашей профессии.
    Другим очень важным эстетическим принципом программирования является
его высочайшая требовательность  к законченности продукта.  Конечно, это
характерно для  многих инженерных  профессий. Однако  программирование и
здесь идет дальше. Хотя в мультимиллионных программных конгломератах это
свойство почти исчезает, на уровне индивидуальной работы всегда  сущест-
вует поразительный контраст между почти сделанной и полностью  сделанной
работой. Эта стопроцентность программирования - источник его трудности и
в то же время глубочайшего удовлетворения работающей программой.
    Машина, снабжая программой, ведет себя разумно. Программист является
первым, кто обнаруживает это. Применяя метафору троицы, он ощущает  себя
в этот момент и отцом - создателем программы, и сыном - братом этой  ма-
шины, и носителем святого духа - вложенного в нее интеллекта. Это торже-
ство интеллекта, наверное, самая  сильная и самая специфическая  сторона
программирования.
    В отношении к машине у  честного программиста есть еще одна  особен-
ность. В некотором смысле он относится  к ней как хороший жокей к  своей
лошади. Зная и хорошо понимая возможность машины, он никогда не позволит
себе компенсировать леность ума беззаботной тратой ресурсов ЭВМ. Это чи-
сто эстетическое отношение к делу является самым эффективным предохрани-
телем против бездумной "пессимизации" софтвера, которая хотя и не вызывает
особых возражений у компаний, продающих машинное время, но на деле  при-
водит к надувательству покупателя или потере эффективности.
    Другую часть эстетической сущности программирования составляют такие
его компоненты, которые связаны  с социальной или общественной  функцией
программирования. Всякий раз  когда мы рассматриваем  социальное явление
большого масштаба (а появление  и использование ЭВМ безусловно  является
таковым), мы должны поискать некоторые широкие исторические аналоги, ко-
торые могут дать какую-то опору для экстраполяции и предвидения. О  том,
что ЭВМ принесли с собой техническую революцию и связанную с ней индуст-
риализацию умственного труда,  я уже говорил.  Мне хочется провести  еще
одну аналогию, которая имеет более прямое отношение к профессии програм-
миста. Разработка и распространение софтвера, мне кажется, во многом на-
поминает то,  что произошло  в результате  появления книгопечатания. Как
книги накапливают  внешний образ  мира в  глазах их  авторов и позволяют
воспроизвести процесс его познания, так и программы и банки данных нака-
пливают информационную и операционную модели мира и позволяют не  только
воспроизводить, но и предсказывать его эволюцию, давая тем самым небыва-
лую власть над природой.
    Быть хорошим  программистом -  это сейчас  такая же  привилегия, как
быть грамотным человеком в ХVI веке. Эта привилегия дает право  програм-
мисту ожидать аналогичного признания  и уважения со стороны  общества. К
сожалению, эти ожидания не  всегда оправдываются. Хочу только  заметить,
что осуществление этого признания требует работы с обеих сторон. В част-
ности, для программиста необходимо следование одному этическому  принци-
пу, который  носит общий  характер для  всякого профессионала,  но имеет
специальную интерпретацию для программиста. Чисто логически имеют  место
три варианта: работа ради работы; работа ради денег; работа ради цели.
    В системе координат программиста  первые два мотива стоят  на первом
плане, хотя в абсолютной  системе координат имеет значение  лишь третье.
Потому я хочу сказать, что программист сможет достичь полной гармонии  с
обществом только в  том случае, если  лояльность той цели,  в достижении
которой его программа является лишь частью, станет его внутренней  уста-
новкой.
    Говоря об  общественной функции  программирования, не  могу не заме-
тить, что на пути к реализации этой функции лежит одна нерешенная техни-
ческая проблема - обеспечение аккумулятивного эффекта  программирования.
Это очень сложная, но абсолютно необходимая для решения проблема. Спектр
мнений о ней - бесконечен. Одни говорят, что сейчас работают только счи-
танные проценты составленных программ, другие считают, что ОС/360 -  это
уже практически бессмертный комплекс  программ. Возвращаясь к теме  моей
речи, хочу сказать, что предоставление программисту перспективы длитель-
ного и стабильного использования его продукта окажет решающее  воздейст-
вие на его профессиональное самосознание.
    Позвольте теперь с позиций  только что сделанных утверждений  завер-
шить обсуждение ранее перечисленных альтернатив и трудных проблем.
    Об индивидуальных способностях в программировании. Нам необходим об-
раз идеального программиста. Конечно, это будет мифическая личность.  Но
кто сказал, что нам  не нужны мифы и  сказки о программистах? Каждый  из
нас должен хоть раз в жизни видеть или хотя бы слышать о чудо-программи-
сте, из программы которого нельзя  убрать ни одной команды, или  который
пишет тысячу команд в день,  или обнаруживает ошибку при исходном  шансе
один к миллиону и т.д. Человеку свойственно искать ориентиры и  примеры.
Именно с этих позиций хочу внести свой вклад в спор о пресловутых  "при-
мадоннах" в коллективах программистов. Объявлять их нежелательными - это
по крайней мере близорукость или зависть к их исключительным  качествам.
Мне посчастливилось в жизни встретить несколько таких примадонн от  про-
граммирования, которые при всей их индивидуальности и даже экстравагант-
ности вносили неоценимый вклад  в работу коллектива, особенно  в трудных
ситуациях. Так что я решительно  стою за признание и полный  учет весьма
широкого диапазона в индивидуальных способностях к программированию.
    О разделении проектирования и изготовления софтвера. Налицо  двойст-
венное отношение к этому вопросу. Руководители, ответственные за  долго-
временные проекты, и многие другие ищут пути к формализации этапов  раз-
работки и передачи проекта из одних рук в другие. В то же время само де-
ло отчаянно сопротивляется такому  разделению. Я хочу сказать,  что пра-
вильное решение этого вопроса невозможно без учета человеческого фактора
и эстетической потребности, препятствующей тому, чтобы заниматься реали-
зацией чужих идей или не  видеть самому овеществления своей идеи.  Отда-
вать технический проект в чужие руки  - то же самое, что посылать  своих
детей в интернат, что хотя и бывает необходимо, но чревато потерями.
    В заключение хочу вернуться к тезису об элитарности программирования
и о его будущем. Моя апологетика на первый взгляд подчеркивала  исключи-
тельный, особый характер программирования и его предельные требования  к
человеческим возможностям. Эта требовательность и образует тот самый вы-
зов человеку, о котором я говорил  вначале. Когда я был последний раз  в
Соединенных Штатах в 1970 г., на меня произвели большое впечатление  но-
вые идеи профессоров Массачусетского технологического института  Марвина
Минского и Самюэля Пейперта об  обучении детей. Они выбросили в  корзину
ходячее представление, что  дети учатся бессознательно  методом подража-
ния. Они доказывают, что человек чему-то научается только в том  случае,
если у него в голове складывается блок-схема действия, выделены  подпро-
граммы и приложены информационные связи. Профессор Пейперт навсегда  об-
ратил меня  в свою  веру на  примере жонглирования  двумя мячами, когда,
апеллируя к моим  способностям программиста, он  за десять минут  научил
меня тому, чего я сам не сделал бы и за несколько часов.
    Таким образом, человек неизмеримо усилит свой интеллект, если сдела-
ет частью своей натуры способность планировать собственные действия, вы-
рабатывать общие правила и  способ их применения к  конкретной ситуации,
организовывать эти правила в  осознанную и выразимую структуру,  - одним
словом, сделается программистом.
    Когда-то возможность читать и писать считалась божьим даром,  уделом
избранных. Сейчас в эпоху грамотности, на что потребовалось 1000 лет, мы
выделяем новую избранную категорию людей, которые становятся посредника-
ми между человечеством и информационной моделью мира, упрятанной в маши-
ны. Сделав искусство программирования общим достоянием, мы лишимся своей
элитарной исключительности перед лицом повзрослевшего человечества.  Это
ли не высший эстетический идеал для нашей профессии.
    Я назвал ряд актуальных проблем, в том числе связанных с  человечес-
ким фактором в программировании. Я не назвал, пожалуй, самой главной. Мы
сейчас ненасытно вербуем молодежь в программисты, обещая им златые горы.
Однако поколения людей меняются значительно медленнее, чем поколения ма-
шин. Почитайте рекламы технических  журналов за последние 10  лет. Слова
"революция", "Новое поколение" появляются там с неимоверной частотой.  Я
хотел бы спросить авторов этих реклам, а знают ли они, как сделать, что-
бы программист в возрасте свыше 50 лет был бы не меньше полезен ему, чем
30-летний. Через 30 лет у  нас таких программистов будет миллион.  Пожа-
луй, честно будет сказать, что сейчас у нас нет даже подхода к тому, как
ассимилировать ветеранов  в современных  условиях изменчивости  и неста-
бильности, сделав тем самым профессию программиста пожизненной и  дающей
человеку ощущение социального удовлетворения.

                                          КИБЕРНЕТИКА 1972 No.5 с.95-99
                                          (со стилистическими исправлени-
                                          ями Н.Безрукова)


