Программы не должны быть похожи друг на друга Брюс Тогназини - один из самых известных в мире специалистов по пользовательским интерфейсам. Он разрабатывал первые интерфейсы в Apple. Сейчас он работает в SunSoft, и на его карточке написано Distinguished Engineer. Он - классик. Брюс написал несколько популярных книг о программировании интерфейсов. Это совсем нестарый, дружелюбный (как интерфейсы, над которыми он работает) и энергичный патриарх. Во время выставки UnixExpo"96 он посетил Москву. Мы публикуем интервью, которое он дал ответственному редактору Computerworld Игорю Левшину. CWR: Что вы могли сказать о своей работе в Apple? Интерфейс для Macintosh, который вы разработали был идеальным для того времени, или сейчас вы сделали что-то по другому? Б.Т.: Интерфейс Macintosh был разработан для очень маленького компьютера с памятью 128 Кбайт, без жесткого диска, поэтому там очень много компромиссов. Забавно смотреть, как копируют этот интерфейс со всеми его недостатками и компромиссами. CWR: Что вы думаете об ОС Copland? Б.Т.: Мне нравится эта операционная система, но это... это не тот уровень, на котором должна находится эта отрасль. Со стороны программного обеспечения отрасль должна быть намного ближе к StarFire. Вы открываете текстовый процессор, там набор из множества инструментов. Но у вас всего один текст, а не сто. Зачем это все. Сегодня это выглядит просто глупо. Открыть сначала текстовый процессор, затем внутри текстового процессора открыть документ. Это как если бы вам надо было повесить картину на стену, и для этого сначала взять эту стену, затем взять гигантский молот, повесить его на стену, потом заглянуть в руководство и приказать молотку - "забей гвоздь". Это же бред. На Макинтошах не было "комнаты", надо было сначала дискету с приложением, чтобы перенести все в память, потом вынуть дискету с приложением и вставить дискету с данными. Если вы вставляете сначала дискету с данными, она немедленно потребует дискету с приложением. Но так было, когда компьютеры были маленькими-маленькими. Сейчас у вас есть текстовый процессор, отдельно - набор инструментов, отдельно - менеджер документов, который сейчас - часть системы. И все это работает по отдельности, происходят своеобразные перемещения документа внутрь-наружу. А должно быть так: у вас есть документ, где графика, текст, вы щелкаете мышью на картинке - появляется палитра для обработки изображений, вы щелкаете по текстовой области - инструменты редактирования, но документ остается одним единственным. Другими словами, мы возвращаемся к карандашу и листу бумаги, о котором забыли. Я как-то готовил слайды к презентации, где были графика, текст, диаграммы и так далее. И я решил подсчитать, сколько приходится переключаться между приложениями, сколько раз данным приходится перекочевывать из программы в программу. Восемьсот раз! В основном - cut-and-paste. Бред какой-то. Но с новым интерфейсом мне не надо будет никуда перемещаться. Я буду все время в одном и том же месте. CWR: Будет это чем-то напоминать OLE или CORBA, или что-то еще, или это нечто совершенно другое? Б.Т.: Именно они. Как раз эти технологии сделают возможным то, о чем я говорю. Сейчас у нас очень много работают, пытаясь женить CORBA на Java. Чтобы они трудились вместе. Конечно, такой мир, как мы хотим, гораздо легче собрать из объектов. Хотя, если взять первый компьютер Xerox Star, или первый компьютер Apple - LISA, оба обладали архитектурой, основанной на документах. Мы перешли на архитектуре, основанной на прикладных программах из-за того, что компьютеры были очень маленькими. LISA была еще до "Макинтоша", она была очень медленной и дорогой. Из-за этого и умерла. LISA осталась Великим Прототипом "Мака". Для каждой серьезной задачи должны быть свои компьютеры. Например, специальные компьютеры для математических расчетов. Конечно, если я работаю дома, мне мало мощи моего домашнего компьютера, нужны распределенные вычисления. Если я на работе, я должен иметь возможность пользоваться вычислительной мощью всех компьютеров предприятия, которые не слишком перегружены и даже компьютеров другой корпорации, причем я не должен думать о том, каким образом это будет происходить. Впрочем, наши обычные задачи не требуют, как правило, такой вычислительной мощи. Но сеть будет все равно нужна. Язык Java действительно способен решить все проблемы совместимости. На данном этапе это интерпретируемый язык, мы делаем интерпретаторы для всех платформ, чтобы на любой машине можно было написать программу и запустить ее. Следующий этап - над ним мы сейчас работаем - заставить программу работать в десять раз быстрее. Мы сейчас возвращаемся назад и собираем интерпретируемый код, а нужна компиляция в реальном масштабе времени тех частей программы, которые должны обязательно работать быстро. Мы объявили о производстве нового семейства микропроцессоров для поддержки языка Java. Я думаю, что Java и World Wide Web демократизируют отрасль. Сейчас держат рынок несколько компаний-гигантов. Но невозможно выпустить первый релиз, где будет все: то, что делает Word, что делает Photoshop. И не нужно. SUN всегда была открытой системой. Каждый может взять Java бесплатно и использовать его бесплатно на своем предприятии. Другое дело, если вы хотите, скажем, сделать свою программу просмотра, как Netscape, например. Тогда надо покупать лицензию. Лицензия стоит не так уж дорого. Основная цель лицензирования - как-то контролировать развитие языка. Эта ситуация похожа на ситуацию с аудиокассетами и компакт-дисками, когда Sony и Philips вместе разрабатывали стандарты и контролировали процесс лицензирования. Все это для того, чтобы любую аудиокассету можно было слушать на любом плейере. Мы вынуждены контролировать Java, чтобы не возникли различные диалекты, которые могут стать несовместимыми друг с другом. Мы надеемся, что удастся создать стандартный язык программирования, который будет развиваться несколько лет, сохраняя полную совместимость. CWR: Согласны ли вы с утверждениями, что Java - это на 90% C++? Б.Т.: Это точно. Кое-кто в Sun Microsystems называет его C++-=. Не знаю, правда, чему ж он в результате равен. С++ - хороший язык. Люди, которые разбираются в С++ способны перейти к программированию на Java моментально. Но С++ слишком локальный язык. Java преодолевает все барьеры. Разница не в языке, а в межплатформенной совместимости и во встроенном обеспечении безопасности. Мы надеемся, что написать на Java вирус будет просто невозможно. Но это между нами: а то все немедленно бросятся писать вирусы, и вдруг, все-таки напишут. Во всяком случае, средства защиты в самой концепции языка. CWR: Можно даже объявить конкурс вирусов для Java, по аналогии с фирмами, делающими противоугонные системы, которые обещают приз тем, кто угонит машину с их противоугонной системой. Б.Т.: Нет-нет! Мы объявили уже конкурс на апплеты Java. Но конкурс на самую лучшую пакость?.. Может быть, Microsoft... Microsoft, кстати, купила лицензию на Java. Какой смысл состязаться с языком? Если они будут разрабатывать несовместимый язык - зачем это нужно? Если полностью совместимый с Java - тогда им придется нам заплатить несколько тысяч в год, но, опять же, кому это нужно? Java всем выгоден. Компаниям, разрабатывающим программы, не надо писать под Windows или под Macintosh, или под Solaris. Сейчас пока доступны интерпретаторы, а позже, когда появятся интерпретирующие компиляторы, программы будут работать в точности также, как работают сейчас программы, написанные на традиционных языках. CWR: Ожидаете ли вы каких-то революционных изменений в языках программирования? Ведь современные графические интерфейсы были во многом инициированы развитием объектно-ориентированных языков. Б.Т.: Языки продолжают развиваться. Я пережил несколько языковых религий. Сначала это был Pascal. Это был совершенный язык. Вдруг появился С, и оказалось, что совершенный - он. Или, "культовые" языки, такие, как FORTH. Очень мощный. Сегодня очередь Java. Языки будут развиваться, пока развиваются компьютеры. Концепция компьютера может кардинально поменяться. Пока мы имеем дело с кремнием, но следующий век может стать веком ДНК-компьютеров или других биокомпьютеров. Нужны будут совершенно другие подходы. Сейчас Java - самый лучший язык, это совершенно ясно. Поэтому будет взрыв программирования на Java. Но это не конец, это - начало. CWR: Вы верите и в нанотехнологии? Б.Т.: На 100%. Только как это все будет происходить я не могу себе представить. CWR: Как вы думаете, "программки" на Java будут вовсю работать на устройствах доступа к Internet без жесткого диска и ценой 500 долл., или они будут исполняться на традиционных ПК? Б.Т.: Я думаю - подождем. Посмотрим. На корпоративном рынке есть место для компьютеров без локального хранения информации, в этом я уверен. На домашнем рынке... тут много будет зависеть от качества коммуникаций. Если вам придется ждать две-три минуты, чтобы распечатать страничку из текстового редактора или из электронной таблицы, это не приживется. Но если у вас будет ISDN... CWR: У вас-то есть? Б.Т.: Нет пока. Скоро будет, кажется. Так вот, ясно, что внутри предприятия есть рынок для этих устройств, а на потребительском рынке - сейчас не берусь сказать. Надо подождать немного. CWR: Что вы думаете о других интерфейсных разработках последнего времени. Например, об операционной системе Magic Cup альянса General Magic? Б.Т.: Magic Cap - великолепный интерфейс. Беда в том, что нет соответствующей инфраструктуры. Что нужно от PDA - маленького электронного персонального секретаря? Возможность организовать собственное время. Это значит, что если у меня есть книжечка-секретарь, и я договорился на следующий вторник о встрече с вами, я заглядываю в нее и вижу запись насчет нашей будущей встречи. И если пять минут назад моя секретарша переназначила свидание на вторник 10 часов, это должно быть здесь, в книжечке. На сегодняшнем уровне это неосуществимо. Теперь, я договорился, наконец, о встрече с вами на той неделе в 10 часов, я нахожусь в Москве и я установил звоночек на время за час до этого, но вот оказывается, что я должен в это время быть в Санкт-Петербурге. Тогда этот звоночек за час до встречи будет бессмыслен, мне нужно предупреждение за день. Но электронный секретарь ничего не знает о моих передвижениях. Проблема Magic Cap не в интерфейсе, а в том, что само устройство слишком мало знает о мире. Сейчас PDA - детская игрушка для тех, кто скучает без техники. Решать свои проблемы с PDA гораздо сложней, чем без него. Но зато это доставляет некоторым людям массу удовольствия. Скоро, наверное, все будет по-другому. Я за новые подходы. Для разных задач должны быть разные решения. Программы не должны быть похожи друг на друга. CWR: Кстати, сами вы участвовали в разработке Java? Б.Т.: Нет. Никогда. CWR: Верите ли вы, что Sun купит Apple? Б.Т.: Официально - No Comment. А неофициально - не знаю. Понятия не имею. Для меня б это было здорово. CWR: А для Apple? Б.Т.: Не знаю, не знаю. У Sun исключительно мощный маркетинг. У Apple - очень сильные технические специалисты. Сделка может пойти на пользу, но как все это будет - не представляю. Интерфейс "Звездное Пламя"На выставке UnixExpo Брюс рассказывал о том, чем он занимался последние 2 года. Его группа разрабатывала концепцию интерфейса будущего и снимала на эту тему фильм. StarFire - некий американский автомобиль XXI века, в который киевские инженеры поставили не совсем тот двигатель. Новый интерфейс помогает решить проблему вовремя. Hewlett-Packard "решала" подобную проблему с автомобилем 2005-го года Magellan и тоже успешно решила - знаменательное совпадение. Ролик Hewlett-Packard рекламировал интегрированную систему проектирования со всеми современными атрибутами - телеконференциями, ручными устройствами доступа к Internet, многооконными мультимедийными интерфейсами и так далее. То есть в принципе уже существующие технологии. Тогназини снял фильм о принципиально новых интерфейсах. Настолько новых, что имитировать их пришлось не только на компьютерах, но и в Голливуде: "Сам проект StarFire занял примерно 3 года, в нем были заняты полсотни людей, несколько месяцев я изучал работы футурологов, несколько команд работали над проектом, один человек разрабатывал неподвижные картинки, сам я делал всю анимацию, потом я поехал в Голливуд, нанял студию и актеров и много-много дней они занимались спецэффектами за 1000 долл. в час, собирая все вместе. Каждую неделю я ездил в студию и остальное время подправлял все дома на компьютере. Каждое воскресенье вечером я улетал в Лос-Анджелес с двумя двухгигабайтными дисками, начиненными анимацией. На каждом - по 30 секунд анимации. Кадры, где машина поднимается вверх по горе (несколько секунд) потребовали 180 часов работы. Через 10 лет это займет 30 секунд." Молодая очаровательная инженерша (положительная героиня) проводит рабочее время за столом, окруженным с трех сторон полуцилиндрическим дисплеем. Открывает документы она дотрагиваясь до экрана, потом стряхивает их оттуда элегантным щелчком, беседует с компьютером, просит его приготовить бутерброд, который берет прямо с экрана (эта опция пока недоступна). "Здесь нет принципиальных препятствий со стороны ПО. Если это будет нужно, мы все это сделаем. Дисплеи, такие как в фильме, тоже осуществимы: многие компании ведут сейчас разработки, и результаты уже есть. Цель фильма - объяснить потребителю, что интерфейс, который у них на ПК - не дисплей". Брюс хлопает ладонью по стене - это "Copy", потом бежит к противоположной стене, хлопает по штукатурке - "Paste". "А теперь мы нажимаем кнопку мыши. Это единственное "слово", которое мы можем сказать компьютеру. Это слово - "У-у!" (воображаемый фрагмент из буфера вставлен). Разве так разговаривают? А жесты? В Италии вас не поймут, если вы не будете, разговаривая, размахивать руками" . Как можно догадаться, очередной раз "очеловечить" интерфейс поможет Java. Один из принципов проекта StarFire - пользователь не должен замечать разницу работая с данными локального компьютера, локальной сети или Internet. "Недавно один студент прислал нам апплет: электронная таблица, где в одной ячейке - данные из локальной БД, в другой - адреса из WWW, в третьей - из SQL-базы на суперсервере. И все работает, швов не видно. И все маленькой программке. Word занимает столько места на диске! Десять лет назад я бы не поверил, что Microsoft изобретет способ, как сделать текстовый редактор, занимающий 43 Мбайт. Теперь я вполне могу себе представить, что лет через десять Microsoft выпустит текстовый редактор, занимающий 43 Гбайт. У меня на компьютере около сотни программ, и я готов поклясться, что у каждая из них в той или иной степени может выполнять функции текстового редактора. В проекте StarFire только один редактор. Если только этот термин сохранится. В быту мы не пользуемся какими-то текстовыми процессорами или инструментами, мы просто делаем то, что хотим делать. Вот каким должен быть интерфейс". |