Редакторы "КТ" на редкость миролюбивые люди, а потому в "священных войнах" обычно не участвуют.[Владимир Гуриев, злорадно ухмыляющийся и приговаривающий "это все твой Linux виноват" всякий раз, когда у меня возникают какие-либо технические проблемы - начиная от неработающего ADSL-модема и заканчивая механической поломкой фотоаппарата, - является исключением, которое, как известно, только подтверждает правило. - И.Щ.] В частности, не ведем мы ожесточенных споров о том, какой браузер самый-самый лучший на свете[Сергей Голубицкий - еще одно исключение, подтверждающее правило. Причем подтверждающее буквально: с завидной регулярностью он меняет свои браузерные предпочтения и каждый раз доказывает, что очередной выбор - действительно самый лучший. С каждым разом у Сергея получается все убедительнее и убедительнее. Спорить уже давно никто не решается - проще подождать. - И.Щ.], благодаря чему можем не кривя душой дружелюбно беседовать с разработчиками всех основных интернетовских "смотрелок": весной вышло интервью с Алексом Могилевским, ответственным за MSIE 8 ("КТ" #733), в конце лета мы говорили со Збигневом Бранецким из Mozilla ("КТ" #747), а осенью пришло время "послушать Оперу" - вернее, ее директора по технологиям (CTO) Хокона Ли (Hа°kon Wium Lie, известен также как howcome).
Придя на встречу с Хоконом, мы сразу же обратили внимание на два обстоятельства: во-первых, наш собеседник принимал журналистов (а мы в этот день первыми не были) прямо-таки на чемоданах, которые образовали небольшую горку рядом с оккупированным нами столиком в ресторане гостиницы. Вторым фактором, способствующим росту энтропии, был сам стол, на котором лежали пара-тройка телефонов и несколько ноутбуков разного формата. В качестве стабилизирующего начала выступила Opera, которая на всем этом хозяйстве работала. Хокон Ли - улыбающийся, энергично жестикулирующий и благодарящий за вопросы - общей гармонии не нарушал, и чувствовался в этом какой-то особый стиль.
Чувство стиля
В интернет-сообществе Хокон известен в первую очередь как создатель CSS (Cascading Style Sheets) - языка описания стилей, ставшего стандартным средством верстки веб-страниц. Не всякий специалист со степенью Ph. D в области computer science может похвастаться таким влиянием темы своей диссертации на развитие технологий и всего веб-сообщества, - появление CSS позволило примирить технарей-пуристов, доказывавших, что HTML предназначен для описания только структуры и семантики страниц, а не их внешнего вида, и гуманитариев-дизайнеров, желавших во что бы то ни стало "делать красиво" и контролировать отображение веб-сайтов.
- У меня всегда была склонность к технике, - вспоминает Хокон. - С компьютерами впервые пришлось столкнуться в пятнадцать лет, а до того моей любимой игрушкой был конструктор LEGO. Я мечтал стать архитектором, но сейчас думаю - хорошо, что не стал. Многие современные архитекторы, похоже, слишком увлекались LEGO в детстве, и теперь строят довольно уродливые здания.
Знакомство с компьютерами, начавшееся с Apple II, произвело на Хокона сильное впечатление: "мой мир буквально перевернулся". Впрочем, рассказывая о своих детских воспоминаниях, он замечает, что по-настоящему интересными компьютеры стали лишь тогда, когда объединились в сеть и появился веб. Но до этого было еще далеко. Впереди у Хокона было участие в ряде исследовательских проектов, а также защита магистерской диссертации в знаменитой Media Lab Массачусетского технологического института.
- Я работал в MIT в 1989 году, когда веба еще не было. Возможно, он должен был появиться именно у нас в Media Lab, но этого не произошло. Мы тогда решали немного другую задачу - проектировали электронные газеты, пытались понять, как можно отображать новости в текстовом формате на большом экране. У нас были огромные мониторы, и я изучал типографику, шрифты, дизайн и представление информации. Это оказало на меня большое влияние и во многом определило мой дальнейший путь.
Открыв для себя веб в 1992 году, Хокон перешел в CERN и стал работать под руководством Тима Бернерса-Ли. В момент своего рождения "паутина" была чисто текстовой средой без каких-либо элементов визуального оформления. "Вы могли по ссылке мгновенно перейти на другую страницу, и это само по себе захватывало, но там не было даже изображений - только текст на экране терминала", - говорит Хокон. Графика появилась чуть позже, но исходная концепция HTML как языка логической разметки не подразумевала контроль за внешним видом страницы со стороны ее автора. Считалось, что в документе должно быть указано, где в нем заголовки, абзацы и списки, а какие использовать шрифты и отступы - забота клиентского браузера. Такая ситуация не устраивала ни Хокона ("мне казалось, что представление информации играет очень важную роль"), ни множество создателей веб-страниц. Однако начавшийся процесс добавления в HTML чисто визуальных тегов, не несущих никакого семантического смысла (типа <font>), подрывал одну из ключевых идей, заложенных в самих основаниях веба. Нужно было найти какое-то другое решение. "И я стал работать над CSS - таблицами стилей, позволяющими автору страницы сказать что-то о ее верстке, типографике, цвете, расположении элементов в пространстве и прочем", - вспоминает Хокон.
Идея задавать стили отображения различных тегов была реализована ранее Бернерсом-Ли (в коде NeXT), но там эти стили были жестко зашиты в код браузера, тогда как в модели CSS они составляют часть веб-страницы и контролируются ее автором. Эта концепция оказалась очень удачной, хотя нельзя сказать, чтобы ее ждало совсем уж безоблачное будущее - долгое время сравнительно неплохой поддержкой CSS могла похвастаться лишь занимавшая небольшую долю рынка Opera (в которой Хокон работает с 1999 года) и ряд браузеров на открытых движках, но не флагман рынка - Internet Explorer. Даже сейчас, по прошествии десятилетия с момента первой публикации спецификаций CSS, далеко не все сайты полностью следуют идее стилевой разметки (хотя теми или иными возможностями CSS пользуется, наверное, подавляющее большинство ресурсов). Однако в целом Хокон доволен современным состоянием веба: "Все было сделано на 99% правильно, а оставшийся процент можно исправить", - говорит он. Впрочем, совсем без ошибок не обошлось.
И снова о стандартах
Недостаточное внимание к стандартам в первые годы существования веба сильно замедлило его развитие, считает Хокон.
- Нужно было сделать стандарт HTML обязательным на техническом уровне. Исходно любая веб-страница считалась допустимой, и браузер обязан был как-то ее отобразить - это привело к появлению огромного количества "кривых" HTML-документов, которые оказались серьезной проблемой для Opera и других разработчиков браузеров. Если бы все с самого начала следовали стандартам, ситуация была бы много лучше, - убежден Хокон.
Впрочем, он соглашается с тем, что совсем уж "драконовские" требования к страницам могли бы сказаться плачевно на популярности всей технологии, поскольку ею мало кто захотел бы пользоваться. "Браузеры должны быть "прощающими" - до определенного момента. Они должны уметь отображать страницы с ошибками и при этом исправлять ошибки по правилам, которые заданы в самом стандарте. Именно такой подход мы применили в CSS, и я считаю его "золотой серединой" между популярностью и правильной архитектурой", - замечает Хокон.
Он неоднократно подчеркивает важность соблюдения стандартов как веб-верстальщиками, так и разработчиками ПО[И журналистами тоже, хотя бы в рамках одной редакции. Илья Щуров при совместной работе над статьей не упустил шанса продвинуть в массы стандарт ODF, по какому поводу мы с ним имели увлекательную беседу. - А.Б.]. Именно стандарты обеспечивают честную конкуренцию между браузерами и не позволяют начать "гонку вооружений" - подобную той, в результате которой в конце 90-х на рынке возникла монополия Internet Explorer. "Если одна компания решает слишком много, это не к добру, - считает Хокон. - Если мы хотим, чтобы веб был доступен отовсюду, с любых устройств, у нас должно быть много разных браузеров, соблюдающих стандарты".
Цели, которые формулирует Хокон, - выбор, конкуренция и совместимость в вебе, - почти дословно совпадают с теми целями, о которых мы говорили со Збигневом Бранецким из Mozilla. Нас удивляет такая схожесть мотивов двух основных конкурентов, и мы ставим вопрос ребром: "Люди из Mozilla говорят, что лучший способ обеспечить выбор и инновации - это браузер с открытыми исходными кодами, в разработке которого может принять участие любой человек; почему же вы работаете в компании, производящей проприетарный браузер?"
- Самое главное - это все-таки соблюдение стандартов, а не открытость кода, - парирует Хокон. - Большинство пользователей не умеют программировать, и им все равно, доступен код или нет, - главное, чтобы страницы правильно отображались. Впрочем, в тех случаях, когда мы можем сделать какой-то компонент свободным, мы так и делаем, - например, мы открыли инструмент для отладки веб-страниц DragonFly, поскольку понимаем, что он нужен интернет-сообществу. Мы были бы рады открыть и свои ключевые технологии, мы постоянно это обсуждаем, но пока не можем найти подходящую бизнес-модель. Скажем, сейчас мы продаем "Оперу" производителям мобильных устройств - если бы она была свободна, они могли бы нам не платить. Но зато мы имеем возможность дать людям полноценный доступ к вебу даже с таких устройств, на которых не работают никакие другие браузеры, - и это очень важно.