На тихой Большой Коммунистической улице в Москве, недалеко от любимого журналистами Коммерческого клуба, находится небольшое здание Института системного программирования РАН. Редакторы нашего еженедельника Эдуард Пройдаков и Александр Ливеровский побеседовали с его директором, членом-корреспондентом РАН Виктором Петровичем Иванниковым.
Виктор Петрович Иванников
PC Week: Виктор Петрович, каковы, на ваш взгляд, основные проблемы развития системного программирования в России?
В. Иванников: Насколько я понимаю, самая серьезная, критическая проблема - образование в широком смысле этого слова. Это не только вузовское обучение по информатике и программированию, но и “доводка” специалистов.
PC Week: Известно, что объем преподавания математики и физики в школе из года в год снижается. Отражается ли это на подготовленности студентов?
В. И.: Если говорить о студентах, которые приходят в МГУ или Физтех, где я заведую кафедрами системного программирования, то у них уровень подготовки достаточно высок. В Физтехе вообще действует давным-давно поставленная система предварительного отбора самородков на территории России. Проводятся всевозможные олимпиады, выездные экзамены и т. д.
В этом году мы выпустили со своей базовой кафедры 14 ребят, из них 13 человек получили “красные” дипломы. Это был первый выпуск. Нам был дан карт-бланш, и мы примерно из 70 человек отобрали тех, у кого были самые высокие оценки по математике. Вполне естественно, что это не типичный расклад, когда в группе почти поголовно “красные” дипломы. Но и следующий курс на близком к ним уровне.
Поскольку я в МГУ читаю лекции на первом курсе и принимаю экзамены, я пока не вижу деградации в подготовке школьников. Средняя школа - система с большим последействием, так что негатив еще не проявляется. Последствия мы ощутим через 5 - 10 лет. Я не знаю, какие процессы идут в средней школе, и могу судить только по “продукции”, которую она выпускает. А продукция у нее нормальная. Я не хочу сказать, что студент стал хуже или лучше. Периодически: один курс чуть получше, а на следующий год похуже. Никаких всплесков не заметно. Другое дело, что за последние два года пошел сильно мотивированный студент. Вот такой пример. Я читаю лекции в субботу, и у меня первая пара. Раньше, три-четыре года назад, на первую лекцию собиралась толпа народа. Потом, лекции через три, происходил спад на три четверти, наполовину. Сейчас же почти все, кто пришел на первую лекцию, ходят и на последующие. Меня даже поражает: суббота, первая пара, 9 часов утра - и полная аудитория. Я сам был студентом и помню, как трудно приходить на первую пару, да еще в субботу.
Я думаю, они понимают, что, имея профессию, связанную с компьютерами, у них будет возможность вести достойную жизнь и у них не будет проблем с поиском работы. Их цель - не получить диплом, а приобрести знания.
Э. П.: У меня такое впечатление, что американцы активно преподают в университетах языки ADA и Lisp. А что у нас?
В. И.: Ситуация в мире такая. Более чем в половине университетов студенты в качестве первого языка изучают Pascal, чуть меньше - Modula 2, еще меньше - все прочие, включая и Си. Что касается МГУ, то в первый год - работа в MS DOS на Паскале и немного затрагивается Ассемблер. Второй год обучения - работа в среде Unix, из языков - Си. Ну а дальше по-разному. В некоторых группах изучают Lisp, точнее, Scheme, причем мы используем массачусетский курс, хорошо отработанный, с упражнениями. В других группах - С++. В процессе образования студент знакомится и с функциональными языками такого рода, как Lisp, и с объектно-ориентированными - и Smalltalk, и С++, а как первичный язык мы используем Pascal. Наверное, надо будет переходить на Modula 2.
PC Week: Так в чем же тогда состоит проблема образования?
В. И.: Процессы, которые идут в высшей школе, привели к тому, что средний возраст преподавателей во всех институтах превышает 55 лет. Сейчас ситуация такая: мы доучим нынешних ребят, но кто будет учить дальше? Это критический вопрос для всей системы высшего образования и очень серьезная проблема. Проблема преемственности поколений в среде преподавателей. Кроме того, и для российских компаний, и для учебных заведений, и для академических институтов характерна проблема среднего возраста. Когда вам говорят, что средний возраст сотрудников составляет 35 лет, то интересно посмотреть, как распределяются сотрудники по возрастам. А это распределение таково: где-то за 45% - люди со средним возрастом 25 лет, потом провал в области 30 - 35 лет - а это наиболее продуктивный возраст, - и на 50 - 55 лет снова приходится подъем. Эта дыра в области 30 - 35 лет образуется за счет “утечки мозгов”. Куда они утекают? В банки и другие коммерческие структуры, где занимаются software production или системной интеграцией, и за границу. Например, за последние пять лет наш институт покинуло около 40 человек. И это при численности сотрудников института чуть больше 100 человек. С ума можно сойти. Уехали в основном ребята в возрасте 30 - 35 лет, которые защитили диссертации и которые были близки к top. Они легко находят работу.
PC Week: Есть ли шанс, что все это утрясется?
В. И.: Ситуация критическая, но я не могу дать прогноз. Если такое положение продлится еще, например, лет 10, будет очень плохо. Насколько плохо, я не знаю, но очень плохо. Ближайшие несколько лет будут просто критическими.
PC Week: Не происходят ли изменения в структуре образования из-за того, что появились коммерческие учебные заведения?
В. И.: Здесь мы должны различать две вещи: образование как education и образование как training. Грубо говоря, training - это усовершенствование, натаскивание на какие-то конкретные инструменты и системы. С моей точки зрения, в сфере education в коммерческих учебных заведениях уровень ниже, чем в государственных вузах, таких, как Университет, Физтех и др. А вот training, наоборот, процветающий сейчас бизнес. Он рассчитан на определенные категории слушателей, как правило, на людей с высшим образованием, то есть требует базиса.
Наверное, произойдет какой-то переход к разным формам платного образования. Ну почему студент не должен работать? В тех же самых Штатах, в Европе ребята работают для того, чтобы оплатить свое образование, если его не могут оплачивать родители. Здесь, конечно, есть опасность. Самое страшное, чтобы не было революционных процессов. Пусть все идет постепенно, эволюционно. Сейчас система образования очень хрупка. Переход к тотальному платному образованию будет означать разрушение всей системы. Для платного образования должен быть средний класс, а его нет.
А. Л.: В мое время в Университете учились ребята из глухих сибирских деревень, а потом они стали профессорами.
В. И.: Ситуация критическая. Она может стать необратимой.
PC Week: Давайте перейдем к следующей теме. Американцы утверждают, что в России недостаточно уделяют внимания проблеме 2000 года. Каково ваше мнение на этот счет и связаны ли вы с такими работами?
В. И.: Да, мы делали такого рода работу для корпорации Digital. Для этого существуют специальные инструменты, кроме того, мы разработали и свои для того, чтобы производить анализ кода программы и выявлять места, где происходит работа с датами. Как научная проблема для научного сообщества она не существует вовсе. Для фирм-производителей - это не очень высокой сложности техническая проблема. Они просто должны изменить свой софтвер и изменить 2-цифровое представление даты на 4-цифровое. Я не знаю, принят ли стандарт на представление даты. На пользователя эта проблема налагает условие, что он должен работать с легальным софтом. Вторая проблема - организационная. И в государственных организациях, и в коммерческих нужно организовать закупку новых версий софта и внести исправления в собственный.
Э. П.: Это серьезная проблема. В свое время я участвовал в разработке системы бронирования авиабилетов “Сирена-2”. Когда проект начинался, документации по “Сирене-1” не осталось. Программы дизассемблировали и, чтобы разобраться в алгоритмах, одно время читали эти дизассемблированные тексты. Боюсь, что сейчас ситуация точно такая же. Разработчики ушли, не оставив нормальной документации, и поэтому модифицировать существующие приложения вот так сходу не удастся.
В. И.: Паники здесь не должно быть. Насколько я знаю, в Сбербанке давно уже спокойно проводят чистку софтвера и никто это не афиширует. Все, что происходит в мире, имеет профессиональную сторону и общественную активность вокруг этого. По проблеме 2000 года эта активность носит скандальный характер, потому что она понятна любому, даже непрофессионалу. Имеются бюджетные деньги. На них можно создавать многочисленные комиссии, слеты, выездные сессии и т. д.
PC Week: И для этого рисуются апокалиптические картины?
В. И.: Вполне естественно. Потому что можно оправдать все затраты. На самом деле должна быть абсолютно рутинная организационная и техническая работа заинтересованных организаций. Вы говорите про “Сирену”, но ведь это обычная проблема с legacy: имеется старая программа, и в ней что-то надо изменить. Например, мне нужно ввести в программу новую функцию. Вы все равно должны работать с этими legacy. Проблема действительно серьезная, потому что нельзя работать только с кодом. Вы должны получить все виды документации к этому коду для того, чтобы проходила его эволюция. Система, которая имеет только код, несопровождаема. Так что проблема 2000 года - это частная проблема (наследуемого кода). Разница лишь в том, что поджимают сроки и нельзя откладывать на потом. Вся беда в том, что проблема 2000 года понятна всем. Здесь замешано много всего - мистика и технические проблемы. Желание что-то урвать из бюджета. И это не только у нас. В Штатах происходит то же самое: книги издаются, нагнетаются страсти, Пентагон пугает. Потому, что это бюджет. Халявные деньги, почему же не урвать? Кроме того, разные группы людей по-разному к этому относятся: есть мистики, есть халявщики, а есть работяги, которые свой софтвер чистят безо всякого шума.
PC Week: Если вернуться к системному программированию, то какие, по вашему мнению, изменения там происходят?
В. И.: Произошла очень занятная вещь: как-то незаметно ушла в тень проблема переносимости. За счет стандартизации, за счет стандартов. Язык Си, скажем, - стандарт, и собственно компиляторы сейчас работают так, что программы транслируются не прямо в код, а вначале в Си, а дальше уже в код. Теперь это не трансляторы, а на самом деле конверторы.
Дальше идут стандарты POSIX, куча всяких стандартов на интерфейсы. Технология операционных систем тоже сложилась. Есть достаточно эффективный объектно-ориентированный подход, микроядерные операционные системы, например Mach, Chorus, и множество других. Имеется другая серьезная проблема - это распределенные операционные системы. Они сейчас развиваются. Там возникают свои задачи, например поддержание когерентности.
Окончание следует