Опубликовано в Gazeta.Ru от 23-04-1999 (Выпуск No 039)
Оригинал: http://gazeta.ru/flopovod/23-04-1999_browser.htm


Михаил Донской
Тонкий и толстый клиент

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

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

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

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

Проблема в том, что для большого числа задач в Интернете неадекватен сам гипертекст. Хорошим подтверждением этому служит возникновение и бурное развитие языков программирования внутри HTML - Java, Active-X, скрипты разных видов. С точки зрения их создателей, они служат улучшению представления HTML информации, а с моей точки зрения - показывают ее ограниченный характер, недостаточный для сегодняшнего мультимедийного характера Сети.

Недалеко то время, когда страницы HTML будут напоминать суп из топора, взяв от самого HTML только тэги HEAD и BODY, а все остальное будет написано на других языках, внедренных в HTML. Мы можем по инерции поработать некоторое время и так, но рано или поздно встанет вопрос о замене HTML чем-нибудь более подходящим. Что будет тогда с браузером? Каждый может ответить сам.

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

На моем 200-м Пентиуме в 64 МБ оперативной памяти при работе в offline, то есть работе с локальными копиями HTML страниц, форматирование большой таблицы (например, любой типичной страницы GAZETA.RU) идет около 5 секунд. Это время легко отнести на время коммуникаций при нормальной работе, поэтому такая задержка не формирует психологического неприятия. Но как только большинство пользователей пересядет на быстрые линии с большой пропускной способностью, этот дефект будет вызывать раздражение.

Альтернативные браузеры, хотя и не столь популярные как эти основные, показывают, что проблема вполне решаема, и для навигации по гипертекстовому пространству не требуется 50 МБ кода, надо только выставить соответствующие требования разработчикам браузеров, а не принимать на веру то, что они делают. В-третьих, браузеры обладают плохим пользовательским интерфейсом. Собственно, для навигации ничего, кроме возможности кликнуть мышью по гиперссылке, и не требуется, но человечество давно привыкло использовать для других нужд drag&drop и другие интерфейсные "излишества", и лишиться их при работе с Интернетом, означает жесткие ограничения на проектирование авторами страниц взаимодействия с пользователем. Рад был бы Веб дизайнер включить в свою страничку drag&drop, да браузер не допускает. Все более или менее интерактивные штучки приходится реализовывать на встроенных языках программирования. А тут уж и до ошибок недалеко. Между прочим, до ошибок браузера, который эти программы интерпретирует. В результате все претензии по неустойчивости браузеров с полным правом отвергаются их разработчиками, а это, конечно, не ведет к улучшению его качества. Ведь если он упадет по своей собственной ошибке, такое падение всегда можно будет отнести за счет какой-нибудь встроенной программы.

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

В-пятых (last but not least), само понятие HTML документа очень размыто. Достаточно адекватной визуализации документа браузером, и документ уже считается "правильным", даже если он синтаксически некорректен. В итоге, больше половины документов на сети не выдерживают синтаксической проверки. Можете себе представить разработчика нового браузера? Ему волей-неволей придется повторять ОШИБКИ Internet Explorer. Потому что объяснить, почему Explorer показывает документ одним способом, а новый браузер - другим, невозможно. Такой, с позволения сказать, де-факто синтаксис стоит на пути многих систем автоматической обработки документов Сети.

В итоге, все это напоминает прокрустово ложе, что, впрочем, естественно, для любого приведения к стандарту. Ситуация такая же, как если бы все программы Microsoft Office были объединены в одну. Есть ли альтернатива? Конечно, а именно толстый, или специализированный, клиент. Точнее, много клиентов, хороших и разных.

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

С другой стороны, если клиент специализирован, ему можно подавать "сырые" данные, а приличествующую случаю визуализацию можно построить прямо на клиенте. Принципы взаимодействия тоже гораздо легче приспособить к задаче, если клиент специализирован.

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

Одним из очевидных способов такого освобождения служит разнесение во времени получения информации и ее визуализации. Никто особенно не торопится получать информацию, а сидеть, глядя как на экране монитора, как на переводной картинке. медленно появляется нужная информация, весьма неприятно. Если предъявлять информацию только в момент ее полной готовности к визуализации, то это сэкономит много нервов. Шустрые пользователи пытаются открыть несколько окон браузера, чтобы, пока в одном окне информация качается, читать ее в другом. Но не на ту программу напали - браузер по собственному разумению (или глупости?) переключает окна, как ему хочется, и все равно привлекает внимание хитрого пользователя к своему внутреннему процессу, отвлекая его от результата.

Вторая возможность - автоматизация процессов обслуживания в Интернете. Надо принять идеологию общения с Интернет как процесса, а не как набора единичных актов, как это делается сейчас, когда единственным связующим звеном между обращением к одной странице и обращением к другой, является явное действие пользователя. На самом деле, работая в Интернете, очень часто приходится по разным поводам повторять одну и ту же последовательность действий. Особенно это связано с вопросом "Что нового на моих любимых страницах?".

Такая последовательность действий, подобно доброй памяти batch файлам в DOS, могла бы выполняться в фоновом режиме, а пользователю предъявлялся бы окончательный результат. В итоге, пользователю не надо будет непрерывно наблюдать за огоньками модема и сообщениями в статусной строке браузера в ожидании содержательной информации. Вообще, понятия "плотности информации" как оценки качества интерактивных систем, сильно не хватает.

Заслуживает внимания и концепция "антианонимности клиента", которая возникла как-то в моем разговоре с А. Чижовым. Суть ее такова. Каждый сервер должен уметь обслуживать стандартный браузер или, иначе говоря, анонимного клиента, предоставляя ему информацию по стандартному протоколу в формате HTML. Каждый клиент должен уметь принимать информацию по стандартному протоколу в формате HTML, то есть быть анонимным. Но, если сервер и клиент "знакомы друг с другом", они могут перейти в режим общения по другим схемам, оговоренным строго между ними.

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

Я думаю, что вышеперечисленными преимущества толстого клиента не исчерпываются, поскольку создание таких клиентов развязывает руки разработчикам. Сегодня ни один умственно полноценный разработчик не будет надеяться на коммерческий успех разработки своего браузера. А индустрия shareware носит слишком самодеятельный характер, чтобы существенно повлиять на развитие качества пользования Интернет. Средним по размерам и амбициям программистским фирмам сегодня в Интернете места нет. Следовательно, нет и надежд на его существенное улучшение.

Развитие индустрии толстых клиентов могло бы расширить число задач, решаемых с помощью Интернета, сделать Сеть абсолютно необходимым компонентом не только информационного или коммерческого, но и рабочего пространства. И, главное, повысить качество жизни как в Интернете, так и реальной.

Пишите нам: info@gazeta.ru
Copyright © Gazeta.Ru
RRU_Network
При перепечатке и цитировании ссылка на источник с указанием автора обязательна. Перепечатка без ссылки и упоминания имени автора является нарушением российского и международного законодательства, а также большим свинством.