13 February 2018

Призрак Windows Vista

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

На самом деле, говорить мы будем не столько о Vista, сколько об идеях, которые пытались реализовать в рамках проекта Longhorn, о фундаменте, на котором хотели построить следующий, после XP, Windows.

Красиво, черт возьми!

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

Про managed код. Тут все более менее понятно: .NET действительно оказалась чертовски удачной технологией и в те годы было крайне трудно устоять перед ее обаянием. Ясный пень, что значительная часть этого успеха была связана с исключительной убогостью остальных технологий разработки приложений от Microsoft того времени (на выбор -- совершенно примитивный Visual Basic или зубодробительный хардкор в лице MFC), и, тем не менее, в контексте создания приложений под Windows .NET был реальным прорывом и это понимали все. Поэтому нет ничего удивительного в том, что большое количество умов в компании были основательно поражены managed вирусом и будущее в головах этих людей рисовалось исключительно в контексте "одно сплошное телевидение" (читай -- один сплошной .NET).
При этом сама по себе технология на тот момент была относительно молодая. Огромных, эволюционирующих много лет, продуктов с ее помощью написано еще не было. Как и не было нужного количества набитых шишек и отрезанных пальцев, которые, как и положено в IT индустрии, через буквальные физические страдания очертили бы круг безболезненной применимости этой чудесной технологии... А тут сразу решили -- на мелочи размениваться не будем, напишем с помощью этой прекрасной технологии две трети кода новой ОС, революционную файловую систему WinFS, революционную технологию интерфейса Avalon, ну и далее по тексту.

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

Прирост удоя крупного рогатого скота. С 93-го по 99-й год удои выросли в 10 (!) раз. С 2002-го по 2006-й даже не удвоились. 

И вот на этом перепутье, в ужасных муках, на еще дымящихся руинах Longhorn, и была рождена Windows Vista.
Весь managed код "революционных" технологий, который плохо работал, потреблял дикое количество ресурсов и все время срывал дедлайны, просто выкинули из состава операционной системы, фактически отказавшись от первоначальной идеи дать ОС новый API вместо классического Win32. Для технологий типа WinFS такой порот событий вообще означал полный конец. Код для реализации UI "нового поколения" переименовали в WPF и продлили его агонию -- он был представлен разработчикам как часть очередного релиза .NET, но это его не спасло и он довольно быстро превратился в очередной могильный камень на бескрайнем кладбище невзлетевших технологий от Microsoft...

Самое поучительное же во всем этом эпическом провале заключается в том, чем занималась в это же самое время Apple. Она готовилась представить миру самый значимый продукт того десятилетия -- iPhone. Продукт, разработка которого была полной противоположностью тому, что пытались сделать инженеры Microsoft. В Microsoft плевали на потребляемые программами ресурсы, использовали виртуальную машину и сборку мусора, в Apple же, наоборот, считали каждый байт и такт, потому что иначе все это просто не запустилось бы на скромном железе мобильного устройства того времени. В Microsoft создавали огромное "middleware", код которого был сильно абстрагирован от нижележащего железа, а значит и не мог использовать все его возможности, а в Apple наоборот -- понимали, что только использование всех возможностей железа позволит им предоставить уникальный пользовательский опыт, принципиально не достижимый с помощью высокоуровневых программных абстракций...
Apple и Microsoft копали в противоположные стороны и время рассудило, кто из них был прав, а кто спускал в унитаз все полимеры.

Самое смешное, что Microsoft в полной мере умудрилась наступить на эти грабли еще раз. Windows Phone -- платформа, которая предоставляла разработчикам приложений исключительно managed API и не давала переиспользовать код, работающий на других платформах. Чем все это закончилось, мы знаем.

В десктопной же Windows болезненный опыт проекта Longhorn учли, и новые объектно-ориентированные API ОС сделали native -- я говорю о WinRT, который позже трансформировался в Universal Windows Platform. Другое дело, что эта штука тоже не взлетела, но это отдельная большая история. Скажу только, что сегодня, после сворачивания мобильного направления, слово "universal" в названии этого API выглядит как живой упрек корпорации, которая, как в том анекдоте, "не шмогла".


***

Ну а вспомнил я про старушку Vista совсем не случайно.
На мой взгляд, сегодняшняя одержимость JavaScript (знакомая песня, снова то самое "одно сплошное телевидение") сильно напоминает то, что творилось в начале 2000-х в стенах Microsoft -- всем казалось, что вот она, серебряная пуля, и вот она, рука, которой мы крепко ухватили бога за бороду...
Одна только проблема -- золотая эра процессоров закончилась много лет назад и не похоже, что она к нам вернется.
Сегодня я очень комфортно могу редактировать небольшой документ, страниц на десять, с таблицами, в старом добром Word'е на, мягко говоря, не топовом ноутбуке десятилетней давности. И этот же самый документ, импортированный в Google Docs, ставит на колени десктопную машину с топовым i5, когда перемещение курсора на одну позицию занимает несколько секунд.
Или вот другие прекрасные реалии дня сегодняшнего -- случай, с которым я столкнулся в этом году. Разворачивание ветки на 500 комментариев на YouTube'е в последней версии Chrome (чистом, без всяких плагинов!) на десктопе с i7 тупо блокирует всю вкладку секунд так на пять-семь.

Эффект "высокоскоростных" комментариев на Youtube прекрасно воспроизводится и на моем макбуке. Ирония заключается в том, что адски тормозит сервис Google в самой свежей версии браузера того же самого Google... 

А эти прекрасные "Electron приложения"? Вы видели это чудо? Я понимаю, что у Slack'а все очень хорошо, но почему меня тянет блевать от одного вида их "приложения"? Что это, доктор?

В общем, как ни крути, а история развивается по спирали. Поэтому мы догадываемся, чем все это закончится. "Мы решили начать с нуля, используя только C++, в котором мы были уверены". 

No comments:

Post a Comment