Наступает время серьезных перемен. Его предвестников можно обнаружить на всех уровнях информационных систем, начиная с процессоров и кончая глобальными Интернет-приложениями. В предложениях, претендующих на роль «серебряной пули», дефицита нет — есть недостаток в концептуальном видении прошлого, настоящего и будущего. В этом контексте особенно интересное видение перспективы того, каким может стать будущее ИТ, высказал шведский ученый Гарольд Лаусон в беседе с редактором «Открытых систем» Леонидом Черняком.
В 2000 году Лаусон получил одну из почетнейших компьютерных наград, IEEE Computer Society Computer Pioneer Award, с, казалось бы, очень простой формулировкой: «For inventing the pointer variable and introducing this concept into PL/I». Да, именно Лаусону принадлежит идея использования переменной в качестве указателя, и именно он смог ее реализовать в языке PL/I. Сегодня для тех, кто пишет на любом современном языке, будь то Pascal, C, C++, Ada или Java, обращение к этому средству настолько естественно, что вряд ли они в состоянии задуматься о его происхождении. Оно, вроде бы, банально, как колесо, но ведь и колесо кто-то тоже впервые приладил к повозке. Из наших соотечественников данную награду в 1996 году получили академики С.А. Лебедев, А.А. Ляпунов и В.М. Глушков, а в 2000 году одновременно с Лаусоном «пионерскую награду» получила группа инженеров за создание аппаратного и программного обеспечения ЭВМ «Минск».)
У Лаусона — сам он называет себя не иначе как Бадом (Bud) — фантастический послужной список. Жизнь много раз сводила его с теми, кого сегодня мы почитаем классиками компьютерной индустрии. По окончании университета в 1958 году Бад начал работу под началом адмирала Грэйс Мюррей Хоппер, единственной представительницы слабого пола в США, удостоенной высшего морского звания. В 1960 году он написал первый компилятор для языка высокого уровня языка Cobol, автором которого и была Грэйс Хопер. Эта компилирующая программа была реализована на компьютере UNIVAC II, имевшем размер оперативной памяти всего (трудно себе представить!) 2 Кбайта. Работа на UNIVAC дала Лаусону возможность познакомиться с еще двумя первопроходцами, какими были его великие создатели. Джон Преспер Эккерт и Джон Мочли были подлинными авторами идеи и хранимой в памяти программы, воплотившими ее в своем первом компьютере ENIAC. Параллельно с Бадом разработкой компилятора для Cobol на компьютере RCA 501 занимался Говард Бромберг.
С 1961 года Бад работал в IBM, т. е. в то время и в том месте, где родились первые мэйнфреймы и их предшественники. Здесь его коллегами были не менее известные личности, архитектор IBM 702 Натаниэль Рочестер и руководитель всего компьютерного проекта Фредерик Брукс.
Позже, участвуя в разработке PL/I, Бад встретился с Дональдом Кнутом, автором эпохального труда «Искусство программирования».
Сегодня Гарольд Лаусон живет и работает в Стокгольме, занимает ряд административных и научных должностей, является обладателем практически всех возможных для ученого титулов и званий, представляет Швецию во многих европейских комитетах и комиссиях по ИТ.
Бад, за что вы получили Pioneer Award?
Это давняя история, относящаяся еще к началу 60-х годов. Тогда языкам высокого уровня, в том числе, и столь «продвинутым» по тому времени, как MathM и FlowMatic, недоставало удобного механизма для доступа к сложным структурам данных. Позже в языке Cobol, частично основанном на FlowMatic, появились структурированные данные, но это частное решение не снимало более общей проблемы. Мы уже могли создавать некоторые типы гетерогенных структур, но все еще не могли оперировать ими в динамическом режиме. Решение, о котором мы сейчас говорим, родилось в процессе создания PL/I и его предшественника, языка NPL. В отличие от других языков высокого уровня, PL/I задумывался и как инструмент для написания системного программного обеспечения, а именно операционных систем и компиляторов. Поэтому в него необходимо было включить средства для динамического связывания. Благодаря указателям оказалось возможным строить стеки, очереди, деревья и манипулировать ими.
Вернемся в современность. Ваша последняя статья опубликована в июньском номере журнала Communications of the ACM. Но еще раньше в 2001 году ее версия появилась в Интернет. Для меня ее основные положения удивительно созвучны тому, к чему приходишь, переоценивая окружающее, опираясь на многолетний опыт. Как бы не были значительны видимые достижения компьютерных технологий, целый ряд признаков указывает на то, они не так уж велики. Практически все, что составляет предмет гордости, обеспечено успехами в инженерной области, а не в фундаментальной науке. Невольно приходится констатировать факт незрелости ИТ как индустрии. Увидеть это обстоятельство важнее, чем это может показаться на первый взгляд. Происходящее затрагивает, так или иначе, большинство занятых в индустрии, поэтому нужны трезвые оценки сегодняшнего дня и перспектив на будущее, нельзя питаться иллюзиями. Год назад — не без определенного злорадства — активно обсуждались катастрофические результаты взлета и падения «доткомов». В них видели скоробогачей, переступивших через традиционную корпоративную этику. Но с их поголовным разорением и разорением тех, кто в них инвестировал свои средства, общее падение не остановилось. Оно просто приняло хроническую форму. NASDAQ никак не может подняться с колен. Похоже, лопнул лишь маленький «мыльный пузырь». Происходящее сейчас гораздо более тревожно; его можно сравнить разве что с медленным, отчасти управляемым стравливанием газа из огромного, с очень толстой оболочкой, но все же искусственно надутого пузыря. В этом трудно признаться, но в шкафу информационных технологий есть свой скелет. Кризис «доткомов», пусть в кривом зеркале, но отражает реальную ситуацию, которая сложилась за последние два десятилетия.
Понимание проблем современности начинается с анализа прошлого. Поэтому сделаем небольшой экскурс в историю. Предшествующие пятьдесят пять лет компьютерной индустрии можно условно разделить на три примерно равных периода. Их можно назвать так: детство (1947 — 1965), эра IBM (1965 — 1983), и эра Wintel (1983 — настоящее время).
Первый начался с того, что на рынок вышла компания Eckert-Mauchly Computer, позже преобразованная в Sperry Univac, с этого момента можно начать отсчет жизни индустрии, но вскоре ее главным конкурентом стала International Business Machines. В ту пору никакой монополии на технологии не существовало, кроме этих двух в тот период в Америке успешно работали компании RCA, General Electric, Burroughs, Bendix, Control Data, Honeywell, Philco и Sylvania, а в Европе свое место заняли ICL, English Electric, Marconi, Bull, Siemens и другие. Отдельное место занимали самодостаточные индустрии в СССР и в Японии. Несмотря на определенные коммерческие успехи, повсеместно основной движущей силой для развития вычислительной техники стало военное противостояние США и СССР, а основными заказчиками являлись правительственные организации. Итак, для «детского периода» характерными были две основные черты, разнообразие технических решений и государственное финансирование.
Рискну предположить, что именно госбюджетная поддержка обеспечила становление computer science и в США, и в СССР в тот период. Можно только с сожалением отметить, что в нашей стране тогда совсем не уделялось внимания тому, что теперь принято называть двойными технологиями.
Эра IBM началась с появлением на свет семейства System/360. Это был беспрецедентный коммерческий проект, один из самых значительных в истории ИТ-индустрии со всеми вытекающими последствиями. Практически все, что связано с семейством System/360 и его преемниками, хорошо известно, но важно подчеркнуть, что с него по-настоящему началась стандартизация в ИТ, а это один из обязательных признаков зрелости любой индустрии.
Стоит обратить внимание и на ряд не столь известных аспектов, в том числе, на «черную дыру сложности», которая разверзлась с появлением на свет System/360 и OS/360. Разработкой аппаратного и программного обеспечения занимались тысячи специалистов. Результаты их деятельности оказались настолько сложными, что исчезли специалисты-универсалы, теперь уже никто не знал продукты так, как прежде, до конца, в полном объеме. В итоге качество платформы и стабильность программного обеспечения оставляли желать лучшего, но победа все же осталась за IBM.
В пользу IBM сыграли два фактора, во-первых, развитая сеть сбыта в частном и государственном секторах, имеющая многолетнюю историю и, во-вторых, огромный неудовлетворенный спрос на вычислительную технику, который могла удовлетворить только компания с потенциалом IBM. Однако избыточная сложность создала благоприятные условия для альтернативных решений, стимулировав выход на рынок новых компаний. Вспомним мини-ЭВМ. Переусложненность System/360 бумерангом отразилась на производителях компьютеров, клонировавших систему в других странах, особенно в СССР. О подлинных причинах, побудивших к воспроизведению этого семейства силами стран СЭВ, говорить сложно, но что совершенно точно, так это то, что все они так и не смогли справиться со сложностями операционной системы OS/360. В конце концов это отбросило их лет на пятнадцать назад. Только японцам, которые инвестировали чудовищные средства в создание полностью IBM-совместимых машин, удалось справиться со сложностью. Но всему приходит конец. Завершение эры господства IBM ознаменовалось соглашением с малоизвестной компанией касательно операционной системы DOS, находившейся тогда на эмбриональной стадии развития.
Недавно я прочел книгу «IBM и холокост». Если оставить за скобками основное содержание, то в целом книга дает представление об особом месте IBM в экономике и политике США. Мало сказать, что влияние президента IBM на высшее руководство страны было значительным. Успех System/360 — следствие множества факторов, в том числе, и научно-технических. Не могу не согласиться с рассуждениями о «черной дыре сложности». Я видел происходившее с другой стороны. Мне пришлось, причем вполне успешно, работать на отечественных машинах «Минск», М-220 и БЭСМ-6. Так вот, когда в 1976 году мы получили одну из первых машин ЕС-1020, она поразила меня невероятным объемом технической документации и действительно избыточной сложностью. Так, составление задания для выполнения программы в пакетном режиме на языке Job Control Language было очень трудоемкой и, в общем-то, никому не нужной работой. В то же время по сравнению с той же БЭСМ-6 никаких видимых преимуществ (во всяком случае, для того класса задач, с которыми приходилось иметь дело) не обнаруживалось. Что же касается сложности, то создатели Unix, альтернативного мира, возникшего в эпоху IBM, тоже не без греха. Они на пару с IBM подготовили нишу для Wintel. Массовому потребителю нужны простые решения, а «юниксоиды» так и не смогли покинуть башню из слоновой кости, построенную в академическом кампусе. В итоге мы имеем то, что имеем.
К моменту наступления третьего периода в истории ИТ практически во всем мире закончилось государственное влияние на развитие информационных технологий. Теперь все определялось исключительно условиями рынка, со всеми плюсами и минусами. Эра Wintel действительно началась под знаком простоты, с альтернативных решений, подкупающих в сравнении со сложностью мэйнфреймов. Совсем простыми были процессоры, помните 4004, 8008, 8080. Они оснащались простой операционной системой DOS. Но затем стала раскручиваться хорошо известная спираль: более сложное программное обеспечение требовало более мощных, а потому более сложных процессоров и т.д. В итоге к настоящему времени и процессоры совсем не просты, и уж тем более не просты последние версии Windows. Кроме того, «новой эре» на первых шагах повезло, успех платформы Wintel был подкреплен коммерциализацией Интернета. К числу безусловных плюсов последних лет следует отнести развитие рынка приложений (valueware), особенно таких, как электронная почта, браузеры, текстовые процессоры, средства для подготовки презентаций, электронные таблицы. Однако эйфория, ими вызванная, послужила и во вред. В нарушение сложившейся прежде традиции критически важные задачи стали решать относительно дешевыми средствами. Это привело к возникновению ряда новых проблем, в числе которых постоянная необходимость перезагрузки, потеря критически важной информации, слабая защищенность от атак и других криминальных актов. Известен даже такой факт, когда ракетный крейсер «Йорктаун» был вынужден прервать поход из-за сбоев в системах, работавших под управлением Windows NT.
При переходе из второй эры в третью одна монополия сменила другую. Однако сейчас явно пробиваются признаки ослабления монополии Wintel, по большей части, в составляющей «Win». Каков, по вашему мнению, важнейший итог двух прошедших монопольных периодов?
Прежде всего, в том, что многие годы лучшие по качеству решения не могли пробиться на рынок платформ общего назначения. Для сохранения монополии использовались самые разнообразные приемы. Самое огорчительное, на протяжении всех трех периодов не раз предлагались решения, которые могли бы привести к появлению более стабильных платформ — как аппаратных, так и программных. Неоправданная сложность платформ в эпохи IBM и Wintel привела к тому, что переусложненными оказались продукты и услуги. Разработчики valueware стали управлять ресурсами для программного обеспечения делового назначения (busyware). Начала разворачиваться «спираль сложности второго порядка». ИТ-проекты стали чудовищно сложными. Резко возросло число неудач. В «детский период» и даже в эпоху IBM заметное — и во многих случаях положительное — влияние на индустрию оказывали правительства. В эпоху Wintel и они, превратившись в таких же покупателей, что и все остальные, тоже попали в зависимость от доминирующего поставщика и были вынуждены принять низкое качество и переусложненную платформу. В итоге мы живем в небезопасной среде, где на борьбу с компьютерными вирусами расходуется 15 млрд. долл. в год, при том что бюджет Международного красного креста на борьбу с реальными вирусами составляет менее 2 млрд. долл.
В последнее время, пожалуй, следуя китайскому примеру, многие правительственные органы стремятся избавиться от «микрософт-зависимости» (этот термин предложил один депутатов Госдумы РФ, во всяком случае, в ее стенах я услышал его впервые). На слуху названия офисных пакетов, востребованных госучреждениями разных стран, включающие слово Office, но без префикса MS, платформа Lintel и т.д. Это еще одна захватывающе интересная тема для обсуждения, но вернемся к обсуждению состоянию индустрии в целом. Вы уже упомянули о незрелости. На мой взгляд, в число основных критериев зрелости входит способность скрыть за потребительскими качествами техническую сложность. Это демонстрируют практически все высокотехнологические изделия, от самолетов до цифровых фотоаппаратов. Второе — стандартизация. Собственно говоря, промышленная революция XVIII-XIX веков началась со стандартизации. И, наконец, вечная дискуссия об экономической эффективности ИТ.
Действительно, можно обнаружить целый ряд общих признаков зрелости. Наиболее значительны:
- способность отрасли поставлять продукты и услуги, обеспечивая стабильность качества;
- ответственность отрасли за качество продуктов и услуг, поставляемых ею.
Большинство отраслей — авиация, автомобилестроение, строительство, медицинское приборостроение и т.д. — эти вопросы для себя уже решили. Информационным технологиям до того уровня надежности и безопасности, который уже обеспечивают другие отрасли, еще не близкий путь. Один из руководителей Intel, Роберт Колуэлл подтвердил этот тезис следующим сравнением: «Пользователям по жизни нужны такие качества, как надежность и безопасность. Не можем же мы предположить, что автоматика тормозной системы автомобиля будет" в основном работать" (mostly work) или "быть достаточно устойчивой к сбоям" (hardly ever crash), но именно так сегодня описывается состояние информационных систем».
Для преодоления нынешнего состояния нужны не просто совершенствования существующего положения, а радикальные изменения, которые можно назвать «перерождением». И путь этот явно не проходит через продукты и услуги из категории Open Source, уже имеющиеся в наличии. Беда в том, что в этом направлении никто не осуществляет глобального управления. Идя по нему, мир точно так же будет все глубже и глубже погружаться в «черную дыру сложности», которая только на руку монополистам. Тот же Колуэлл так обозначил фундаментальную проблему: «Существующая ситуация возникает из-за того, что производители аппаратного обеспечения создают его без должного взаимодействия с производителями операционных систем; у последних тот же самый тип отношений с производителями прикладных программ. Всеми движет желание поскорее выйти на рынок, и только».
Однако создание стабильных, заслуживающих доверия платформ общего назначения вполне достижимо, более того, это реально в рамках существующих технологий. Ключевой момент заключен в структурном разделении функций между аппаратной и программной частями платформы. И это же средство позволит избежать лишней сложности и гарантирует безопасность. Если, например, команда открытия файла OPEN будет реализована средствами микрокода, доступного только для чтения, тем самым будет положен конец свободному хозяйничанью в программах хакеров. Пока же трудно сказать, кто способен сделать это, нужны новые «действующие лица и исполнители».
Примерно то же самое можно сказать и о приложениях, на смену бесконечно меняющемуся busyware придет нечто стабильное; условно назовем его stableware.
Rebirth — так, насколько я знаю, называют одну из психоаналитических методик. У человека, увы, второй жизни нет, но если заново пережить процедуру рождения, то можно как-то скорректировать ту же самую жизнь в будущем. ИТ тоже не могут измениться радикально, но, видимо, и им нужно пройти через катарсис, очиститься от чего-то. Где искать истоки будущих изменений, какие вы видите тому предпосылки?
Возможен сценарий, когда появится вообще новый игрок, который изменит всю картину. Будет ли он снова американским или нет, сказать сложно. У Европы большой потенциал, но окажется ли он объединен или, скажем, нечто произойдет в отдельно взятой Финляндии или Швеции? Быстро растут ИТ-отрасли в Китае и Индии, альтернативу им могут представить Япония и Корея, нельзя забывать и о России, у нее были собственные разработки до начала эры System/360. У всех этих стран есть таланты, но им не хватает позиции на рынке. Не стоит упускать из внимания и того, что рынок движется не только доминирующим поставщиком, но и доминирующим заказчиком. Это тоже чрезвычайно важно, потребитель может изменить рынок, и такой потребитель, скорее всего, находится в Америке.
Возрождение (точнее, перерождение) возможно на основе стандартов, как в свое время становление эры мэйнфреймов было связано с языком программирования Cobol. Сейчас на виду три перспективных стандарта: Ethernet, TCP/IP и XML. Они покрывают три важнейшие области: операционные системы, языки программирования и базы данных. Они могут стать исходными точками будущей стандартизации. Нужны новые языки программирования, наиболее популярные сегодня Java, C и C++ слишком просты, находятся на слишком низком уровне. Дискуссия на тему Windows/Linux тоже, в конечном счете, ведет к открытым стандартам, а пока мы ждем операционную систему, которая была бы «генетически» ориентирована на сеть. Может быть, стоит вспомнить созданную еще в конце 60-х годов в МТИ операционную систему Multics; она отличный кандидат в качестве идеологического прототипа.
А что вы скажете о новых тенденциях? Появились Web-службы, платформы Sun ONE, .Nеt. IBM предлагает концепцию autonomic computing.
Ограничимся только двумя подходами, предлагаемыми теми же самыми монополистами, о которых мы говорили. Посредством .Net корпорация Microsoft делает явную попытку встать во главе разработки будущих платформ и платформенных служб. Корпорация даже предложила ключевую технологию .Net в виде MSIL (Microsoft Intermediate Language) и новый язык C# для стандартизации ассоциации ECMA (European Computer Manufacturers Association). В действительности, MSIL образует набор команд для некоторого абстрактного языка более высокого уровня. Браво, концепция, известная с 60-х — 70-х годов, оказалась востребованной. В остальном технология .Net может рассматриваться как возможность для конкуренции, поскольку позволяет выполнять приложения и под Linux, и под Solaris. Открытость .NET допускает возможность для спекулятивных утверждений, будто Microsoft не стремится стать доминирующим поставщиком платформы, а готова стать просто одним из разработчиков высококачественных сетевых приложений категории valueware. В подобных рассуждениях заинтересованы приближенные к Microsoft и сама корпорация, особенно в свете антимонопольного законодательства.
Что же касается autonomic computing, то выбор этого курса можно рассматривать как пробуждение от спячки, обращение внимания на ту проблему сложности, которую в IBM и создали. Директор по исследованиям IBM Пол Хорн в своем манифесте заметил, что корпорация превращается в сервисную организацию, где тысячи служащих занимаются тем, что помогают пользователям разбираться со сложными платформами, которые им IBM поставляет. Сейчас, кажется, там поняли, что в задачи интеллектуального программного обеспечения промежуточного слоя (middleware) входит перераспределение функций между аппаратным и программным обеспечением. Тем самым обеспечивается гибкость в предоставлении ИТ-услуг в манере услуг коммунальных (utility). Теперь пора сказать браво и в адрес IBM.
В заключение — о лидере эпохи. Независимо от того, кто им станет, будь то Microsoft, IBM или кто-то третий, в основе перерождения индустрии есть единственный основной сценарий. Согласно нему в процессе всемирной конкуренции будут создаваться объединенные аппаратно-программные решения обеспечивающие создание stableware. Нужно, чтобы это поняли владельцы венчурных капиталов и перспективные работы получили должное финансирование.