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

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

Производительность против оптимальности

Первую характеристику, которую обычно называют, говоря о ПК, - это частота процессора. Успехи в области наращивания мощности, где лидирует корпорация Intel, несомненны. Прогресс столь стремителен, что у многих программистов сформировалось устойчивое пренебрежение к вопросам производительности ПО: мол, если хотите, чтобы программа быстрее работала, просто приобретите более мощную аппаратуру. Часто этот подход подкрепляется психологией покупателей и заказчиков, которым легче выложить деньги за то, что можно пощупать руками, нежели за эфемерный "интеллектуальный" продукт.

Нет сомнений в том, что увеличение мощности компьютеров позволяет решить массу задач, ранее недоступных: становятся возможными реализация все больших по масштабу проектов, управление сложными системами, на бытовой уровень спускаются задачи, решение которых раньше было подвластно только профессионалам. Например, любой владелец ПК сегодня может скоротать время за подготовкой собственного фильма или обработкой фотографий, всегда под рукой огромная библиотека - Интернет. Другими словами, рост производительности приводит к качественным изменениям в методах использования вычислительной техники. И именно поэтому человек наиболее часто попадает в психологическую ловушку, которую можно охарактеризовать так: чем выше частота компьютера, тем он лучше.

Но в то же время все более очевидно, что гонка за мощностью - это тупик. Да, можно увеличить частоту процессора еще на порядок, и на ПК появится возможность решать какие-то новые задачи (а при этом и какой-нибудь хитрый способ потратить время впустую). Но уже понятно, что есть класс задач, которые без кардинальной оптимизации ПО и архитектуры машин не решить. Наиболее наглядный пример - распознавание слитной речи. Давайте посмотрим правде в глаза: распознавание речи сдерживается не мощностью компьютера, а отсутствием понимания, как это распознавание можно проводить. Двадцать лет компьютерные компании обещают выдать решение: "Вот только процессоры станут чуть помощнее..." Но результата нет и, похоже, не предвидится (я не говорю о распознавании раздельно произнесенных слов из лексикона заданной предметной области - эта задача сводится к сравнению записи речи с набором шаблонов). Года три назад Билл Гейтс говорил, что распознавание станет возможным, когда появится 64-разрядная техника. Но она уже есть: Sun Microsystems и IBM давно выпускают очень мощные машины - в сотни раз мощнее обычного PC. И впору ожидать, что на этих машинах существующие алгоритмы распознавания окажутся эффективными. Однако о таких экспериментах не слышно.

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

Другой пример неприспособленности классической компьютерной архитектуры хорошо знаком программистам, создающим КИС. Работа с объектами - естественный способ функционирования человеческого мыслительного аппарата и соответственно основа моделей всех предметных областей. Но где, кроме AS/400, объектная модель использована на аппаратном уровне? Итог: управление объектами возложено на программную среду исполнения, а аппаратная среда не имеет к информации о них никакого доступа. Это приводит к тому, что ключевые сведения, необходимые для оптимизации производительности, утрачены при стыковке двух слоев. Аналогично дело обстоит и с распропагандированным сейчас байт-кодом - оптимизирующие JIT-компиляторы также работают с файлом, из которого заведомо удалена вся информация о поведении программы. Поэтому приходится прибегать к уловкам вроде слежения за ходом ее выполнения.

Но ситуация еще хуже. В среде выполнения типа сервера приложений предметная область существует в объектном виде, а вот для постоянного хранения данных, как правило, применяется реляционная СУБД. Были попытки вывести на рынок объектные СУБД, но по маркетинговым причинам они провалились. Снова и снова программисты решают задачу отображения объектной ориентированной среды в реляционную. Недавно я рецензировал книгу по шаблонам построения КИС, так там этой проблеме было уделено несколько сот страниц! Но даже сизифов труд множества разработчиков по решению подобной задачи не спасет систему от потери ее эффективности в целом. По дикости все это напоминает эмуляцию нейрочипа (т. е. выполнение нейроалгоритма) на обычном процессоре - вместо врожденного параллелизма вычислений мы получаем невесть что.

Привычность метафор

Второй важной проблемой остается проблема психологической отчужденности компьютера. Человечество за время своего существования продемонстрировало способность приспосабливаться к чему угодно, в том числе и к компьютерному интерфейсу. (Хотя за многие подобные достижения приходится платить дорого - коренные народы технологически развитых стран численно вырождаются.) Но кто для кого существует? Человек для компьютера или наоборот? И что мы хотим от машины получить - помощника или наездника?

Проблема "очеловечивания" компьютера решается давно. Лидером (в области коммерческих решений) является Apple, промежуточное положение занимает Microsoft, в самой проигрышной позиции находятся разработчики Unix. Дизайн - это первое, что оценивают люди в современном мире. Сколько из них купит уродливый автомобиль, хотя и качественный внутри? И принцип "встречают по одежке" (а часто и провожают тоже) не утратит актуальность еще долго. Именно из-за пренебрежения к ориентации среднестатистического человека на красоту и удобство работы (вызванного как неосознанными желаниями Unix-гуру сохранить статус исключительности, так и просто полной их незаинтересованностью в решении проблем интерфейса для простых пользователей, называемых на жаргоне "ламерами") Unix в свое время практически исчезла с ландшафта настольных систем.

Microsoft, наоборот, пошла по пути приведения пользовательского интерфейса в соответствие со стереотипами, сложившимися для бытовых устройств. Крайне медленное усовершенствование ядра и ключевых сервисов системы и непрерывное увеличение нагрузки на системные ресурсы со стороны Windows компенсируются неизменной красотой и "попсовостью" интерфейса. Он отвечает главному подсознательному требованию людей - стремлению работать с примитивами на ПК, как с объектами реального мира. Как только продукт отходит от этой метафоры, к нему возникают претензии, а пользователям приходится прикладывать усилия для обучения *1.

_____

*1. Кстати, заметим, что базовые принципы SmallTalk вообще декларируют ОС как набор примитивных инструментов, которые не укладываются в понятие языка (взаимодействия с человеком), и ее предлагается исключить. Совсем.    

Второй важный психологический момент успеха Microsoft - это регулярный выпуск продуктов с измененным дизайном. Люди устают работать с одним и тем же продуктом, для релаксации им нужны перемены. Заметим в этой связи, что сегодняшние работы Sun Microsystems в области Java Desktop System, труды сообщества энтузиастов по разработке сред Gnome и KDE - это все попытки вернуть былое величие за счет придания Unix "человеческого" облика. И у них есть шанс именно благодаря стремлению людей что-то в жизни менять. Хотя пока заметного успеха в "очеловечении" Unix добилась лишь Apple - в основе Mac OS X лежит BSD.

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

Хуже того, главная идея работы с данными, лежащая в основе современных интерфейсов, неадекватна новым областям применения компьютеров. Фактически сегодняшний компьютер - это инструмент для бюрократа. Он сохраняет все бюрократические метафоры - документ (файл), папка, картотека (файловая система). Но при этом мы почти всегда работаем с описанием информации, а не с ее содержанием. Одно из немногих исключений, текстовый процессор, позволяет нам свободно оперировать внутренним содержанием документа. Мы можем производить поиск по этому содержанию, гипертекст дал возможность устанавливать связи изнутри документа с другими документами. Но вот столь же эффективной работы с мультимедийным данными современные средства не предлагают. Это серьезная проблема: как структурировать музыкальный архив и обеспечить навигацию по нему в рамках законов ассоциативного мышления, а не в рамках законов работы с метаданными? Если кто-то не согласен с этим утверждением, то пусть зайдет на iTunes и попробует найти мелодию исполнителя, имя которого он забыл, но примерно помнит, как сама мелодия звучит.Совершенно выпал из поля зрения производителей ПО такой класс пользователей, как производители знаний. Задача накопления данных и структурирования информации крайне актуальна. Нужны инструменты, позволяющие по мере накопления данных составлять ссылки между ними и, наконец, обобщать их. Иначе говоря, надстройки над объектными СУБД. Потенциальный спрос есть - это руководители компаний, департаменты маркетинга, ученые, аналитики. Но практически полезных инструментов для этого нет. Предлагаемые сегодня "карты сознания" (Mind Cards) или системы управления знаниями выглядят как детский совочек, которым нужно выкопать котлован. Я читал о некоторых интересных работах в области графических интерфейсов, но это все вещи для узкого круга ученых (если конкретно - математиков), далекие от широкого коммерческого применения.

Экологичность

Другой класс психологических проблем возникает на стыке программных и аппаратных компонентов современных компьютеров. ПК очень далек от понятия "бытовой прибор", хотя большинство людей подсознательно хочет, чтобы он был именно таким. Вот простой пример. Довольно легко подключить новое устройство к компьютеру. Но затем требуется установить драйвер. Лучшее, что ожидает пользователя, - это наличие нужного драйвера в дистрибутиве ОС, тогда тот установится сам. Но в идеале устройство само должно содержать этот драйвер, пересылать его на компьютер для инсталляции без ведома пользователя. Именно так была задумана когда-то технология Sun JINI. К сожалению, в серию она не пошла из-за того, что опиралась на Java, но, я уверен, идея будет востребована вновь. (Заметим, что исключительно для программного уровня похожая технология реализована уже сейчас - для установки плагинов в браузер. Правда, она все равно не идельна, так как процесс скачивания плагина часто требует ненужного внимания пользователя.) Последняя проблема вновь связана с увеличением мощности ПК. По мере ее роста растет и потребление электроэнергии, уровень шума, вибрация. Последние два фактора - дополнительная психологическая нагрузка на людей. Иначе говоря, ухудшаются потребительские свойства техники. (Здесь я должен сделать реверанс в сторону Hewlett-Packard, которая умудрилась создать бесшумные ПК.) В идеале в любой системе не должно быть движущихся частей, но в современных машинах их число растет. Одно время "держались" ноутбуки, но теперь и они сдают свои позиции. Кстати, в жертву производительности приносится одно из фундаментальных свойств ноутбука - мобильность (если взглянуть глубже, то жертва, конечно, приносится некачественно написанному ПО). На глазах ухудшаются и некоторые потребительские свойства мобильных телефонов - они теряют простоту интерфейса и привычность метафоры обычного телефона. Итак, наверное, достаточно примеров, чтобы убедиться: выбранный путь развития техники во многом ущербен. Пора сделать паузу в гонке за мегагерцами и подумать о том, каким же все-таки должен быть идеальный компьютер с точки зрения человека как биологического существа: компактный, бесшумный, без движущихся частей, с интерфейсом, опирающимся на знакомые любому метафоры, и не требующий усилий по совершению простейших технических его расширений. Программы должны писаться исходя не из оптимизации загрузки программиста, а из оптимизации нагрузки на пользователя. Другими словами, нужно строить архитектуру компьютера, отталкиваясь от практических задач, а не от технических новшеств *1, т. е. поставить развитие ИТ с головы на ноги. И мне кажется, что это не пустой призыв: вложиться в концептуально новые идеи - это один из немногих шансов для российских специалистов занять достойное место в мире уже в ближайшей перспективе.

_____

*1. Ближе всех к этому идеалу подошли компьютеры Apple, хотя тот факт, что это нишевой продукт, полноценно развиваться данной платформе не дает.

С автором можно связаться по адресу: vbor@pcweek.ru.

P.S. Я благодарю Эдуарда Пройдакова и Вадима Федорова за дискуссии, в рамках которых были высказаны идеи, использованные в этой статье. В частности, Вадим Федоров изложил соображения о метафорах управления мультимедийными данными и накоплением знаний.

Версия для печати