Отвечая на некоторые вопросы пользователей…

Когда мы запустили этот блог, основной целью было положить начало двухстороннему диалогу о разработке Windows 7. Как и было задумано, мы начали диалог — мы поведали о том, каким образом ведем работу над продуктом, а вы, со своей стороны, реагировали и выражали свое мнение, давая понять, каким темы интересны больше всего. Для статистики: за столь короткий срок лично я получил более 400 электронных сообщений (но, к своему сожалению, ответил лишь на малую часть из них) и порядка 900 комментариев более чем от 500 разных читателей. Число просмотров блога на одного читателя возросло более чем в десять раз.

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

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

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

На этот раз мы затронем несколько тем, которые волнуют нас в течение довольно продолжительного времени. Каждая из них достойна внимания, но сегодня постараюсь осветить на конкретные просьбы читателей. Поскольку эта статья носит характер ответов на комментарии читателей, поэтому в ней есть место для дискуссий, и я надеюсь, что в будущем мы сможем вернуться к “контексту” подобных бесед.

Профильная установка

Многие из вас предлагают реализовать возможность в ходе установки настраивать Windows на работу по определенному сценарию. Среди наиболее распространенных из предложенных сценариев следует отметить игровой, повседневный, деловой, веб-серфинг, работа с почтой, "режим наименьшего потребления ресурсов" и т.д. Существует мнение, что Windows сможет работать шустрей, если настроить систему на определенный сценарий, но в действительности это не совсем так. Для реализации такой возможности есть много путей — настроить меню Start (чем занимаются сетевые администраторы крупных компаний), самостоятельность настроить характеристики производительности (размер блока диска, размер пакета tcp/ip и др.) или интерфейс (отключить графические эффекты). С другой стороны, одним из самых больших преимуществ Windows Server 2008 является возможность профильной установки. В серверной среде, однако, каждая из ролей представляет различные элементы аппаратного обеспечения (как правило, с различной конфигурацией) или определенный тип виртуальной машины – VM (с англ. виртуальная машина) для выполнения определенных задач: файлового сервера, принт-сервера или веб-сервера.

В этом смысле настольные компьютеры или ноутбуки отличаются от серверов, поскольку есть лишь один компьютер и роли его, как правило, четко не определены. В крайне редких случаях компьютер может быть использован лишь для одной цели. В действительности же число компьютеров, предназначенных для выполнения одной задачи, очень мало, а наши часто проводимые исследования лишь доказывают это, поскольку буквально на каждом ПК установлено, как минимум, одно приложение, которого нет ни у кого другого. Поэтому ранее мы старались избегать присвоения компьютеру определенной роли. Сегодня наступают времена, когда компьютеры могут использоваться по определенным сценариям, и появляется новая цель при проектировании ОС — уметь адаптироваться под них. Взять, к примеру, работу индексатора в Windows Vista через низко-приоритетные вызовы I/O API. Многие говорят о том, что это одна из функций, отключаемых в первую очередь, хотя в действительности затраты ресурсов на нее ничтожны. Но благодаря ей мы внесли кардинальные улучшения в Desktop Search 4.0 и Windows 7. На самом деле, ОС для общих задач должна адаптироваться под различные сценарии лишь после того, как получено согласие от пользователя. Многие из вас (в частности геймеры) цепляются за каждую возможность выжать дополнительные мегагерцы и мегабайты, но все те сложности и неудобства, вносимые попытками перехитрить системные службы ОС, затеняют увеличение производительности. Быть может, имеет смысл поделиться достигнутыми вами результатами, чтобы мы могли их прокомментировать?

Еще одной сложностью является проблема классификации. Это именно то, над чем я работал в Office 95 и Office 97. Мы думали о создании “мастера”, который бы спрашивал, сколько по времени вы используете Word, Excel, PowerPoint и Access, или спрашивающего о вашей профессии (юрист, бухгалтер или преподаватель). Мы планировали выбирать не столько приложения, сколько функции, которые следуют устанавливать. Но мы постоянно сталкивались с двумя проблемами. Во-первых, попытки пользователей отнести себя к одной из предложенных категорий все время проваливались — классическая проблема заключалась в том, что при появлении выбора пользователи хотели выбрать все, а некоторые считали, что ни один из вариантов им не подходит. Во-вторых, за компьютером могли работать несколько людей, а были и такие пользователи, которые хотели иметь возможность сменять роли компьютера. Оказалось, что корпоративные пользователи в этом смысле не отличаются от обычных, поэтому наступила эра установки полного комплекта программного обеспечения с последующим обучением по определенным сценариям работы ОС.

И, наконец, последним препятствием является то, как систему представить пользователям и когда. Эта последовательность шагов — так называемый out of box experience (сокращенно OOBE), которая проходит перед вашими глазами, когда вы распаковываете и включаете только что приобретенный компьютер (подавляющее большинство пользователей Windows получают компьютер именно таким путем) или запускаете установку с DVD (при покупке коробочной версии). Возникает необходимость создания еще одного пункта в OOBE, в котором можно выполнять настройки, имеющие отношение к производительности компьютера. Попытка решить проблемы с производительностью на этапе установки компьютера — задача сложная. Об этом мы поговорим в следующем разделе статьи.

Out of Box Experience - “OOBE”

OOBE по сути является тем местом, где пользователь впервые знакомится с Windows на новом компьютере. Многие пользователи считают, что качество OOBE определяется тем, сколько времени требуется с момента распаковки компьютера до того, как выйти в Интернет. Мы тесно сотрудничаем с нашими OEM-партнерами с целью рационализировать OOBE в Windows 7. Конечно, у OEM-производителей есть масса возможностей для настройки предлагаемых ими компьютеров, но мы хотим быть уверены, что мы, со своей стороны, сделали все, чтобы минимизировать время, необходимое для начала работы с компьютером.

Безусловно, можно добавить диалог с выбором профиля или мастер настройки ожидаемого (на время покупки) сценария использования компьютера. Это вовсе не значит, что OEM-производители не могут самостоятельно предложить профилированные диалоги для OOBE, но мы не можем заставлять всех наших пользователей отвечать на все эти вопросы в ходе основной настройки ОС.

Я осознаю, что многие из вас — энтузиасты, которые не раз сталкивались с настройкой Linux с помощью различных менеджеров установочных пакетов. И уже, наверное, убедились, что настроить систему под свои нужды, обеспечив высокую производительность, гораздо сложнее, чем просто собрать ее. На практике одни компоненты могут зависеть от многих других, в этом и заключается сложность, с которой порой трудно справиться даже с помощью менеджера зависимостей программного обеспечения (как Windows Installer). В результате пользователи больше выигрывают от наличия широкого перечня программного обеспечения, поскольку, как правило, на итоговую стоимость это не оказывает влияния — это является частью процесса разработки продукта, архитектурных особенностей и надежности системы.

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

Мы также четко понимаем, что есть опытные пользователи, которые хотят самостоятельно настраивать ОС по ряду причин. Сделать это можно с помощью функции “Turning Windows Features On or Off”, о которой так много спрашивают наши пользователи.

Функции Windows

Как правило, пользователи оставляют набор функций купленной редакции Windows без изменений, но что насчет тех, кто желает настроить приобретенную редакцию под себя и избавиться от неиспользуемых функций? Пользователям может потребоваться удалить некоторые возможности только потому, что никогда их не задействуют или хотят исключить ситуации, когда они могут быть применены. В некоторых случаях необходимо назначить компьютеру определенную роль, при этом требуется, чтобы у ПК был набор предварительно выбранных функций, а другие должны быть отключены. Этому может быть несколько причин. Разные версии Windows могли добавлять/удалять различные компоненты Windows. В Windows Vista стало возможным отключать различные функции системы, но при этом их можно включить вновь даже без оригинального установочного DVD. Кроме того, в Windows Vista мы значительно увеличили список функций, которые могут быть отключены.

В Windows 7 многие просят еще расширить этот список, внеся в него и другие функции. Следует отметить, что мы серьезно подумываем о такой возможности в Windows 7, поскольку искренне считаем, что это находится в полном соответствии со стратегией “выбора и контроля”, о которой говорилось и в этом блоге, и в блоге Internet Explorer.

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

Для пользователей, которые желают самостоятельно удалять, заменять или просто ограничивать доступ к конкретным компонентам Windows, мы предлагаем следующие инструменты:

  • Set Your Default Programs ( сокращенно SYDP) или Set Program Access and Defaults ( сокращенно SPAD ). В Vista эти функции позволяют настраивать приложения, запускаемые по умолчанию при открытии файлов определенного типа. Функция впервые появилась в Windows XP SP1. В Vista функция SYDP была усовершенствована и в будущем мы рассчитываем, что все программные продукты Microsoft будут корректно регистрировать и использовать данный механизм. Поэтому если вы желаете самостоятельно настраивать приложения для работы с электронной почтой или приложение для чтения GIF-файлов, используемые по умолчанию, эта функция для вас. Windows будет использовать эту информацию для всех типов файлов. 
  • Настройка меню Start или групповых политик. Сетевые администраторы в течение довольно продолжительного времени используют так называемые “ролевые” (от англ. role-based) компьютеры путем настройки меню Start на отображение определенного набора приложений. Такой подход широко применяется в Интернет-кафе. Функциональные возможности SPAD несколько шире, поскольку они позволяют обычному пользователю ограничивать доступ к установленным почтовым клиентам, браузерам, проигрывателям и Интернет-пейджерам.
  • Удаление кода. Иногда пользователям требуется удалить тот или иной код. Многие хотят избавиться от все большего количества неиспользуемых компонентов Windows, чтобы разместить ОС на твердотельных дисках. По этой причине по сети блуждает масса до неузнаваемости модифицированных дистрибутивов Windows. В интерфейсе Vista есть вполне функциональный инструмент под названием “Turn Windows Features on and off”. С его помощью вы сможете удалить из premium-редакций Vista порядка 80 различных функций.

Многим хотелось бы, чтобы перечень функций, которые можно включать/отключать, был больше — масса комментариев на сайте посвящены этому. В рамках платформы Windows это очень сложный вопрос — разработчики приложений для Windows считают наличие определенных компонентов, которые могут быть не нужны по мнению пользователей, вещью само собой разумеющейся. Будь то медиапроигрыватель, использующий адресную книгу Windows, или приложение для управления личными финансами, использующее службу очереди печати, или новый браузер, использующий в своей работе особые сетевые технологии. Это реальные примеры применения распространенных системных API, которые с точки зрения пользователя вовсе не нужны для работы системы.

Некоторые из примеров достаточно очевидны, поэтому они и реализованы. Взять, к примеру, компоненты TabletPC. Я пользуюсь очень маленьким ноутбуком, который обладает сенсорным экраном, но его экран слишком мал для рукописного ввода (для этой работы я предпочитаю экраны с диагональю 12.1” и более, а матрица этого ноутбука имеет размер в 10”). Компоненты TabletPC занимают память, поэтому их удаление на компьютере с 1 Гб памяти позволит компьютеру работать несколько быстрее. Это в моих силах. Пользователи просят о том же с Photo Gallery, Movie Maker, Windows Mail, Windows Calendar… это стоящие отзывы, которые мы готовы рассмотреть для Windows 7.

Важно понимать, что большинство предлагаемых к удалению пользователями функций потребляют ничтожно мало (или вообще не потребляют) ресурсов. Когда вы избавитесь от них, то вряд ли заставите компьютер работать быстрее. К примеру, работа Windows Mail никоим образом не сказывается на производительности системы, пока не настроены учетные записи почты или каналы новостей. С помощью SPAD можно скрыть приложение или сменить приложение для работы с почтой, используемое по умолчанию. Также можно изменить файловые ассоциации таким образом, что вы никогда не увидите Photogallery. Это значит, что такие функции вовсе не будут потреблять ресурсы компьютера.

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

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

Стивен Синофски