Донской: О прошлом, настоящем и будущем программирования в России

Донской: О прошлом, настоящем и будущем программирования в России

В стране и миреНаука и техника
Михаилу Донскому 08.08.08 исполнилось шестьдесят.

Его биография совпадает с историей вычислительной техники, а трудовая биография – с историей российской IT-индустрии. Самое известное его достижение – победа на первом чемпионате мира среди шахматных программ (1974). О других системах, которые он создает, по сей день оставаясь одним из лучших специалистов в индустрии, публике известно меньше.

- Давайте обратимся к началу времен. XIX век. Разностная машина Чарльза Беббиджа. “Первый в мире программист” Ада Лавлейс. И Блез Паскаль вычислительную машину конструировал, между прочим.

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

Другое дело, что история компьютеров действительно имеет странную двойственность. Официально она начинается в 48-м (год моего рождения, кстати), когда в Америке появился компьютер ENIAC. Но в 1989-м английская разведка обнародовала кое-какие сведения, у которых истек 50-летний срок секретности. Оказалось, что первый компьютер был сделан небезызвестным в науке человеком по имени Алан Тьюринг. Во время войны для дешифровки немецких сообщений Алан Тьюринг придумал текст, корреляция с которым легко вскрывает шифр. Текст этот специальным постановлением британского правительства до сих пор держится в секрете. Так вот, пока немецкая шифровальная машина была однотактной, т.е. имела конструкцию с двумя колесами, вращающимися друг относительно друга в процессе шифрования, Тьюринг легко обходился без компьютера. Но когда немцы сделали свою машину четырехтактной, Тьюрингу приходилось слишком много раз прогонять перфоленту со своим знаменитым текстом. Представляете, чтобы сто раз выполнить операцию в цикле, вам надо сто раз вводить одну и ту же перфоленту? Чтобы избежать этого, он придумал положить текст в память, а кто-то из его соратников сумел эту идею реализовать и создал машинную память на релейных устройствах. Англичане теперь бьют себя в грудь и утверждают, что это они придумали компьютер. Я не исключаю, что еще через 50 лет какой-нибудь новый Петр I или Иосиф Виссарионович придумает, будто в России первый компьютер сделали.

Фон Нейман знаменит тем, что уже после Тьюринга придумал хранить в памяти не только данные, но и команды. А Клод Шеннон придумал, что компьютер может не только считать, но и заниматься информационными процессами. Очень смешно: Шеннон потратил весь 48-й год, когда появился ENIAC, на то, чтобы доказать, что это – устройство информационное, а не вычислитель. Над ним смеялись. А кто сегодня считает на компьютерах? Пять человек из тысячи, если не меньше, печатают же на них все.

- И в шахматы играют.

- В 48-м вышли первые труды Клода Шеннона по теории информации, в частности, статья по шахматному программированию. Шеннон показал, что компьютер может играть в шахматы, и даже сделал набросок алгоритма, который стал основой всех шахматных программ. В 80-м меня познакомили с Шенноном, он был почетным гостем чемпионата мира среди шахматных программ. Первое, что я тогда подумал: “Как? Человек, придумавший слово “энтропия”, еще жив?!” А в 99-м наступила моя очередь быть почетным гостем чемпионата. Почетный гость – это человек, единственная обязанность которого состоит в том, чтобы открыть и закрыть турнир, наградив победителей. Вот читаю я свою речь на церемонии открытия и вижу в глазах тех, кому читаю, тот же вопрос: “Как, он еще жив?!” Меня там слушали ребята 74-75 года рождения. Если человек читает работу, опубликованную в год его рождения, он думает, что автор мертв. А ведь Шеннону в 80-м было 50 с чем-то.

С Шенноном приключилась забавная история. В начале 50-х он был “fellow” в Bell Labs. Это место, где рано или поздно оказывается любой гениальный американец. Быть “fellow” - значит быть на привилегированном положении – иметь хорошую зарплату и не иметь обязанностей, но с условием: все, что сделаешь, принадлежит работодателю. Шеннон по дороге, в свободное от развлечений время, сделал программу, которая принесла ему на бирже пару-тройку миллионов. Начальство сказало: “Клод, надо бы вернуть денежки в фирму. Нехорошо. Мы твое время оплачиваем, компьютер, на котором ты программу отладил, тоже наш”. “Но алгоритм-то мой, отстаньте”, - отвечает Шеннон. Не договорились. И автор теории информации был уволен. Он больше никогда не работал ни в одной компании и ни в одном университете Америки. Только консультировал. Он не голодал, но никогда не имел постоянной работы. Вот так устроен волчий мир капитализма.

- С вами в СССР такого быть, конечно же, не могло.

- Все мощные компьютеры в 60-е годы концентрировались в ядерных центрах. У нас – в ИТЭФ. Там была лаборатория программирования, ее возглавлял Александр Семенович Кронрод, известный математик, мой учитель. Там же работал Адельсон-Вельский (выдающий советский математик – Ред.). Задача ее состояла в обслуживании физиков-ядерщиков. Быстро выяснилось, что просто программировать алгоритмы физиков бессмысленно, потому что они не понимают технологии вычислений. Приходилось работать вместе. В 68-м Есенина-Вольпина посадили в сумасшедший дом как антисоветчика. Кронрод и Адельсон-Вельский подписали соответствующее письмо и оказались в положении Шеннона. Из ИТЭФ их выгнали. Но Кронрода взяли в ЦНИИПИ, а Адельсона-Вельского - в ИПУ АН СССР, из-за чего и я туда потом попал, кстати.

Кронроду не дали преподавать ни в одном вузе, он преподавал в школе. Но он придумал математические школы. У сотрудников ИТЭФ тогда дети подросли, и были они примерно одного возраста. А Хрущев придумал производственное обучение: раз в неделю дети не учились, а что-то “производственное” делали. Подметали улицы, фасовали мороженое, летом две недели проходили “производственную практику”. Так вот у нас раз в неделю в качестве производственного обучения был математический анализ, а летом мы две недели программировали в ИТЭФ. Кронроду удалось “взломать” РОНО и оформить матанализ как производственное обучение, и доктора наук, ученые с мировыми именами рванули преподавать в школе. Адельсона-Вельского потом на два года запустили преподавать в университет – и вышибли. Меня на три года запустили в МИРЭА – и вышибли. Мы были не нужны. Когда рядом кто-то читает синтаксис языка программирования, а кто-то учит программировать, у студентов возникают ненужные вопросы к деканату. Я ушел в ИПУ к Арлазарову (член-корреспондент РАН Владимир Львович Арлазаров – Ред.) и Адельсону-Вельскому. Кронрод меня отпустил с тем условием, что я стану заниматься шахматной программой.

В ИТЭФ физики не занимали 100% машинного времени, так что программисты развлекались. Отладили программу для игры в дурака и “одномастку” (игра картами одной масти на большее количество взяток – Ред.), последнее стало классикой. Метод ветвей и границ, один из краеугольных камней игрового программирования, родился из этой забавы.

- Шахматное программирование тоже принесло пользу?

- Еще какую. В “Каиссе” мы сделали вещь, которую никто в мире не делал, и благодаря которой я живу всю свою жизнь Мы потратили половину усилий не на то, чтобы научить программу играть в шахматы, а на то, чтобы научить ее показывать, как она играет в шахматы. Программа выдавала ход перебора вариантов в шахматной нотации, с любого места, в любой позиции, с любыми параметрами. В итоге, когда мы играли матч с читателями “Комсомольской правды” (1972 год, матч состоял из двух партий и был выигран читателями со счетом 1,5 на 0,5 – Ред.), в ночь с четверга на пятницу машина работала только на “Каиссу”. Наш ход публиковался в субботу. Мы с Владом Арлазаровым в субботу распечатывали и честно прочитывали все дерево перебора. Это – основа нашей победы в 1974 году. Остальные разработчики шахматных программ сидели, образно говоря, на берегу с удочкой, а мы построили батискаф и опустились на дно посмотреть, что там творится.

Надо было понять, как это делает машина. Тогда искусственный интеллект состоял из двух ярко выраженных направлений: антропоморфного, где люди исследовали, как человек решает задачу и пытались это запрограммировать, и компьютероморфного, когда брали трудную задачу и решали, а как ее решает человек – ну его нафиг, никто не знает. Мы были представителями второго направления. Успехов на первом направлении я не знаю, а на втором – сколько угодно.

Если все до нас пытались избежать глупых ходов, то мы стремились избегать повторения ходов в переборе. Нельзя избегать проигрыша фигуры в один ход, потому что всегда найдется позиция, в которой такой ход выигрывает. Но при ходе надо уметь понять, что ничего не изменилось, и сократить за счет этого перебор вариантов. Ясно, что от шахмат в таком методе решения задачи сокращения перебора ничего не было. На первенстве мира, выигранном “Каиссой”, я был самым слабым шахматистом.

- А что такое искусственный интеллект?

- Не знаю. Лучше спросить об этом журналистов.

Словосочетание Artificial intelligence придумали, лежа на калифорнийском пляже, Алан Тьюринг и Джон Маккарти (выдающийся американский ученый в области IT – Ред.). Но два гениальных человека опростоволосились. Термином “искусственный интеллект” они натравили на себя толпу журналистов, которые подумали, что если машина сегодня играет в шахматы, то завтра она начнет расстреливать людей.

Для меня “искусственный интеллект” - это область сложных, неформализуемых задач. Шахматные программы перестали быть явлением из области искусственного интеллекта, как только они научились прилично играть.

- Романтика 60-х для IT-инженера – это “Сумма технологии” Лема, ну или, на худой конец, “Понедельник начинается в субботу”. Всенародная вера в то, что вот сейчас кибернетика придет и все нам наладит.

- В 1998-м в Политехническом музее были чтения по случаю 50-летия перевода книги Винера “Кибернетика”. Там можно было услышать о том, что Сталин одной рукой клеймил кибернетику “продажной девкой буржуазии”, а другой подписывал указ о создании секретных кибернетических лабораторий. Глазами профессионала вся эта романтика таковой не выглядела. Математики на программистов глядели свысока, считалось, что это предательство математики.

В 60-е скорее физики были всенародной надеждой на прогресс, а не программисты. Программисты существовали главным образом при ядерных центрах. О “Понедельнике…” я невысокого мнения, кстати. Стенгазета мехмата была интереснее и смешнее. Ее редактировал любимый ученик Колмогорова Леня Левин, и назвалась она – после августа 1968-го – “Литерарны Листы”, как и газета союза писателей Чехословакии. Ленечка был большой человек в комитете комсомола и пользовался своим положением. Однажды он оформил задание для машинописного бюро мехмата и отдал в перепечатку самиздатовскую “Камасутру”. Иной техники размножения документов в МГУ, кроме пишущей машинки, тогда не было. На лёнину беду, замдекана срочно потребовалось напечатать какую-то бумажку. Он пришел в машбюро и говорит – вынимайте закладку и срочно печатайте мое. И, как “культурный” человек, читает вынутую закладку. Текст его несколько насторожил. Чей заказ? Комитета комсомола. Кто принес? Левин. Замдекана побежал в комитет комсомола и стал объяснять, что Левина надо выгнать из комсомола – с автоматическим отчислением, разумеется. Но по уставу ВЛКСМ без решения первичной организации выгнать было нельзя. Леня сказал: я прочту этот текст целиком и докажу, что он – не порнография, так что можете сразу заказывать для комсомольского собрания группы актовый зал. От него отвязались. Этот человек вообще умудрялся сочетать в себе идиотизм с гениальностью. Название его кандидатской – на минуточку – “Основания теории вероятности”. И оно адекватно содержанию. Левин связал теорию вероятности с теорией сложности Колмогорова, он показал, что мы вероятностно описываем объекты, которые не в силах понять. Колмогорову с трудом удалось пристроить эту диссертацию к защите в Новосибирске, нигде западнее ее не брали. Тогда мехмат был другим. Там работали Петровский, Ефимов – настоящие математики.

- Кроме “Каиссы” у вас была не менее известная разработка – система управления базами данных ИНЭС. Три десятка лет назад она работала практически во всех вычислительных центрах СССР. Расскажите.

- ИНЭС родилась в процессе научного осмысления “левых” работ. Началось это с первой советской АСУ (автоматизированная система управления, прообраз ERP-систем – Ред.) в 1970 году. Я имел честь быть младшим в команде разработчиков. 70-й год – это сто лет со дня рождения Ленина. К этой дате министерство электронной промышленности (МЭП) должно было сдать свою АСУ под названием “Электроника”, которой в их здании на проспекте Вернадского был занят целый этаж. Триста человек, девушки главным образом. Ничего не сделали, и министру пригрозили: не будет АСУ к съезду партии в феврале 1971 года - снимем. Он начал искать, кто за полгода выполнит пятилетнюю работу большого отдела. Нашел нашего маклера, Хасана Саидовича Дымшица, он же Ефим Самойлович (колоритная личность – на войне побратался с арабом и взял его имя). Когда министр показал ему бумажку с суммой и спросил, устраивает ли цифра, Дымшиц сказал: “Цифра хорошая, но нулей маловато, я бы два добавил”. Министр: “Я не могу заплатить семерым столько!” Дымшиц: “Ничего, мы оформим 700″. Оформили 70. Первые два месяца из отпущенных четырех мы делали операционную систему для “Минск-22″ – старенькая машинка, но надежная, когда в зале стелили очередной пыльный ковер для начальства, она работоспособность не утрачивала. Эта система и была сердцем ИНЭС. Потом стали делать АСУ. Скучно не было. Понять, сколько, например, проволоки делает МЭП, было немыслимо. Чугунную измеряли в тоннах, алюминиевую – в метрах, а золотую – в рублях, и все это надо было просуммировать. Приписки учитывали заранее, отводя под них 20%. Принимал работу Дмитрий Федорович Устинов (видный советский функционер, тогда – секретарь ЦК КПСС, куратор оборонной промышленности СССР – Ред.). Сдали. Тут на нас обратил внимание КГБ-эшники. Но не те, что “обслуживали” МЭП, а другие, те, что писали тексты под заголовком “За строкой съезда партии” - об этой работе предполагалось докладывать как об успехе. Выяснилось, что работа – “левая”, и славу разработчика первой советской АСУ отдали в Киев академику Виктору Михайловичу Глушкову. А мы, сделав еще пяток таких систем, поняли, что все время делаем одно и то же. И тогда мы сделали ИНЭС как станок для выполнения “левых” работ. Я думаю, гносеология “1С” та же самая – они сделали несколько проектов, поняли, как их можно делать быстрее, и сделали платформу.

ИНЭС работала на полутора тысячах мэйнфреймов по всей стране. Можно было приехать в другой город, на вокзале сказать “ИНЭС”, и тебя брали под руки, поили-кормили, все что угодно. Тогда я понял, что чем хуже программа, тем больше она приносит денег. Очень хорошо платили за устранение ошибок. Опыт Microsoft это блестяще подтверждает: чтобы продать следующую версию софта, надо, чтобы предыдущая имела недостатки.

- Т.е. и в советские времена вам, говоря словами Райкина, “простому инженеру”, удавалось сохранить достаточное количество степеней свободы?

- Та система была характерна большим количеством городских сумасшедших. Аркадий Райкин, Михаил Ботвинник. Я лично был свидетелем: Михаил Моисеевич не понимал, что он еврей. Когда его не выпустили с его шахматной программой “Пионер” на работу в Германию, он искренне не понимал, в чем дело, и нажаловался в ЦК. Знаете, чем кончилась эта история? Устроили совещание в отделе науки ЦК КПСС (я на него не пошел). Ботвинник сделал большой доклад. Сибирский ученый по фамилии Марчук (Гурий Марчук, будущий президент АН СССР – Ред.) встал и сказал: “Я все понял. Это гениальная работа. Вывозить ее за границу все равно, что разглашать наши ядерные секреты”. Так Ботвинник добился своего – ему навсегда запретили вывозить “Пионер”. Причем как запретили! Нельзя же было сказать: вы, Михаил Моисеевич, еврей, и потому в Ганновер не поедете. У Ботвинника дача на Николиной горе была рядом с дачей Туполева, а тот тоже из разряда городских сумасшедших – взял и перегородил дачей дорогу, чтобы трактора на колхозное поле ездили другим путем. А рядом жил Александров – но не академик, а референт Брежнева. Ботвинник забыл, кто он. А я понимал, кто я такой: беспартийный кандидат наук.

- Профессия программиста не деградировала ли с появлением ПК?

- Профессия стала массовой. Вопрос в том, кого считать профессионалом. В футбол играют все, но не все получают за это деньги. В программировании интересно не то, что программирующих людей стало много, а то, что они стали получать деньги ни за что. Связано это не с квалификацией, а с организацией этого бизнеса. Когда каждый банк имеет свой IT-отдел и не всегда покупает софт, количество вакансий программистов зашкаливает. Когда люди не покупают разработку сайтов, возникают в больших количествах “программисты на HTML”. Вы ведь не против тех, кто играет в футбол во дворе? Но не платить же за это деньги.

Потом, у нас негде стать профессионалом. Программисту негде учиться. Почему наша сборная прилично сыграла на чемпионате Европы? Потому что ее тренировал Хиддинк, а не Газзаев и не Черчесов. У нас в России таких людей, как Хиддинк, в преподавании программирования нет. Чтобы стать звездой в своей профессии, просто негде учиться.

- Как же так? Всем известно, что Россия – родина лучших программистов в мире.

- В словосочетании “чемпионат мира по программированию” ключевое слово – “чемпионат”, а не “программирование”. Тут то же, что со школьными олимпиадами. Это спорт. Есть люди, которые, как Перельман, которые никаких олимпиад не выигрывают, потому что они тугодумы. Но они несколько лет думают над проблемой и решают ее. Какое отношение чемпионат по программированию имеет к реальному проектированию систем? Пусть мне покажут чемпиона, который спустя три года вернется к своей задаче. Пусть ему дадут его код и чуть-чуть изменят условия. Мне просто интересно посмотреть, что он сделает со своим старым кодом. Уверен, что ничего хорошего. У профессионалов с программы, которая что-то правильно сделала, все только начинается, а у спортсменов все этим заканчивается.

Покажите мне хотя бы одного преподавателя в техническом вузе, который, принимая у студента задание, изменяет условия задачи и требует их учесть. Студент подаст апелляцию, он же решил задачу! А в реальных проектах это основная работа. Если заказчик меняет условия технического задания, значит, я ему угодил – никто же не захочет модифицировать программу, которая не нужна. Нормальный проект потенциально бесконечен. А в спортивном программировании и подумать-то некогда. А инструментарий? Можно приносить свои библиотеки? Нет? Ну, так это не программирование, а математика. Надо быстро придумать алгоритм.

- Не теряем ли мы инженерное знание того, как разрабатываются сложные программные системы?

- В начале XX века не существовало русской математической школы. Но ее создали, и к концу XX века оказалось, что российские математики лучше всех. Капица организовал школу физиков. Школу и для программистов создать можно, но условия должны быть. Школы были, и не одна, а несколько. Были группы по 40-60 программистов лучше меня. Были семинары, где можно было послушать нормально работающих людей. Преподавать в вузах им не пришлось.

У меня есть приятель – Монти Ньюборн, декан факультета вычислительной математики университета Мак-Гилл в Монреале, член совета ACM (Association for Computing Machinery – Ред.), тоже шахматный программист. Приезжал ко мне в гости в 1980 году. Год Афганистана, тогда было непросто приехать в Москву. Я повел его к Андрею Николаевичу Тихонову, декану ВМиК МГУ. Слава богу, Тихонов классно говорил по-английски, и мне не пришлось переводить, иначе бы умер со стыда. Я только слушал, о чем говорят два декана. А они сравнивают учебные программы. Монти спрашивает: где теория автоматов? Нет. Где искусственный интеллект? Нет. Где проектирование трансляторов? Нету (теперь уже есть, правда). А что есть? Есть труды Тихонова по вычислительной математике. Монти – человек дотошный, он об искусственном интеллекте говорил с профессорами семинарии, и если за человека возьмется, то все выяснит. Вот и выяснилось.

Если сейчас потратить силы, школу создать можно. Еще живы человек двадцать, которые могут это сделать. Будет ли утеряна область инженерного знания? В мире – нет, а индустрия эта транснациональна. Меня больше волнует другое. Приходишь в отечественную компанию, смотришь, как у нее устроено IT и видишь, что люди просто упали с дуба. Что далеко за примерами ходить – вспомните ЕГАИС. Такое ни в какой стране не было бы возможно. Это все равно, что зайти в мой двор и взять мальчиков, которые там играют в футбол, членами сборной команды России. И при чем тут, спрашивается, наличие или отсутствие инженерной школы?

- Деградируют и программные продукты. Операционные системы для ПК – шаг назад по сравнению с IBM/360, разве нет?

- Как возникла MS-DOS? Сначала была CP/M, которая представляла собой урезанный Unix для маленькой машинки, без многозадачности и прочего. Но потом аппаратура росла с дикой скоростью, и базовая система не поехала. Надо отдать должное Биллу Гейтсу, второй раз он этой ошибки не сделал. Этот же виток мы видели на мобильных устройствах. Palm OS иначе как убожеством не назовешь, даже файловой системы нет. Программировать на ней невозможно, я пробовал – если были заказы под Palm OS, сразу утраивал цену. То же самое Symbian, операционка для бедных. Когда появилась Windows Mobile, казалось, что в Microsoft сошли с ума: откуда в карманном компьютере возьмутся такие вычислительные ресурсы? Но сегодня Microsoft дождалась своего часа. Palm OS умер. Symbian умрет вскоре. Мы писали Lingvo (популярный компьютерный словарь российской компании ABBYY – Ред.) для Symbian – и это был подвиг. Программисты голосуют за Windows Mobile. А с программистами бороться невозможно. Если на Symbian пишут 2% от того количества программистов, которые работают для Windows Mobile, можете мне не рассказывать, кто победит, я и так знаю.

Идея делать в условиях закона Мура системы для бедных – идиотична. Это уже кончилось.

- К 40 годам люди уходят из программирования – кто в начальники, кто в бухгалтеры, кто в таксисты. Вы, пожалуй, единственное заметное исключение.

- Когда в 90-м мы создали клуб программистов, меня порадовало такое наблюдение: очень скоро он превратился в клуб IT-бизнесменов. Карачинский, Дергунова, Нуралиев. Из программирования со временем вырастаешь либо в хорошего управленца, либо в хорошего программиста. Чтобы выбрать второй вариант, надо слишком любить свое дело, потому что управленцам платят сильно больше. Знание того, как устроены информационные потоки, очень помогает тому, что называют “организационным управлением”. Хорошему системному архитектору, если он немножко понимает в психологии, быть топ-менеджером несложно. Кажется, даже Мавроди программировал.

- А темные, неблагодарные стороны профессии программиста?

- Программист живет в среднем столько же, сколько и нормальный человек, а вот его проекты… Рембрандт написал “Ночной дозор”, и на него до сих пор все смотрят. А что у программиста? Машины меняются как в калейдоскопе, операционные системы приходят и уходят, СУБД тоже. Выясняется, что наш труд остается все больше в воспоминаниях. “Каисса” по нынешним временам – смешная шахматная программа. ИНЭС с Oracle не сравнишь. Мы – расходный материал. Мы можем оставить после себя только опыт и знания, но не продукты. Какими бы классными они ни были. У журналиста, между прочим, тоже – где ваши вчерашние статьи? Смешное противоречие: ты работаешь на корзину, даже если ты производишь лучший софт в мире.

itoday.ru

Вступайте в группу Новости города Новокузнецк в социальной сети Вконтакте, чтобы быть в курсе самых важных новостей.

всего: 2214 / сегодня: 1

Комментарии /1

11:5101-10-2010
 
 
8767
Прочёл полностью, неплохо сказано.

После 22:00 комментарии принимаются только от зарегистрированных пользователей ИРП "Хутор".

Авторизация через Хутор:



В стране и мире