Я обычно пищу о вещах, которыми непосредственно занимался — или писал код, или управлял проектом. В этой статье я выбрал другой подход, чтобы написать о своём взгляде на глубинные причины фиаско Windows Vista (кодовое название Longhorn). Хотя это случилось более десяти лет назад, то был ключевой период по переходу на мобильные устройства — и те события вызвали долговременные последствия внутри Microsoft. Я нашёл, что многие попытки описать проблемы Microsoft, особенно в связи с переходом на мобильную платформу, неубедительны и не совпадают с моим пониманием того, что случилось. Статья в Vanity Fair «Потерянное десятилетие Microsoft» описывает бюрократическую гниль и подковёрную борьбу («жизнь… стала непрерывно жестокой») или культурную гниль из-за негативных последствий системы оценки рейтинга конкурентных стеков. Последующая статья в The Atlantic описывает ситуацию как классическую «дилемму инноватора».
Думаю, что ситуацию можно изложить иначе — с лучшей привязкой к конкретным фактам о проектах и истинными мотивами ключевых сторон. Это не попытка написать альтернативную историю — я понятия не имею, что бы случилось, не будь сделаны те ошибки. Но они определённо не помогли Microsoft пройти через этот переломный момент в компьютерной индустрии.
Это и не журналистское расследование — я не проводил большой серии интервью с ключевыми участниками событий. Здесь моё личное мнение на основании того, что я видел в то время и что узнал потом. Хотя в то время я работал в подразделении Office, мне приходилось тесно сотрудничать со многими коллегами из подразделения Windows, так что я хорошо осведомлён о процессах, которые происходили там.
Прошу прощения за большой размер статьи. Вот краткое изложение:
- Microsoft неверно оценила ключевые тенденции в развитии аппаратного обеспечения. В частности, резкий разворот в 2003 году в тенденции быстрого повышения частоты однопоточного процессора с соответствующими улучшениями других ключевых элементов ПК. Vista планировалась и создавалась для оборудования, которого не существовало. Это было плохо для десктопов, хуже для ноутбуков и ужасно для мобильных устройств.
- Ставка на C# и управляемый код была плохо обоснована и плохо реализована. Ответственность за этот конкретный провал можно напрямую возложить на Билла Гейтса и его бесплодные попытки создать священный Грааль из универсального хранилища с универсальной инфраструктурой приложений. У этого провала оказались особенно долгосрочные последствия.
- Управление проектами в подразделении Windows оставалось на катастрофическом уровне на протяжении всей его истории, в том числе были проекты, так и не доведённые до конца. Vista оказалась катастрофой, но стала просто кульминацией ряда почти катастрофических сценариев в ключевой миссии исполнения сложных проектов.
Поскольку это очень важно для данной истории, хочу начать с маленького примера о структуре индустрии и создании ценностных качеств.
Любое устройство состоит из аппаратного обеспечения, операционной системы (ОС) и приложений. На самом базовом уровне ОС управляет и выставляет аппаратные ресурсы таким образом, что приложения могут совместно использовать их. ОС предоставляет также программные интерфейсы (API), позволяющие разным типам оборудования подключаться к устройству, и API, предоставляющие приложениям доступ к этому оборудованию, а также системные сервисы ОС. Хотя на базовом уровне ОС предоставляет только аппаратные ресурсы, на практике «ОС» включает в себя много других высокоуровневых функций, в том числе графический пользовательский интерфейс, сложное управление для отображения и редактирования форматированного текста или внедрения HTML, высокоуровневую сетевую поддержку, управление файлами, механизмы для обмена данными и функциональностью между приложениями и даже целые приложения вроде браузера, почтового клиента, работы с фотографиями и камерами. История ОС, особенно в потребительском мире, предусматривает включение в себя всё больше и больше высокоуровневых сервисов, которые или напрямую предоставляются пользователям, или выставляются как API для приложений.
Это развитие высокоуровневой функциональности обусловлено благотворным циклом и многосторонними сетевыми эффектами, присущими бизнесу ОС. Всё большее и большее количество пользователей ОС привлекают больше разработчиков. Больше разработчиков создают больше приложений, что делает ОС более привлекательной для пользователей. Это приводит к циклу, когда ещё больше пользователей ведёт к ещё большему росту количества разработчиков. Предоставляемые API операционной системы — вот что делает бизнес-стратегию настолько успешной и стабильной для победителей этого состязания. Миллионы разработчиков в целом тратят огромные усилия на программирование системных API и сервисов за собой. Чем сильнее какое-то приложение зависит от сложных API, предоставляемых определённой ОС, тем сложнее перенести это приложение на какую-то другую ОС. Значит, даже если конкурент сумеет повторить ключевую функциональность другой ОС, он всё равно не получит эти приложения. Единственному поставщику ОС совершенно невозможно продублировать усилия, затраченные миллионами разработчиков.
С такой динамикой существует много усиливающих друг друга причин для поставщика добавлять в свою ОС всё более сложную функциональность и API, которую упрощают разработчикам доступ к этой функциональности. Сложная функциональность должна привлечь разработчиков, а с помощью простых API они смогут быстро создать лучшие приложения. Эти лучшие приложения сразу входят в благотворный цикл привлечения большего количества пользователей. Классическим примером было то, когда Windows стала первой ОС, где разрешили встраивать HTML-документы непосредственно в приложения. Что критически важно, после использования этой функциональности становилось сложнее перенести приложение на другую ОС.
Если посмотреть на Windows, iOS и Android, то все они используют ту же стратегию, хотя у Microsoft, Apple и Google разные способы монетизации. Microsoft классически берёт оплату за лицензию на каждом устройстве. Её платят OEM-сборщики, которые продают устройства с Windows. Это горизонтальная бизнес-стратегия с большим количеством OEM, каждый из которых платит Microsoft за каждое собранное и проданное устройство. Apple монетизируется через производство и прямые продажи устройств. Google зависит от постпродажной монетизации, в основном, через поиск. На самом деле страх, что Apple и Microsoft заберут мобильный рынок поиска (и мобильные сервисы в целом) — это главная причина инвестиций Google в Android. Microsoft также переходит на прямую монетизацию от продажи устройств (через линейку Surface), а также на постпродажную монетизацию (через Bing и платные подписки вроде Office 365).
Ещё одна важная часть, которую нужно здесь учитывать, — это сторонний связующий софт (middleware) вроде Java и Adobe Flash. В каком-то смысле он не отличается от высокоуровневых сервисов ОС, кроме того, что создаётся и предоставляется сторонней компанией. У провайдеров ОС и разработчиков связующего софта отношения из смеси любви и ненависти. В том отношении, что middleware позволяет разработчикам быстрее создавать отличные приложения для их платформы, это любовь. Часть «ненависти» управляется несколькими движущими силами. Определённые типы связующего ПО специально решают задачу создания приложений, которые работают на разных платформах. Middleware вроде Java и Flash распространяется под девизом «напиши однажды, запускай везде». Приложения, построенные на таком middleware, напрямую не зависят от API в ОС — и поэтому могут работать на любой платформе, где существует это связующее ПО. Оно осуществляет преобразование своих API в нативные API операционной системы. (Заметьте, что современные читатели могут представлять Java или как серверную инфраструктуру для веб-сайтов, или как предпочтительный язык для разработки Android-приложений. Я же имею в виду первопричины его создания как языка для браузерных приложений по требованию. В таком качестве он рассматривался во времена, когда планировалась Vista).
Кроссплатформенное связующее ПО разрушает сетевые эффекты, которые создаются в результате привязки приложений к определённой ОС через эксклюзивные API, специфические для этой ОС. Приложения, построенные на таком связующем ПО, также склонны использовать «наименьшую общую функциональность» всех ОС и не так быстро перенимают новые возможности, которые появляются в ОС. Некоторые виды функциональности ОС создают свои собственные внутренние сетевые эффекты, при которых чем больше приложений используют эту функциональность — тем лучше работают все приложения. Классическим примером является форматированный копипаст; чем больше приложений поддерживают копирование и вставку форматированного контента между собой, тем более ценной является ОС для каждого пользователя. Если сторонний провайдер связующего ПО блокирует эту динамику, то со временем он блокирует возможность устойчивой дифференциации ОС.
Браузер как платформа доставки приложений — вероятно, самый стабильный пример связующего ПО, которое нарушает динамику системных API. Если посмотреть на 35 лет компьютерной истории, то в какие-то моменты появлялись и другие подходы, но все они провалились по причинам, в которые мы здесь не будем углубляться. Для нашей истории критически важным является то, что 20 лет назад было не так очевидно, во что всё выльется. Страх middleware и нарушения стабильной дифференциации API были главными факторами во времена Vista.
Давайте разберёмся в истории Windows и проблемах в реализации этого проекта.
Я собираюсь провести тяжёлую работу по обобщению итогов, но думаю, что мы не потеряем суть. Обычно у каждого релиза Windows имелась главная тема и примерный срок. Например, Windows 95 должна была обновить пользовательские Windows на 32 бита, установить современную файловую систему, новый UI и стандартные сетевые средства (включая браузер). Кроме основных тем, отдельные разработчики и группы самостоятельно определяли ключевые функции в своей области — и начинали разработку. Продукт в разработке получался нестабильный, поскольку в течение долгого времени новые функции ещё не могли стабильно работать друг с другом. В определённый момент разработчики принимали решение, что достаточно хорошо развили функционал — и начинали работать над стабильностью и готовиться к выпуску. Исторически разработчики Windows обычно сильно просрочивали планируемую дату выпуска (Windows 95 изначально называлась Windows 93), а важная планируемая функциональность или отбрасывалась, или значительно урезалась по сравнению с первоначальными планами. Этап подготовки к выпуску часто превращался в «марш смерти», когда баги исправлялись поздними вечерами и на выходных — и постоянно сдвигались дедлайны. Хочу заметить, что ключевым отличием между Windows и Office было то, что после Office 97 команда Office устанавливала дату выпуска следующей версии — и обычно соблюдала сроки. Это позволяло добиться широкой координации с минимальными накладными расходами.
Процесс сильно отличался от современных практик разработки. Независимо от того, пришла идея отдельной функции сверху вниз как часть более широкого ви?дения или снизу вверх от отдельных разработчиков и групп, но современные практики обычно предусматривают непрерывный контроль качества и очень частые релизы для пользователей. Сервисы могут обновляться в продакшне несколько раз в день, а новый клиентский код выходит еженедельно или ежемесячно (обновление клиента дорого обходится как провайдеру, так и пользователям, что затрудняет слишком частые обновления). Это требует, чтобы основная архитектурная и инженерная инфраструктура надёжно работала в больших сложных системах, таких как Windows или Office. Этот процесс не всегда делает проще значительные прорывы в сложной функциональности, но кардинально увеличивает гибкость групп разработки и их способность реагировать на внешние события и реалии. Он также даёт гораздо более честную оценку реального текущего прогресса. Возможно, стоит написать отдельную статью, как подразделение Office осуществило переход на эти практики современной разработки, но достаточно сказать, что подразделение Windows в то время даже близко к ним не приблизилось.
Windows XP стала масштабным релизом, которая тоже соответствовала упомянутому печальному шаблону. Она объединяла бизнес- и пользовательскую платформы на надёжном ядре Windows NT с дружественным пользователю интерфейсом. Сложно было добиться совместимости со всеми приложениями, созданными для платформы Windows, но это было ключевым фактором для перехода на единую бизнес- и пользовательскую платформу. К сожалению, в Windows XP нашли 0day-уязвимость, которая попала в заголовки новостей прямо в день публичного релиза. Эта и другие катастрофы в области информационной безопасности заставили Microsoft кардинально модернизировать ПО и пересмотреть практики разработки в области безопасности — и в конечном итоге выпустить безразмерный сервис-пак для Windows XP, в создании которого приняла участие большая часть подразделения Windows. Вдобавок, ключевые группы по разработке системного ядра Windows (группы Core) работали над 64-битной версией, что оcобенно важно для объединения клиентских и серверных установок Windows (в то время Windows отставала от других корпоративных платформ вроде Sun Solaris в области 64-битных вычислений). Это было критически важно, поскольку Windows конкурировала (и успешно) в сфере более крупных корпоративных серверов.
Хотя крупные отделы подразделения Windows концентрировались на названных инициативах, не меньшая по размеру организация занималась созданием следующего поколения Windows поверх «управляемой» платформы C#. Здесь нужно немного объяснить подоплёку.
С самых первых дней браузер начал развиваться как платформа доставки приложений. Пресловутая цитата Марка Андриссена «Netscape скоро оставит от Windows только плохо отлаженный набор драйверов устройств» датируется 1995-м годом. Это привело к реализации стратегии «поддержать и надстроить» (embrace and extend), которая доставила Microsoft столько неприятностей в связи с антимонопольным расследованием. Microsoft создала и развивала собственный браузер и механизм внедрения проприетарного кода ActiveX. В то время появилась Java как альтернативная стратегия доставки приложений. Разработчики могли использовать Java, высокоуровневый язык со своим собственным богатым набором API, где код автоматически скачивался и запускался в браузере. Java рекламировалась как технология «напиши однажды, запускай везде», что явно попадало в спектр реакции «ненависти» по отношению к связующему ПО. Неожиданно Microsoft подписала лицензионное соглашение с Sun относительно Java, но потом на компанию подали в суд, когда Microsoft расширила Java для прямого доступа к нативным интерфейсам Windows API (что нарушало принцип «запускай везде», но давало разработчикам Java доступ к более богатому и растущему набору API на платформе). Microsoft договорилась о сделке по иску о Java и в конечном итоге решила пойти по собственному пути с языком программирования C#. Это решение оказалось катастрофическим по многим причинам. (Замечу, что C# сам по себе представляет собой отличный образец технологии — катастрофа была в стратегии).
C# — это «управляемый» язык. Главным образом это означает, что разработчикам не нужно управлять выделением и освобождением памяти «вручную». Язык и среда выполнения используют сборку мусора для автоматического освобождения любого участка памяти, который больше не используется. Важно, что среда выполнения также предотвращала типы ошибок в памяти, из-за которых в то время появлялись многие уязвимости в безопасности. В то время, а в реальности в течение всего последующего десятилетия, продолжались страстные рассуждения о влиянии автоматического управления памятью на производительность программирования и безопасность. Я не буду пересказывать здесь те споры. Достаточно сказать, что самая успешная современная операционная система iOS решила не играть в эти игры (Android продаётся в большем количестве, но iOS получает львиную долю прибыли). Управляемым окружениям присущ перерасход ресурсов по сравнению с неуправляемыми окружениями, так что им требуется больше памяти для работы. Большинство окружений, которые используют преимущества производительности управляемого кода, стараются осторожно ограничить его использование только там, где это имеет наибольший смысл, а не слепо использовать везде подряд.
Если программисты впервые столкнулись с окружениями такого типа (а это почти 100% разработчиков проекта Windows в то время), то они несерьёзно относятся к использованию памяти. Но как бы не управлялась память, автоматически или вручную, она представляет собой ресурс, и несерьёзное отношение к ресурсу ведёт к раздутому коду, которому для работы требуется больше памяти. На самом деле даже «высокая продуктивность» (генерация большого количества кода) не всегда главный критерий успешности проекта («если бы у меня было больше времени, я бы написал письмо короче»). В то время использование большего количества ресурсов являлось частью системы ценностей, поскольку так усиливалось значение толстого клиента для вычислительных возможностей системы (по сравнению с «тонким клиентом» вроде простого приложения, работающего через веб-страницу). При создании обновления Longhorn разработчики Windows хвастали бы тем, сколько новых API они написали.
Частью ставки на C# также была ставка на богатую библиотеку основных классов и создание новой клиентской технологии как набора библиотек классов поверх этой базы. Базовая библиотека предоставляла простые типы вроде строк и массивов, а также более сложные структуры данных и сервисы вроде списков и таблиц хэширования. Смысл в том, что это должно обеспечить единообразие для всего Windows API. Win32 поначалу были относительно небольшими единообразными API, но за последнее десятилетие сильно раздулись усилиями такого большого количества групп, которые добавляли в набор API без какой-либо единой последовательной концепции. Новая библиотека рассматривалась как возможность вернуть всё на круги своя.
Тот факт, что ни одна другая операционная система не выбрала такой путь, рассматривался как своего рода «большая ставка», что являлось фундаментальной частью системы ценностей во внутренней культуре Microsoft. К сожалению, кроме проблем с использованием раздутых ресурсов, существовали фундаментальные вызовы с использованием новой технологии в операционной системе (особенно с тем, как обрабатывать сбои ресурсов в критических частях ОС, как независимо обновлять приложения, управляемую среду выполнения и ОС и как сделать, чтобы различные части ОС развивались независимо друг от друга), которые не решили или не полностью понимали в то время. Не существовало буквально никакой стратегии миграции для существующих приложений, построенных поверх неуправляемых Win32. Несмотря на это, огромные армии разработчиков развернули строительство поверх этой нестабильной платформы. Над чем они работали?
В этом месте имеет смысл подключить к рассказу Билла Гейтса.
Вся история Microsoft с момента основания компании посвящена превосходству софта над железом. Программное обеспечение является повсеместным товаром, а ценность именно в программах. Если посмотреть на устойчивую прибыль экосистемы ПК, то такой взгляд действительно кажется точным. Определённо он точен с точки зрения взаимоотношений OEM и Microsoft. Компания Intel получала львиную часть прибыли среди производителей всего компьютерного оборудования. В то же время динамика всей компьютерной экосистемы поддерживалась бесконечным экспоненциальным ростом производительности железа под действием закона Мура и других экспоненциальных трендов. Программное обеспечение словило волну, поскольку именно оно получало основную экономическую выгоду от финального продукта. Помните, что фундаментальная ключевая роль ОС — это предоставлять аппаратные ресурсы для добросовестного использования приложениями.
Переплетённые роли железа и софта иногда затрудняют оценку распределения стоимости. На самом деле анализ рынка смартфонов помогает внести ясность. Когда инженеры RIM (производитель доминирующего телефона Blackberry) посмотрели демонстрацию оригинального iPhone, их первая реакция была: «Это невозможно»! Невозможно сконструировать полноэкраннный легковесный телефон с тач-интерфейсом и такой производительностью, чтобы аккумулятора хватало на достаточно долгое время. Но в реальности такое оказалось возможным. Последние десять лет рынок двигали вперёд непрерывные аппаратные инновации (лучшие экраны, более быстрая связь, более производительные процессоры, больше памяти, лучшая камера, новые сенсоры, более ёмкие батареи, уменьшение веса, мгновенное включение) опосредованно через программное обеспечение ОС.
Когда iOS открылась для сторонних приложений, поразительным оказалось то, как аккуратно ОС контролировала поведение приложений, чтобы сохранить общую производительность устройства. От стандартов и обязательного рассмотрения в курируемом каталоге приложений Apple до продуманной изоляции приложений в песочнице, от первоначального ограничения на одну задачу без фоновых процессов до жёстких ограничений на отклик приложения и обработку аудио и видео с аппаратным ускорением и низким энергопотреблением, а также множество других техник, направленных на сбережений драгоценной энергии батареи — очень многие инновации iOS фундаментально относились к ключевой функции ОС по управлению аккуратным экспонированием аппаратных ресурсов приложениям.
Трудно не заметить огромную разницу с подходом, который исповедовали разработчики подразделения Windows с выпуском Vista. Роль аппаратных инноваций заключалась в том, чтобы сделать возможными программные инновации, а не в том, чтобы софт олицетворял инновации железа.
Когда начался проект Longhorn, три крупные группы начали масштабную работу по переосмыслению клиентского программного стека поверх управляемой платформы C#. Группа WinFS должна была создать новый слой универсального хранилища для приложений. Вместо простой иерархической подборки файлов и директорий файловая система работала под управлением полнофункционального реляционного движка. Это должно было не только облегчить создание новых мощных приложений, но их данные не запирались бы в непрозрачных файлах, а становились доступными для других приложений и реляционных таблиц, которые можно смешивать и сравнивать в новых ещё более функциональных приложениях. Это примеры внутренних сетевых эффектов, благодаря которым создаются мощные рвы против конкурентов. Информация также открывалась новому файловому менеджеру для простого поиска и сложных запросов. Так должны были наконец-то реализоваться идеи универсального хранилища Cairo, которое забросили и не сумели внедрить в Windows 95.
Группа Avalon (позже Windows Presentation Foundation) должна была переосмыслить уровень представления поверх мощных графических процессоров. Уровень представления концентрировался на создании универсального холста, где пользовательский интерфейс и контент насыщенных приложений незаметно смешивались между собой, так что результат частично представлял собой документ, а частично — пользовательский интерфейс, всё под управлением мощных графических процессоров, способных обрабатывать 3D-игры.
Третья группа писала код, который вышел как Windows Communication Foundations (WCF) для создания сетевых функций. Это критический компонент практически любого современного приложения.
Сочетание насыщенного хранилища и насыщенного представления было чашей Грааля для Билла. Построенные на стабильной управляемой инфраструктуре C# эти компоненты сделали бы возможным создание новых классов мощных приложений, которые разработчики могли бы быстро и эффективно конструировать. Насыщенная инфраструктура и защитный ров API обеспечили бы ОС благоприятный цикл с положительной обратной связью ещё на одно десятилетие.
Так что пошло не так? Если одним словом, то всё.
Некоторые проблемы объясняются провалами в исполнении краткосрочных задач, а другие были долговременными стратегическими ошибками.
Когда группа Core выступила с проектом повышения безопасности и 64-битной Windows, она провела переоценку статуса всего проекта Longhorn. Разработчики написали огромный объём кода. К сожалению, когда вы строите сложную систему и работаете без чётких ограничений и дедлайнов, правильное ментальное состояние команды, которая генерирует много кода, не соответствует ментальному состоянию тех, кто строит железную дорогу через всю страну и уже завершил её на 90%. Их скорее можно сравнить с теми, кто вырыл невероятно глубокую яму, а теперь думает, как выбраться обратно и закопать её. Команда только справилась с пониманием всех последствий попытки доставки функций ОС поверх этой управляемой инфраструктуры. Они осознали, что у них тонна работы, чтобы просто сделать реальностью базовые предпосылки. Кроме всего этого, ни один из основных компонентов не доведён до стадии готовности. Они также начали понимать ограничения производительности при внедрении основных новых подсистем в существующий код. Проекты WinFS и Avalon не заменяли существующей инфраструктуру ОС, а ложились поверх неё. Так что существенные расходы вычислительных ресурсов просто добавлялись сверху.
Как объясняется в статье Wall Street Journal от 2005 года, Олчин принял решение вынести эти основные компоненты из релиза, продолжая их разработку. В результате после трёх лет продуктового цикла работу над ними приходилось начинать фактически с нуля. Все эти управляемые функции нужно было исключить из основного состава ОС и поставлять отдельно. Их исключение явно было правильным решением, но исключение обеих подсистем выявило и вызвало проблемы, которые затем сохранятся в течение десятилетия.
Ставка на C# и управляемый код включала в себя стратегию, которая сокращала вложения в неуправляемые слои Win32. Я помню долгие совещания с попытками уговорить представителей подразделения Windows сделать относительно небольшие коммиты в текстовые и графические функции, необходимые для Office. Исключение из релиза этих компонентов C# сделало ещё более очевидным, что Windows ещё несколько лет останется без ключевых управляющих элементов пользовательского интерфейса для разработчиков (таких как Office) в своём основном Win32 API.
Также катастрофические последствия имело то, что ставка на Avalon сопровождалась массивным сокращением работы над IE. Группу IE сократили, переведя часть сотрудников в проект Avalon, а IE оставили на жизнеобеспечении с невозможностью решить кучу проблем в безопасности, число коих постоянно множилось. Долгосрочное ви?дение заключалось в том, что HTML станет древней технологией, а те приложения, на которые нацелены наши конкуренты с помощью браузера и HTML, станут работать поверх новой инфраструктуры Avalon.
Это стало гигантской стратегической ошибкой, которая открыла дверь для распространения Firefox, а затем и браузера Chrome от Google. Хотя невозможно сказать, предотвратили бы такой исход вложения в IE, но определённо не стало бы хуже. Прекращение вложений также подорвало команду IE и оставило их неподготовленными и с нехваткой персонала перед лицом продолжающейся быстрой эволюции веб-технологий, что разрушило репутацию IE среди веб-разработчиков. Факт совершённой ошибки немедленно стал очевиден для всех в компании: здесь не требовалось быть особым провидцем. Office и другие подразделения в компании активно вкладывались в веб и HTML. Не существовало никакого реального способа, как эти инструменты могут перейти на Avalon, а уж тем более вся индустрия. На самом деле команда Avalon так никогда и не описала этот реальный способ: должно было случиться нечто волшебное — и вдруг все начинают писать приложения Avalon вместо HTML. Это было настолько же абсурдно, насколько и бессовестно. Сразу после того как мы «выиграли» войну браузеров и наблюдали поглощение Netscape корпорацией AOL, мы кардинально снижаем дальнейшее развитие технологий на этих открытых стандартах. Только с началом проекта Windows 7 восстановили персонал группы IE и возобновили активные инвестиции в IE и стандартные веб-технологии.
С Avalon связаны и другие последовавшие проблемы.
Модель Avalon основывалась на концепции Билла, чтобы обеспечить универсальный холст, среду выполнения для приложений. Как я объяснял в статье «Дырявая на уровне архитектуры», одна из главных проблем для разработчиков фреймворков вроде Avalon — как открыть функции на разных уровнях так, чтобы приложения могли привязаться к ним на соответствующем функциональном уровне и не нести лишних затрат производительности. Если открыть функциональность только на самом высоком уровне, то вся работа по сути будет недоступна для более сложных приложений (таких как приложения Office), которым нужна привязка на более нижних уровнях. Потребовалось ещё 10 лет до выпуска Windows 10, прежде чем решили эти проблемы на уровне архитектуры.
Avalon также сделал ставку на энергоёмкие графические карты. Мобильная графическая модель, хотя использовала некоторые такие же элементы, в основном фокусировалась на достижении плавной анимации за счёт предварительно отрисованных текстур или слоёв с их зуммированием, панорамированием и смешиванием. Количество слоёв аккуратно ограничивается, чтобы мобильный графический процессор показывал большую частоту кадров, необходимую для плавной анимации и взаимодействия с пользователем, потребляя при этом немного энергии. Графическая модель Avalon эффективно двигалась в противоположном направлении.
Проблемы с WinFS в каком-то смысле оказались даже более фундаментальными, чем с Avalon. В то время как Avalon поставлялся отдельно, а некоторые ключевые концепции использовались как основа для компонентов UI в Windows 8 и 10, проект WinFS полностью прекратили.
Изначально предполагалось, что WinFS станет файловой системой. Невероятно сложной задачей представлялось заменить старую файловую систему на полностью новую реализацию, которая несёт в себе некоторую важную новую функциональность, — и в то же время сохранить видимую неизменность для огромного массива существующего программного обеспечения. Особенно с учётом того, что основные разработчики базовых подсистем Windows тогда занимались другими задачами (безопасность и 64-битная версия). Так что WinFS создавалась как сторонний компонент, который предоставит дополнительную функциональность для поиска и насыщенных запросов. Эта конструкция означала, что WinFS будет нести значительные дополнительные затраты на производительность с меньшим количеством возможностей для сквозной оптимизации. Как и для любой новой функции, эти затраты должны сочетаться с её преимуществами. Но в тот момент WinFS действительно предоставляла только поиск, который был «просто функцией», а не изменением парадигмы, как предполагал Билл. В Microsoft уже имелся движок десктопного поиска, который потреблял гораздо меньше ресурсов, чем WinFS. Более того, осуществление такого переворота в экосистеме для локального поиска ПК, когда бoльшая часть информации мигрировала с ПК в облако, говорило о крупном непонимании современных тенденций из-за этих неустанных попыток сосредоточить инновации на насыщенном клиенте.
На более глубинном уровне ви?дение Билла экосистемы приложений, которые хранят всё у себя и делятся своими данными в этом реляционном хранилище, прямо противоречит тому, как приложения строят свои модели данных. В то время как некоторые настольные приложения (и почти все внутренние приложения для IT) используют реляционные хранилища для своей внутренней модели данных, они не хотят предоставлять эти модели данных для неконтролируемого чтения и записи другими приложениями. Я объяснил некоторые из фундаментальных причин в вышеупомянутой статье «Дырявая на уровне архитектуры». Были (и есть) множество других вариантов для приложений, которые хотят использовать реляционное хранилище. И конечно, долговременная тенденция заключалась в том, что все эти данные перемещаются в облако, а не запираются в хранилище локального ПК.
Решение продолжать инвестиции в этот управляемый стек и вынести его из релиза ОС повлечёт долговременные последствия и после выпуска Vista. Руководство смирилось с реальностью, что он не станет частью релиза, но продолжало рассматривать эти технологии в качестве основных звеньев клиентской инновации. Когда Синофски реорганизовал структуру подразделения Windows для продуктового цикла Windows 7, он вынёс все проекты управляемого кода из подразделения Windows в подразделение разработки (DevDiv), выстроив их наряду с другими командами DevDiv, которые занимались созданием управляемых компиляторов, сред выполнения, базовых библиотек и сред разработки. Позже он вступит в борьбу за то, что считать основной средой выполнения Windows в процессе продуктового цикла Windows 8, но сейчас эффективно отложил борьбу, вытеснив эти команды и не создавая альтернативных проектов внутри организации Windows. Это повлекло долгосрочные последствия. Проекты продолжали потреблять внутренние инвестиции и ресурсы. Общественность продолжала думать, что за управляемыми средами выполнения — будущее Windows. Образовалась территория «выжженной земли», когда не производилось никаких значимых инвестиций за пределами управляемых областей (и, следовательно, полностью отсутствовали инвестиции для Office и других крупных неуправляемых приложений). Кроме того, команды по разработке управляемого кода теперь даже не думали о серьёзных вложениях, связанных с новыми инновациями аппаратного обеспечения, а только о построении полностью независимого связующего слоя. Эти управляемые библиотеки и среды выполнения стали «чистым связующим ПО». На самом деле, в попытке конкурировать с Flash (от которой потом отказались) эти компоненты даже упаковали вместе в виде Silverlight и распространяли под разные платформы ОС. Трудно предоставить более явные доказательства, что все эти программные инновации оказались полностью оторваны от того, чтобы концентрироваться на трансляции аппаратных инноваций таким образом, на какой способна только ОС.
Если считать связующее ПО одним из самых страшных кошмаров для поставщика ОС с точки зрения потери монополии на посредничество, то становится ясно, что «мы столкнулись с врагом, и это один из нас». Я не заявляю, что обладаю инсайдерской информацией за тот период, но помню раздражение из-за этой сконцентрированности на слоях управляемого года и их бесполезности для большинства сценариев Office, хотя не могу чётко сформулировать стратегические проблемы. На самом деле именно системные инновации в iOS дали чёткое понимание задним числом, насколько неправильное направление было выбрано для работы.
Обвинения в раздувании кода, которые я сделал в адрес стека C#, очевидно, не объясняют проблемы с производительностью Vista, поскольку управляемый код вывели из релиза. Windows XP поставлялась с минимальными системными требованиями в 64 МБ оперативной памяти, с повышением до 128 МБ после выхода основного сервис-пака безопасности для Windows XP. В Vista требования к памяти выросли до 512 МБ, хотя реалистично для нормальной работы требовался 1 ГБ (читатели старшего поколения могут помнить скандалы с сомнительной пометкой “Vista Capable” на компьютерах). Ни разу никто внятно не объяснил причины повышения минимальных системных требований. Было много отдельных команд, которые стремились воспользоваться «неизбежным» увеличением производительности из-за закона Мура, и кумулятивным эффектом стало это раздувание кода. В реальности важным фактором для общей производительности (и общих проблем с качеством) стала спешка с релизом, которая началась ближе к окончанию проекта. Низкая производительность стала результатом не только больших решений, но часто и множества мелких решений, сделанных в качестве компромисса между преимуществами и недостатками, лишь бы получить результат после долгих часов анализа кода, когда уже просто не оставалось времени. Сделанные в Windows 7 оптимизации явно показывают, что возможности для улучшения тогда были — но не было времени.
Другой удар по репутации Vista как стабильной системы нанёс проблемный характер драйверов — ключевого программного обеспечения, который писали и поставляли производители оборудования (графических карт, сетевых карт, жёстких дисков и др.) для встраивания в ОС. В системе Vista произвели важное изменение в модели драйверов: их вынесли из ядра ОС в слой, которым надёжнее управлять. Знаменитый «синий экран смерти» Windows XP после сбоя операционной системы почти всегда появлялся из-за сбоя какого-нибудь стороннего драйвера. Вынеся этот код из ядра, Windows должна была повысить общую надёжность системы.
Изменения в модели драйверов требовали от всех производителей оборудования массивных изменений в коде драйверов под Windows. Преимущество этой крупной отстройки от конкурентов становится камнем на шее при попытке произвести настолько масштабные изменения во всей экосистеме. Поскольку выход Vista часто откладывался, производителям аппаратного обеспечения было трудно установить приоритет для этой работы и сроки её выполнения. Многие оказались не готовы к моменты выхода Vista. Это означало, что первый опыт использования новой системы у многих пользователей был связан с отсутствующими или очень глючными драйверами.
Коллапс с масштабированием скорости процессоров, который я упоминал в начале этой статьи, внёс свой вклад в проблемы с производительностью. Компьютерная индустрия развивалась под влиянием экспоненциального роста в обработке данных — объёма данных, которые можно хранить и обрабатывать, скорости обработки, полосы пропускания и задержки коммуникации между разными устройствами. Многое из этого обусловлено законом Мура — регулярным удвоением количества транзисторов, которые помещаются на той же площади интегральной микросхемы. Этот простой закон удвоения знаком пользователям. Они могут ожидать, что закон Мура проявится в увеличении скорости процессора, количества оперативной памяти, ёмкости накопителей и скорости связи.
Реальность немного сложнее. Увеличение скорости процессора сопровождается ростом энергопотребления и тепловыделения. Помню наглядную диаграмму с изображением роста тепловыделения в процессорах Intel. Логарифмическая шкала изображала прямую линию от первых процессоров Intel, через Pentium к тепловыделению на поверхности Солнца. Здесь приходит на ум закон Штейна: «Если что-то не может продолжаться вечно, оно и не будет». Компьютерная индустрия сломя голову бежала прямиком в «энергетический барьер». Процессорные скорости не могли масштабироваться без неприемлемого увеличения энергопотребления и тепловыделения. Если посмотреть на графики со скоростями процессоров, то поворот произошёл в 2003 году, в самый разгар фиаско Vista. Другие тенденции тоже делали опасным наивное восприятие улучшений в производительности. Производители микросхем выпускали чипы памяти с большей плотностью транзисторов, но «барьер памяти» означал, что задержка между CPU и памятью всё больше и больше затрудняла эффективное использование всей этой памяти. Возможно, больше всего проблем в создании сбалансированной системы ПК доставило увеличение ёмкости дисков, но гораздо более медленное увеличение количества случайных операций ввода-вывода в секунду. Это означало, что на диски большего объёма помещались программы большего размера, но они загружались гораздо медленнее. Из-за дисбаланса быстрые программы легко могли делать запросы I/O быстрее, чем диск был способен их обработать — результатом стали тормознутые системы, несмотря на увеличение скорости процессоров и больший объём памяти.
Vista вышла в период, когда всё более ускорялся переход на мобильную платформу. Продажи ноутбуков превзошли продажи настольных ПК в 2003 году; а к 2005 году ноутбуки обогнали настольные ПК и по количеству проданных устройств. Поскольку Vista настолько плохо работала на новых дешёвых ноутбуках («нетбуках»), то Microsoft пришлось разрешить OEM-сборщикам продолжить поставки Windows XP для этих машин нижнего ценового диапазона.
Важная часть происходящего здесь представляла собой более глубинную проблему — фундаментальную достаточность форм-фактора настольного ПК для тех задач, которые на нём решали. Основные области использования — продуктивность (в основном, Office), коммуникации, сёрфинг (включая поиск, веб-сайты и веб-приложения), некоторые внутренние приложения для бизнеса, фронтенд для специализированных устройств (вспомните рентгеновский аппарат своего дантиста). Всё это в целом стабилизировалось к 2000 году и с тех пор особо не менялось. Microsoft могла создавать новые API, но компьютеры уже делали практически всё, что нужно было пользователям. Нужные людям улучшения — лучшая управляемость, стабильность, производительность, безопасность со стороны программного обеспечения и более длительная работа от батареи, более лёгкий вес, быстрые процессоры, увеличение скорости связи, экраны большего размера — с аппаратной стороны. Многие из этих улучшений требовали уменьшения количества программного обеспечения, а не увеличения.
Достаточность — грязное слово в этом бизнесе, хотя вызванные ею проблемы хорошо описаны и широко известны благодаря книге Кристенсена «Дилемма инноватора». Более свежая книга «Подъём и падение американского роста» Роберта Гордона описывает понятие достаточности в гораздо более широком спектре американской экономики. Достаточность — это разновидность экономической рецессии. Рецессия объявляется после двух последовательных кварталов сокращения производства — это означает, что вы находитесь в рецессии шесть или более месяцев, прежде чем реально узнаёте об этом. Несмотря на то, что варианты использования настольных компьютеров не изменились, всё равно продолжалась важная эволюция в базовом оборудовании, которая поддерживала усилия участников экосистемы в попытках использовать эти инновации для новых вариантов использования ПК. Спустя десятилетия после появления ноутбуков я по-прежнему хочу более лёгкий ноутбук с ещё большим временем работы от батареи. Но то, как я использую этот ноутбук, в целом не изменилось.
Заметьте, что здесь я фокусируюсь на достаточности форм-фактора. Общие вычислительные требования в экономике продолжили расти взрывными темпами. Но более быстрые и повсеместные коммуникации предполагали больше гибкости в том, как приложение распределяет свои требования к вычислительным ресурсам (данные и обработка) между разными узлами в системе. Под влиянием многих факторов в последние два десятилетия всё большая часть обработки уходит на сервер или в облако. Я бы лучше запитал эти вычислительные циклы от ГЭС Гранд-Кули с сервером на востоке штата Вашингтон, чем таскать с собой аккумулятор. Если требуется доступ к данным с разных устройств или несколькими пользователями, то я хочу хранить и обрабатывать их на сервере, а не на локальном ПК. Прогресс в беспроводной связи (и в целом пропускной способности end-to-end коммуникаций) сделали такой сценарий работы устройств исключительно стабильным.
Мы не наблюдали этого только на настольных компьютерах (включая ноутбуки). Вероятно, планшеты проявили тенденцию достаточности форм-фактора сильнее, чем что-либо ещё. Хотя в более широкой перспективе это не так. На протяжении десятилетий в разных реинкарнациях планшетов нас не удовлетворяли вес, время работы от батареи, вычислительная мощность, режимы ввода и общее время отклика. Но когда на сцене появился iPad с его сочетанием размера экрана, веса, времени работы от батареи, тач-ввода, скорости процессора и мгновенного включения, то мы достигли точки достаточности. Произведённые с тех пор изменения в основном носят инкрементальный характер — что сводит с ума инженеров, которые работают над этими вещами и тратят массу энергии и творческих сил. Инженеры из компании Maytag, работая над новой стиральной машиной, должны испытывать те же чувства.
Да, люди хотели экран получше, более быстрые процессоры и ёмкие аккумуляторы. Но в целом устройство выполняло поставленные задачи — что во многом объясняет быстрое выравнивание роста продаж планшетов. Смартфоны, кажется, тоже прошли через эту стадию. На самом деле, это становится ещё более справедливым по мере улучшения коммуникаций и программного обеспечения, которое прозрачно управляет данными между сервисом и устройством.
Какие главные уроки мы можем извлечь из этой истории?
Первый из них настолько фундаментален, что кажется банальным. Реализация имеет значение. Не будет инновации без реализации.
Второй урок я принял близко к сердцу в моей последующей карьере. Если хотите делать большие амбициозные вещи, то вы должны взять на себя ответственность сформулировать, почему их нужно делать. Вы должны быть в состоянии записать свой основной тезис и доказательства — и защищать их. В реальности, чем больше у вас власти, тем больше у вас должно быть ответственности и готовности принять честный вызов либо по фактам, либо по логике. Это еще более важно во времена быстрых изменений, потому что факты и логика могут измениться. Ответственность и прозрачность означают, что вы способны переоценить свои выводы и быстро среагировать.
Когда я всё это пережил, я постоянно пытался вспомнить небольшой научно-фантастический рассказ, который читал в юности и который крутился в памяти как подходящий для этой истории. Наконец-то я вычислил его и обнаружил, что это знаменитое произведение Артура Кларка «Абсолютное превосходство», впервые опубликованное в 1951 году. Это небольшой рассказ — рекомендую пройти по ссылке и увидеть некоторые удивительные параллели.
Комментарии (59)
nerudo
06.02.2018 11:28Я обычно пищу о вещах, которыми непосредственно занимался, но в этом комментарии я выбрал другой подход (ц)
Проблема современных ОС (не только windows) — в монолитности предоставляемых решений. Меня вполне устраивала простота и управляемость Windows 95 (а еще больше — OS/2), но совершенно не устраивала стабильность. Следующие поколения становились более стабильными, но вот управляемость системой все падала и падала, она начинала жить своей жизнью. Причем кроме эффектов вызываемых изменениями внутреннего устройства, стало се больше сомнительных «улучшений» косметического характера. Причем одно не заменялось другим, а постепенно наслаивалось — если хорошенько потереть, то выступали артефакты все той же win 95. Баланс между добром и злом, на мой взгляд был перейден где-то после XP — она стала значительно более стабильной, а всякие «анальные зонды», как ныне принято говорить, еще не очень беспокоили. Ну а начиная с Vista/7 все покатилось по наклонной, хотя и было еще в рамках разумного. Всякие же плиточки, желтые новости и т.п. прямо в меня ОС — это уже за гранью.
Мне нужна ОС для работы, а не расписная матрешка — дайте мне родной работающий шелл от XP под Win 7/8/10 и я даже разницы не замечу. А если позволят самому управлять обслуживанием ОС — так и вовсе буду счастлив.
Так вот, возвращаясь к теме выступления — основная претензия к Vista заключается лишь в том, что она была сырой бета-версией 7. Все те же решения в 7, но отлаженные и не падающие сделали ее самой популярной Windows на много лет.Am0ralist
06.02.2018 11:36+1Так вот, возвращаясь к теме выступления — основная претензия к Vista заключается лишь в том, что она была сырой бета-версией 7. Все те же решения в 7, но отлаженные и не падающие сделали ее самой популярной Windows на много лет.
Неа, все претензии были ровно те же, что и к XP: рюшечки изменились (вспоминая недовольство людей стандартным оформлением XP после 98-го).
Виста вышла, собрала весь негатив по внешнему виду, к ней постепенно привыкли и на 7-ку уже не ругались, ибо вид не изменился.
Претензии к плиточкам у вас — ровно те же основы имеет «дайте мне то же самое оформление к которому я привык». Всё.lgorSL
06.02.2018 12:21Претензии к плиточкам у вас — ровно те же основы имеет «дайте мне то же самое оформление к которому я привык». Всё.
Мне кажется, суть претензии в другом: PC должен настраиваться и работать так, как это нужно владельцу.
А сейчас в 10 есть куча встроенной фигни, которая мешает работать и которую проблематично отключить или настроить. Вот примеры навскидку:
- Система обновлений.
- Встроенный антивирус
- Неудобый плиточный интерфейс.
- Предустановленное барахло типа браузера, кортаны, каких-то игр, пробной версии майнкрафта (на час игры, блин. Издевательство)
- Десятка постоянно что-то пишет-читает с диска по нескольку мегабайт в секунду. Нафига? В моём ноутбуке на семёрке жёсткий диск может останавливаться на несколько минут — всё что нужно для работы, помещается в 2гб оперативки.
Am0ralist
06.02.2018 13:51А сейчас в 10 есть куча встроенной фигни, которая мешает работать и которую проблематично отключить или настроить.
Вот только «Всякие же плиточки, желтые новости и т.п. прямо в меня ОС — это уже за гранью.» — не имеют отношения к 10-ке как таковой. Ибо это с 8-ки. Это раз. И человек ни слова не писал про прочее — это два.
Встроенный антивирус
Который сам отключается, если есть сторонний. Причем раньше все хаяли винду, что она не заставляет обновляться и защиты никакой нет, сейчас хают обратное. Главное что? Стабильность хаянья.
Неудобый плиточный интерфейс.
неудобный лично ВАМ плиточный интерфейс. Ровно что я написал — притензии к рюшечкам. Аргумент «кому удобен» сразу отсекаю: мне, например.
Предустановленное барахло типа браузера, кортаны,
О, опять прекрасный пример двойных подходов к разным корпорациям со стороны IT-сообщества на хабре. Когда МС — то встроенные браузеры и прочие программы — зло, ибо МС корпорация зла. Когда Гугл — то они разработчик, имеют право, ибо гугл корпорация добра…
Итак, ваша позиция какая? Любые разработчики не имеют право писать и вставлять любые программы по своему усмотрению? Те кто пишут ОС, не имею право писать калькуляторы? Или имеют?
Десятка постоянно что-то пишет-читает с диска по нескольку мегабайт в секунду.
Такой же вопрос мне хотелось бы задать разработчикам Мозилы и всяких хроманутых браузеров (поискать статью, какой объем пишут они?). Современные тенденции, заданные гуглом в плане слежения за пользователями.14th
07.02.2018 11:59Интерфейс 10ки крайне неудобен не рюшечками, а выпиливанием функционала. Пример: в настоящий момент в данной ОС, после FuckUp криэйшн апдейта невозможно через Settings настроить ОС так же как через Control Panel. В конечном итоге из Settings переходишь все равно в CP. В таком виде — это бесполезное решение, только расходующее ресурсы.
Am0ralist
07.02.2018 12:14С этим соглашусь, но ведь это проблема именно 10-ки, а не плиточного дизайна, который начался с 8-ки более 5 лет назад.
F69
06.02.2018 17:22Качаешь с торрентов LTSB сборку, вводишь свой лицензионный ключ и БИНГО! У тебя ГОЛАЯ 10 винда, в которой кроме ie10 и калькулятора нету нихрена. И шпионы выпилены, и защитники :) Да, даже плюшки хакеры приготовили — надстройка для удобного показа стартового меню (прям как в семерке можно, ага), и активаторы, если вдруг ты злодей и не купил лицензионную десятку.
beeruser
07.02.2018 14:58Плитки остались лишь в меню пуск. В остальном обычный десктоп как семёрка. Разницы не вижу. Семёрка также пишет кучу логов. Хотя если у вас пишутся мегабайты, это своп скорее работает. Зачем жить в 2018г с 2ГБ? У вас впаяна память?
lgorSL
08.02.2018 01:15Зачем жить в 2018г с 2ГБ? У вас впаяна память?
Вместо нетбука с семёркой и 2гб оперативки в прошлом году купил небольшой ноутбук с десяткой и 8гб памяти. Сравнил их друг с другом.
Хотя если у вас пишутся мегабайты, это своп скорее работает.
Год назад довольно много всего перепробовал, но так ничего и не помогло. По симптомам выглядело примерно как тут, только скорость записи была побольше: https://www.drivereasy.com/knowledge/fix-100-disk-usage-in-task-manager-improve-pc-performance-on-windows-10/ Замечал эту особенность с тупящей виндой и записью на диск ещё на нескольких компах.
Я терпел десятку пару месяцев, потом поставил ssd, линукс как вторую систему и в итоге пользуюсь только им. Никаких сюрпризов, ограничений, перезагрузок, рекламы и установок обновлений по нескольку десятков минут. Он просто работает.
Vitalley
06.02.2018 14:42Помню виста тогда на новом двухядерном атлоне с 2 гигами оперативы (это было много, тогда все компы с 1г шли в продаже), грузилась по пять минут, а лаги интерфейса были просто невыносимы. К 2010 году уже железо обновилось и допиленная 7 на свежем железе не лагала. Хотя ещё в 13 году видел новые нетбуки с гигом оперативы и лагучей семёркой.
Am0ralist
06.02.2018 15:11Ну я то тоже по опыту работы с ней говорю. В комплекте с ноутбуком на коре2дуо и то ли 2, то ли 4 гига оперативы и встроенным жирафом 8600m — летала.
На работу пару бюджетных тошибовских ноута закупал где-то через годок-другой после ее появления — никаких тормозов. Не говоря уже о том, что в упрощенный интерфейс перевести — пару кликов
Более того, после XP — это был глоток свежего воздуха, с учетом, что с ноутбуками аудиторы каждую неделю в новой чужой компьютерной сети работали, в которых вирусов зачастую была тьма. Никаких проблем с точки зрения администрирования в течении 2-2,5 лет.
Единственный лаг, который мне не нравился — после изменения настроек сети приходилось ребутить ноут. Когда понял — проблем больше ничего доставучего ужасно не было.
aelimill
07.02.2018 06:24Я в районе 2007 года купил себе ноутбук с Windows Vista, да, после Windows XP на десктопе казалось все адово тормозным. Windows 7 установил на этот же ноутбук с выходом его открытой беты и разницы в скорости с Вистой почти не заметил, то есть за 2-3 года висту вполне неплохо подтянули и подлатали до состояния близкой по скорости с 7кой.
Garruz
06.02.2018 21:27Претензии к плиточкам у вас — ровно те же основы имеет «дайте мне то же самое оформление к которому я привык». Всё.
Справедливости ради – плиточки изменили не только оформление, но во многом и саму логику интерфейса (что и вызывает отторжение у многих, в том числе и у меня). А вот между теми же Vista/7 и прошлыми версиями – во многом была лишь «косметика»…
Претензии же к «рюшечкам» в отношении XP/Vista/7, по большому счёту, заключались в том, что «тормозят».Am0ralist
06.02.2018 23:25Справедливости ради – плиточки изменили не только оформление, но во многом и саму логику интерфейса (что и вызывает отторжение у многих, в том числе и у меня).
Вот только у тех же линуксов в это время сколько раз поменялись интерфейсы и пр? Жизнь такая, что невозможно заходы версий 9х не менять 20 лет, не находите? И при этом вот в 8-ке изменения логики интерфейса практически отсутствовали, а были сугубо косметические (ну кроме «пуска»). В плиточном дизайне лишь дублировался частично весь функционал. Это к 10-ке переписали почти всё.Garruz
07.02.2018 00:26В том-то и дело, что саму логику поменяли капитально. Настолько, что даже ваш покорный слуга («виндузятник» с 20-летним стажем), впервые оказавшись перед Восьмёркой – пару-тройку часов просто тупо втыкал в изумлении (и в тщетных попытках разобраться «А где тут что нынче, вообще?»)…
Собственно, потому так «зашла» Семёрка (та же логика при куче новых «ништяков»), и потому так «не зашла» Восьмёрка (с самого начала бесила отсутствием привычной логики).
Речь, разумеется, исключительно о пользователях с уже имеющимся предыдущим опытом. Тем, для кого Восьмёрка (и после неё) были первой системой – им конечно же, было несравнимо проще и удобнее с самого начала…
Иначе говоря, тут речь не столько в прямой логике, сколько в некой преемственности – что, ИМХО, крайне важная штука…Am0ralist
07.02.2018 10:50астолько, что даже ваш покорный слуга («виндузятник» с 20-летним стажем), впервые оказавшись перед Восьмёркой – пару-тройку часов просто тупо втыкал в изумлении (и в тщетных попытках разобраться «А где тут что нынче, вообще?»)…
У меня опыт в этот момент был поменьше, всего лет 12-13 на момент 8-ки. Поэтому тупняк занял минут 5-10, после чего я полез разбираться как сделать удобно и под себя. После выхода 8.1 система для меня стала наиболее идеальной, что сейчас на 10-ку не перехожу (ну там и проблемы с дровами под мое железо).
Причем весь тупняк — это кнопка пуск была и что с этим экраном можно сделать. Всё. Перестроил восприятие, что вместо пуска теперь эдакий всегда чистый рабочий стол с ярлыками, почистил группы в полном списке приложений от бесполезного мусора (что всегда надо было делать начиная с 98, но никто не делал, позволяя программистам превращать пуск в мусорку).
Все прочие настройки компа остались практически полностью в тех же местах, где и были. Не считать же серьезным изменение окна подключения к вайфаю? Добрался до панели управления и больше ничего не надо по сути.
Вот в 10-ке все эти инструменты переписали на универсальные приложения с плиточным дизайном — вот там да, изменилось куча всего.springimport
07.02.2018 17:17Хорошо бы чтобы уже переписали всю контрольную панель на новый интерфейс. Даже не только панель, а вообще все настройки в системе. Ну сколько можно уже как в 98 бегать по разным уголкам.
Недавно разбирался как настроить автозагрузку. Что в убунту делается через 1 команду, то в винде пришлось искать менеджер запуска где интерфейс не то что лагает, он даже прорисовывается по частям.
Так что надеюсь однажды увидеть в патчноуте 10 винды что везде новый интерфейс.mayorovp
07.02.2018 17:25Э… это в какой такой винде лагают msconfig и диспетчер задач?
springimport
07.02.2018 17:40Ни в какой. Я не говорил про них. Создать свою задачу можно только в «Task Scheduler». Посмотрите сами как там все удобно сделано.
Особенно доставляет что настроенные и активированные задачи все равно не выполняются при старте системы. Хотя может я просто не смог.
u440
08.02.2018 18:10На MS Windows работаю ещё начиная с 3.1.
Наверное я не труЪ виндузятник, но 8 и 8.1 пошли на ура. И адаптировался к ним сразу, особенно на планшете (Surface RT).
А вот 10-ка, та да — оказалась менее привычной, видимо как раз из-за логики.
Которая неожиданно оказалась очень близкой к логике Unity от Ubuntu.Garruz
08.02.2018 19:22Ну, тут уж у кого как, конечно. Это всё к тому, что Восьмёрка была в принципе первой Виндой, с которой вообще возникли какие-либо «непонятки» вот прямо сразу же после запуска. Однако, очень уж «не преемственно» получилось…
Вообще, есть большие подозрения, что на десктопную ось все эти плитки-центры натянули лишь в попытке «добровольно-принудительно» приучить к ним юзеров – чтобы таким образомтщетно попытатьсяспасти своё загибающееся мобильное направление…u440
08.02.2018 19:40Подозрения вполне обоснованы :)
1. Метро-интерфейс на 8-ке крайне неудобен в работе с мышью, зато потрясающе эргономичен под пальцами. Почему при этом режим «рабочий стол» был не доведён до ума — это вопрос.
2. В 10-ке наоборот — сделали неплохой интерфейс под управление мышью, но потеряли все плюшки и находки 8-ки. То есть фактически ушли с планшетов.
3. Но нововведения очень уж хотелось оставить («никогда не вырезайте ненужный код, лучше закомментируйте — и пусть плачет неудачник, которому он достанется в развитие» :)) — поэтому получилось то что получилось: странная смесь ежа с ужом.
Интерактивные плитки отличная вещь. Но только на планшете или на телефоне. В меню «пуск» они нужны как зайцу стоп-сигналы :)Am0ralist
09.02.2018 11:43-1Метро-интерфейс на 8-ке крайне неудобен в работе с мышью, зато потрясающе эргономичен под пальцами.
полноэкранный пуск, который как рабочий стол только поверх всего и без хлама сохраненных документов (только ярлыки программ) — это реально удобно, если переключить режим восприятия. В том числе при работе с мышкой.
С учетом, что в тот момент как раз многие выкатили ноуты с сенсорными экранами, эти все трансформеры и прочие, то есть даже без планшетов есть куда применить плитки. Правда явно был расчет, что это выстрелит сильнее, чем на самом деле получилось.
Интерфейс 10-ки же да, вызывает некоторое недоумение из-за попыток скрестить ежа с ужом и получением в итоге колючей проволоки…
VolCh
07.02.2018 09:46А c NT4/2k вы работали?
nerudo
07.02.2018 11:42С NT4 очень мало, с 2k порядочно. Там у меня основные претензии были к dos-подсистеме, но при этом и было четкое понимание, что это необходимое зло.
VolCh
07.02.2018 11:47Просто сложилось впечатление, что вы Windows XP рассматриваете как продолжение линейки 3/95/98/Me, хотя она продолжение линейки NT/2k. Грубо, MS решила после Me закрыть линейку чисто "домашних" ОС, посадив всех на "корпоративные".
nerudo
07.02.2018 11:51Нет, переход с 98 на 2к мне немало крови попортил на бывшей профессиональной стезе — фокспро, парадокс и вот это все… Так что понимание траектории эволюции винды у меня есть ;)
SchmeL
07.02.2018 15:47Всякие же плиточки, желтые новости и т.п. прямо в меня ОС — это уже за гранью.
Мне нужна ОС для работы, а не расписная матрешка — дайте мне родной работающий шелл от XP под Win 7/8/10 и я даже разницы не замечу.
Полностью согласен, открываешь меню «пуск», а там путин на всю плитку и все вращается, вертится…
ildarz
06.02.2018 11:37Сплошной вендекапец. Тут все плохо, там всё плохо, всё повсюду криво, и череда катастрофических, ну просто катастрофических ошибок. Жаль, что, как обычно, нет ответа только на один вопрос — как MS выживает-то в непрерывной череде катастроф? :D Тут бы автору заглянуть в словарь и посмотреть значение слова "катастрофа", на самом деле.
По тексту масса передергиваний, типа архитектурного сравнения iOS и Висты (разработанная с нуля мобильная ОС и десктопная, для которой краеугольный камень — обратная совместимость), какой-то ерунды с датами (2003 год — "разгар фиаско Висты", что?!), дорогу хрому открыло якобы свертывание работ над IE, и т.п.
Предыдущая статья куда менее ангажированная была.
snuk182
06.02.2018 12:50MS выживает-то в непрерывной череде катастроф?
ИМХО: в первой половине 2000х еще не было OSX x86, LibreOffice, Ubuntu, Android (да и вообще софтверного хайпа как такового), и у массовых потребителей просто не было выбора. Офис довольно стабилен (если не ковыряться в старых форматах файлов) и хорошо продавался, XP после Миллениума так и совсем филиал рая на земле. Возможно катастрофы в том смысле, как их понимает автор, и были, но под грудами банкнот от прибыли их наружу не было видно. А изнутри менеджмент лишнего не пикнет — свои же засмеют.
Vitalley
06.02.2018 14:45Как выживает — насильственное продвижение и договорняки, вспомнить все ноутбуки с вистой, когда как по общему согласию все вендоры выпилили драйвера для предыдущих систем.
ildarz
06.02.2018 15:13Никто ничего не "выпиливал", просто не выкладывали драйвера под XP для моделей, которые исходно шли с вистой. Тут даже особых "договорняков" не надо — сами вендорам нафиг не сдалась поддержка ОС, которая не предполагается к использованию на этой модели ноутбука.
Vitalley
06.02.2018 15:25Откуда тогда такой массовый характер?
ildarz
06.02.2018 16:31MS выпускает новую ОС и прекращает продажи старой. Вендоры хотят продавать компы с виндой, но XP уже не продается, поэтому на новые линейки предустанавливают Висту. XP на новых линейках официально не поддерживается (компы-то идут с другой ОС), поэтому дрова под XP не выкладываются (геморрой с их разработкой/тестированием/поддержкой уже нафиг не нужен в первую очередь самим вендорам, а не MS). Дрова для старых линеек, которые шли с XP на борту, никуда не исчезали (и, собственно, были основным источником дров для даунгрейда, наряду с generic дровами от поставщиков оборудования). Никакого заговора, просто бизнес.
RedCatX
06.02.2018 17:27Вас послушать, так и BeOS в своё время не предустанавливали на новые компьютеры только потому что вендоры не хотели…
А Windows XP продавалась и после выхода Висты, её можно было вполне официально купить через даунгрейд.VolCh
07.02.2018 09:53Не официально купить XP, а официально купить Vista и официально даунгрейднуться. В, например, отчёты о продажах ваша покупка вошла бы как Vista. Что так же могло повлиять о решении вендоров поддерживать XP. Типа вон как Vista хорошо продаётся, а продажи XP нулевые.
RedCatX
06.02.2018 17:22Но тем не менее, большинство пользователей заменяли предустановленную Висту на старую-добрую ХР. Потому что типичная на тот момент машина, с одноядерным процессором и 1 Гб ОЗУ, под управлением Висты безбожно тормозила. Не нужно быть вендором чтобы до этого догадаться.
ildarz
06.02.2018 18:51Никакое "большинство" ничего никуда не заменяло, и в итоге доля Висты среди всего парка ПК с виндой к моменту выхода семерки добралась почти до 20%.
apro
06.02.2018 15:30какой-то ерунды с датами (2003 год — "разгар фиаско Висты", что?!)
Microsoft began work on Windows Vista, known at the time by its codename Longhorn, in May
2001,[22] five months before the release of Windows XP. It was originally expected to ship
sometime late in 2003Ну как я понимаю 2003 был первым пропущенным deadline'ом,
в чем противоречие?ildarz
06.02.2018 16:26"Пропущенный deadline" — оксюморон. А противоречие в том, что Виста в том виде, в котором она в итоге вышла, начала разрабатываться вообще ПОСЛЕ этого срока.
gotch
06.02.2018 11:57Стоило сделать интерфейс чуток отзывчивее, а UAC менее навязчивым, как «провальная» Vista сразу превратилась в блестящую 7-ку.
Inine
06.02.2018 13:06К тормозам добавил бы несколько поломавшуюся совместимость софта и драйверов, а также непривычный интерфейс. К семерке последние две проблемы уже были решены течением времени: для софта успели написать новые версии, ситуация с драйверами устаканилась, к интерфейсу попривыкли.
Garruz
06.02.2018 22:27По интерфейсу – ИМХО, явно была попытка сразу и резко подобраться к тогдашнему уровню MacOS* (на которую и «кивали» многие недовольные). Удалось – но за счёт быстродействия (тогдашнего уровня железа).
То же самое и по безопасности – на которую «кивали» уже многие адепты никсов. Удалось – но за счёт удобства.
Вот и получилось, что в попытке «угодить всем и сразу» – резко сели в лужу. Ни первый, ни второй пункты оказалось невозможно оперативно решить в сочетании с «мега-массовостью» Винды (то бишь, со ставшей чуть ли не легендарной поддержкой самого обширного «зоопарка» устройств) и с быстродействием.
Поэтому, таки да… Виста де-факто стала всего лишь своего рода «бета-версией» Семёрки – в которой исправили почти все косяки (и UAC уже не был таким маниакальным, и общее быстродействие было более-менее приемлемым даже на относительно слабом железе). Впрочем, Виста стала крайне важной бета-версией, нельзя отрицать – именно на её основе (точнее, по отзывам на неё) и родился тот «мега-хит»…
P.S. *Отдельно по поводу быстродействия интерфейса – МакОси его всегда было легче добиться просто исторически. С учётом крайне ограниченного круга поставщиков железа, и, соответственно – гораздо более лёгкой оптимизацией.
Винда изначально выбрала свой «заковыристый» путь. Верный, но более трудный. ))advan20092
07.02.2018 11:25Вот еще одна интерсная статья: www.vanityfair.com/news/business/2012/08/microsoft-lost-mojo-steve-ballmer
В ней прямо говорится, что когда инженеры Майкрософт впервые увидели только что вышедший OS X Tiger, у них отвисли челюсти. В этой системе было все что они планировали реализовать в Longhorn, только в рабочем виде, без глюков и тормозов.Garruz
07.02.2018 18:01Да, верно.
Как уже писал, самые сильные стороны Винды, массовость и универсальность – являются её же самым слабым местом. Тем же Apple на многие порядки проще идеально вылизать быстродействие как MacOS, так и iOS под свой крайне ограниченный (а потому полностью изученный и предсказуемый) парк железа.
Минусы универсальности, в общем.
P.S. Это не с позиций «лучше или хуже», а просто разные модели – каждая со своими плюсами и минусами…
wikipro
06.02.2018 17:31Когда я спросил сотрудника майкрософт, каже они так облажались в Вистой, он ответил что они в её разработку вложили 500 млн $, а за несколько месяцев ~ 3-4-5 продали лицензий на 3 млрд. $.
А теперь внимание вопрос знатокам Хабра: Кот в этой ситуации Д'Артаньян, а кто сексуальное меньшинство? (с)Анекдот.
Andre_k90
06.02.2018 19:55Я, как пользователь, идеальную ос вижу себе так:
Включаю утром комп, всё визуально так же как и вчера, НО на окне логина сообщение — Ваша система обновилась, не желаете ли попробовать новый интерфейс. Если нет, не желаю, у меня запарка, нужно срочно сделать то и это, то разницы я почувствовать не должен. И все программы, которые я когда либо покупал или ставил, должны работать как работали, даже если это пакман для DOS 3.1springimport
07.02.2018 17:37Не знаю как в маке, но я бы хотел чтобы в винде сделали как на андроид-смартфонах: можно скачать любую программу из стора или поставить самому. Каждая программа без исключений находится в 1 папке, данные пускай находятся в другой. Сделать полноценную синхронизацию данных. Чтобы можно было встать из-за домашнего пк, попользоваться планшетом и на работе продолжить начатое. И в конце-концов чтобы можно было пользоваться linux в самой винде полноценно.
Alozar
08.02.2018 10:08должны работать как работали, даже если это пакман для DOS 3.1
Собственно Windows этим и старается заниматься, из-за чего в ней приходится тянуть кучу костылей и эмуляций багов, чтобы старые программы не отвалились.
Но почему-то винду ругают за тормоза, у которых среди причин обратная совместимость стоит далеко не на последнем месте. А её нужно добавить, что винда должна запускаться чуть-ли не на каждой кофеварке, что тоже не прибавляет возможности оптимизаций в отличие от той же Mac OS, которая запускается только на паре-тройке конфигураций.
viklequick
08.02.2018 23:30Вообще говоря, с Вистой микрософтовцы попали в классическую ситуацию «закончилось место на стенке», которая очень хорошо известна коллекционерам.
Фактически, каждая версия «до» — имела четко очерченную цель, понятную рынку, и формировала ожидания.
Поясню на примерах
- Windows 1.0. Наконец-то у программ общее понимание единообразных менюшек! Согласно стандартам IBM CUA, ага.
- Windows 2.0. Окошки разных программ можно располагать друг над другом! На мониторах 640*480 это было нужно как воздух.
- Windows 3.0. Досовские приложения можно запускать не по очереди!
- Windows 3.11. Сеть — одна на всех! Домены, рабочие группы, вот это вот все.
- Windows 95. Наконец-то не надо думать про размеры массивов данных, проклятие 64К, и пересчет указателей! Ваше оборудование используется эффективно!
и т. д.
Но с выходом WinXP микрософтовские ребята внезапно (тм) обнаружили страшную вещь. А именно, рынок в основном удовлетворен. Все действительно востребованные и критичные задачи — решены (нет, "секуритя" не входят в этот список в силу своей природы).
И немедленно возникли разные течения внутри микрософт!
Первое очевидное — давайте расслабимся и будем полировать существующее решение тряпочкой, попутно дописывая нескучных обоев, докладывая драйвера в новые апдейты от производителей железа.
Этот лагерь проиграл просто в силу бюрократических особенностей: если мы стоим на месте и корродируем — то за что бонусы давать?
Второе — разумное. Мы были пионерами перехода на 32 бита, мы уже давно прощелкали все полимеры с переходом на 64 бита. Огромный кусок работы, «windows on windows», тем более что это просто необходимо для серверных редакций. Вот оно, рынок поддержит!
К сожалению, груз уже написанного кода прямо мешал. Хорошо вам там в виндоусь коре, а зачем это отделу офиса или отделу игр? К примеру, даже в 2018 году микрософт прямо рекомендует использовать 32битный офис, а 64битной вижуалстудии вообще нету, даром что на дотнете писана.
Так что программу 64! (по аналогии с интелевой рекламой 32! много лет назад) с энтузазизьмом поддержали отделы больших и толстых энтерпрайзов, БД, и не менее «нужных» консумерам решений, а вот наиболее массовые продукты до сих пор на 64 бита переходят, и это 15 лет спустя…
Третье — давайте все заново перепишем на (нужное подставить). Самый интересный способ, приносящий наибольшее число плюшек его апологетам. Но простите, а зачем это нужно рынку?
Увы, попавшие в ловушку «место на стене кончилось» выбирают именно третий вариант. Революция! Или если хотите — майдан… Сожжем старых кумиров и наставим новых идолов.
И вот тут-то попытка столь быстро бежать привела к тому, что тапки начали лупить по затылку.
1. Работы в революцию всегда больше чем казалось.
Например, в какой версии все приложения «из коробки» были наконец-то переведены на коммандбары, так же известные как риббоны? Правильный ответ «работа еще ведется». Ага, 10 лет спустя… Но простите, в микрософте некому сделать автораскладывалку из менюшек в риббоны, для своего-то кода? Наверняка пробовали, не взлетело в силу древности кода.
2. Революционные абстракции революционно дырявы.
Не то чтобы в микрософт не понимали опасностей революции. Очень даже. Именно поэтому и была сделана ставка на дотнет — а мы отыграем годы и тысячи человеко-лет просто в силу более хорошего инструментария!
Не, идея то здравая, я сам так делаю когда по времени цейтнот. Тонуть так на «титанике», а не на утлом плоту, хех.
Проблема — в методике. Правильно было бы плавно переводить старый легаси код на новые инструменты, выкидывая старые компоненты и заменяя их новыми.
Если бы (например) микрософт нарисовала бы common controls на дотнете и обеспечила бы работу с ними (благо как раз отрабатывался этот механизм с манифестами и т.д.) из любого кода — то через пару лет весь софт бы использовал их.
Аналогично можно было бы обеспечив нужные биндинги — переводить стандартные общие механизмы на новую платформу. И еще лет через пять обычный набор контролов начиная с button — был бы весь на managed code.
Но это была бы эволюция. Не срослось.
3. Время не резиновое.
На перестройку мира по новым лекалам ушли годы. И появление Aero у меня вызывало только улыбку. Как, только сейчас? Это после того как в линуксе вовсю начали рулить композитные менеджеры? А до этого вы там чего делали, WinFS?
4. Хотели как лучше...
В итоге, даже в области нескучных обоев в Longhorn оказалось печально.
Зато решались (не решились!) эпичные задачи по отбиранию прав у администратора на собственный компьютер. Зачем? Почему? Кто на ком стоял?
Как итог, многие очень интересные наработки были выброшены или заброшены.
Вот например, представим себе что команда IE продолжает идти вперед. Интересно, как бы изменился мир, если бы нечто вроде IE 11 появилось бы к 2008 году…
Важное послесловие
Тут некоторые товарищи злорадствуют — мол как это так, все плохо и вдруг столько денег? Да элементарно.
Команда офиса например сумела избежать революций, что дало стабильный доход. Постепенно эволюционируя, привносят все больше новых возможностей. Пусть они нужны только небольшой части их клиентов, но именно эта часть и формирует тенденцию.
Облачные продукты также очень сильны у команды офиса, хоть и вызывают лично у меня скрежет зубовный.
Команда разработки инструментов, в первую очередь вижалстудии — проделала поистине прекрасную работу, и продолжает улучшать свои продукты и далее.
Облака, искусственный интеллект, базы данных, корпоративный сектор… Да и Windows Server по своим потребительским качествам весьма и весьма неплох, я бы вместо попугайских вист-семерок-и-далее с удовольствием бы в качестве десктопа использовал Win2k8+ (если бы не лицензионные ограничения).
Потому и.
А вот с вистой получилось
- слишком мало (нужного)
- слишком поздно
- слишком много (ненужного).
Надеюсь, уроки революций прошлого учтены, да, микрософт?! 8-)
HermaMora
Проблема в том, что это была первая абсолютно сырая и недоделанная система. Это сейчас пользователи привыкли к такому явлению, как постоянный допил обновлениями.
Am0ralist
WinXP, который без сервис паков с юсб 2.0 не работал и вообще был тот еще глюк?
98, которая до SE тоже была не супер-пупер?
Просто по факту это были разные объемы проникновения в жизнь компьютеров и интернета, благодаря которым сейчас уже и не помнят те холивары по поводу того, что новая XP — говно. В них просто меньше народу участвовало количественно.
Vitalley
Тогда и USB 2.0 не было ни у кого, а о флешках никто даже и не слышал. Но тогда была альтернатива — NT5.0 фактически на том же ядре, только без излишеств, как раз на неё успели выпустить пару сервис паков.
Am0ralist
А альтернативой для многих была как раз таки 98SE. На которой я и просидел еще год где-то после 1-го сп хрюши, да и в дальнейшем предпочитал исключительно классику.
AllexIn
Нормальная была ОС. Ничем кроме отсутствия драйверов не уступала старым. Просто у неё были минусы, а снаружи не было очевидно чем она лучше ХР. Вот и получила звание «красивых глючных окошек», при том что под капотом были кардинальные изменения в лучшую сторону.
VolCh
До этого были 95, 98 и XP, все они становились приемлемыми для эксплуатации только с выходом минимум первого сервис-пака (OSR2, SE и SP1). С одной стороны, дорабатывались сами ОС, с другой дописывался софт, который нормально работал на предыдущих, в том числе драйвера. С третьей, пользователи обновляли железо, драйверы которых вендоры не желали переписывать под новые модели.