ДИСКУССИЯ
Недавно на одной из компьютерных выставок я пытался объяснить генеральному директору фирмы, занимающейся промышленной автоматизацией, что при создании программного обеспечения для описания поведения систем управления целесообразно использовать автоматный подход (http://is.ifmo.ru), основанный на применении графов переходов.
Это предложение было отвергнуто, и мне было сказано: "У нас с этим и так все хорошо". Да и как может быть иначе, ведь "обычно возражения исходят от тех, кто не владеет приемами, против которых возражает" (Грис Д. Наука программирования. М.: Мир, 1984).
Через некоторое время мой собеседник, видимо, из вежливости со мной согласился, добавив, что, возможно, применение такого подхода целесообразно при создании сложных систем, которыми он якобы не занимается. При этом, надо понимать, системы промышленной автоматизации он считает простыми!
Для большей убедительности своего высказывания мой собеседник добавил: "Вы ведь не будете использовать графы переходов при автоматизации стиральных машин, правда?".
Я с ним не согласился, поскольку по нашему с Грисом :) мнению, "...никто не сможет научиться хорошо составлять большие программы, пока не научится хорошо составлять малые", но разговор исчерпал себя.
Однако через минуту я вспомнил одну историю, которую и рассказал моему собеседнику: "Однажды, так же как и вас, я пытался убедить выдающегося студента (призера двух командных студенческих чемпионатов мира по программированию АСМ - Association for Computing Machinery) в целесообразности использования автоматного подхода при программировании. Выслушав меня, студент, не отрывая глаз от компьютера, сказал, что когда он будет делать компилятор, то использует автоматы, а год назад по курсу информационных систем при автоматизации стиральной машины он, естественно, применял автоматы, а где еще применять их, он не знает".
После этого в глазах генерального директора появилась тоска: я, видимо, добился своей цели. Помните, как говорил Антуан де Сент-Экзюпери: "Если хочешь построить лодку, не зови людей, не бей в барабаны, а всели в них тоску по бескрайнему синему морю".
В разговоре с генеральным директором я отметил, что использование автоматов позволяет так документировать проект, что и через десять лет будет весьма просто понять его логику. На что директор ответил, что его, как, впрочем, и подавляющее большинство его заказчиков (!), не волнует, что будет через десять лет. Интересно, не правда ли? Особенно учитывая тот факт, что моему собеседнику было не более сорока лет! На вопрос, что же его волнует, он ответил: "Деньги или их экономия, и сегодня". Другими словами, после нас хоть потоп. Тут, как говорится, не до науки.
Слава Богу, так думают не все в мире, и поэтому техническая революция продолжается. Процитирую Крейга Баррета, главного исполнительного директора корпорации Intel: "Экономия - не путь выхода из кризиса. Чтобы достичь успеха в долгосрочной перспективе, технологические компании должны продолжать инвестиции в исследования вне зависимости от экономической ситуации".
Я, конечно, понимаю, что мой собеседник далек от мысли достичь уровня указанной корпорации, поскольку человек он нормальный. В то время как, по мнению председателя совета директоров Intel Энди Гроува, "выживают только параноики", о чем он и написал одноименную книгу.
Возвращаясь к общению с упомянутым выше выдающимся студентом, отмечу, что каждый раз, показывая ему очередной завершенный проект, выполненный на основе автоматного подхода в рамках "Движения за открытую проектную документацию", я спрашиваю: "Это компилятор или стиральная машина?". И очень часто это оказывается ни тем ни другим, а чем-то третьим. Это бывает, например, визуализаторами алгорИТМОв, для построения логики которых он предложил на основе автоматного подхода прекрасный метод! В общем, как говорится в одной пословице, "когда живешь, тогда доживаешь"!
И последнее. На днях я сделал открытие :): многолетние успехи команд Санкт-Петербургского государственного университета информационных технологий, механики и оптики (ИТМО) на командных чемпионатах мира по программированию связаны с наличием аббревиатуры ИТМО в слове "алгорИТМОв".
Эта мистика продолжается и по сей день. 26 ноября 2003 г. в Санкт-Петербурге студенты университета ИТМО Павел Маврин, Дмитрий Павлов, Сергей Оршанский (тренер - Андрей Станкевич) победили, решив 10 задач из 11, в полуфинальных соревнованиях командного студенческого чемпионата мира по программированию ACM 2003/ 2004 гг., выиграв одновременно командный чемпионат России.
Кроме указанной выше причины успех команды ИТМО, видимо :), связан также и с тем, что в начале 2003 г. П. Маврин и Д. Павлов были награждены премией Президента Российской Федерации за выдающиеся способности, проявленные в ходе международной олимпиады по информатике среди школьников в 2002 г., а А. Станкевич является двукратным призером чемпионатов АСМ и совместно с выдающимся студентом, упомянутым выше, также занимался автоматизацией стиральных машин!
Об авторе: Шалыто Анатолий Абрамович - д-р техн. наук, профессор СПбГУ ИТМО. С ним можно связаться по адресу: shalyto@mail.ifmo.ru.