Колишній технічний директор Microsoft детально виклав: Windows перетворили на кашу! 14 років, 14 змін, 17 різних GUI одночасно

robot
Генерація анотацій у процесі

Акції трейдити — дивіться аналітичні звіти аналітиків «Золота Цилиндра»; вони авторитетні, професійні, своєчасні та всеосяжні — допоможуть вам розкрити потенційні теми та можливості!

(Джерело: KuaiKeJi)

KuaiKeJi 25 березня повідомляє, що колишній CTO Microsoft, який пропрацював у Microsoft 23 роки, Jeffrey Snover нещодавно опублікував великий блог-пост, де системно розкладає по поличках те, як Microsoft протягом десятиліть неодноразово хиталося у питанні GUI (графічного інтерфейсу), і пояснює, чому розробницька екосистема Windows прийшла до фрагментації.

Спершу варто повернутися в 1980-ті роки: тоді Win16 і Win32 API забезпечували всім розробникам Windows єдину модель розробки. Розробникам потрібно було вивчити лише один підхід, щоб охопити майже всі сценарії для Windows-додатків.

Книга «Programming Windows», яку написав технічний автор Чарльз Петцольд, на 852 сторінки, вважається «Біблією» для розробки настільних застосунків.

У 1990-х Microsoft намагалася подолати обмеження Win32 такими технологіями, як MFC, COM, OLE, ActiveX тощо. Snover вказав, що ці компоненти «проникли в кожен куточок розробки Windows, додаючи нечуваний рівень пізнавальної складності».

На конференції для розробників технічна нарація Microsoft стала роздрібненою. Snover не стримувався і без церемоній охарактеризував тодішню ключову доповідь як «keynote clusterf*ck».

У 2003 році Microsoft продемонструвала технічне бачення Windows Longhorn, де Avalon (згодом перейменований у WPF) базувався на підсистемі векторного рендерингу XAML з прискоренням GPU — технічний потенціал був надзвичайно сильним. Однак у серпні 2004 року Microsoft раптово розвернулася: усі нові розробки мали використовувати C++.

WPF, хоча й вийшов разом із Windows Vista, сам Windows Shell не взяв його на озброєння. Це рішення заклало глибокі розломи між командою Windows та командою .NET.

Snover зазначив, що внутрішні суперечності зрештою призвели до того, що WPF «віддали напризволяще», Silverlight помер, а UWP (універсальна платформа Windows) — щойно з’явилася — була приречена на невдачу.

У 2007 році Microsoft, уже довівши власну спроможність у WPF, знову повернулася і представила Silverlight.

У 2010 році Microsoft раптово оголосила, що Silverlight не підходить для кросплатформеної розробки; напрямом майбутнього є HTML5. Silverlight мали використовувати лише для розробки Windows Phone. Розробники, які робили на нього велику ставку, опинилися без підтримки.

Перенесімося в 2012 рік, коли вийшла Windows 8: було введено середовище виконання WinRT, що базується на нативному C++. Неприязнь команди Windows до .NET призвела до того, що інвестиції в останню за десять років були миттєво викинуті на маргінес. Snover так описує тодішній хаос:

«У Microsoft всередині одночасно розповідають дві історії: команда Windows займається WinRT, а .NET-команда ще просуває WPF. Різні будівлі, різні віцепрезиденти, різні дорожні карти.

Розробникам на //Build 2012 говорили ось що: майбутнє — WinRT; водночас HTML+JS — громадяни першого класу; водночас .NET ще можна використовувати; водночас повернувся C++; водночас вам слід писати Metro-застосунки; водночас ваш код WPF працює добре. Це не стратегія — це “Голодні ігри”: шість команд змагаються за вашу увагу.

Корпоративні розробники поглянули на механізм пісочниці UWP, примусове розповсюдження через застосунковий магазин і брак Win32 API — розвернулися й пішли.»

Snover зазначив, що за минулі 14 років Microsoft 14 разів змінювала фокус у тому, що рекомендує як фреймворк для Windows GUI. Нині на Windows-платформі співіснують 17 технологій GUI, що охоплюють 5 мов програмування:

Нативні фреймворки Microsoft: Win32 (1985), MFC (1992), WinForms (2002), WPF (2006), WinUI 3 (2021), MAUI (2022)

Веб-гібридні рішення Microsoft: Blazor Hybrid, WebView2

Рішення сторонніх розробників: Electron (VS Code, Slack, Discord усі використовують; Snover особливо підкреслив, що це наразі найпоширеніша на Windows технологія настільного GUI, і Microsoft не має з нею нічого спільного), Flutter (Google), Tauri, Qt, React Native for Windows, Avalonia (JetBrains, GitHub, Unity використовують; Snover іронічно зазначає цих розробників, «які більше не чекають на Microsoft»), Uno Platform, Delphi, Java Swing/JavaFX

Snover вигадував власне слово «boof-a-rama», щоб описати теперішній стан як коли розумні люди роблять дурниці. Він підкреслив, що самі технології, які запускає Microsoft, часто не є поганими. Натомість їх «вбивають» не технологічні недоліки, а внутрішня політика, надто ранні оголошення про розворот на конференціях для розробників, а також хаотична комерційна стратегія.

«Programming Windows» Петцольда після 2012 року, з шостим виданням (яке охоплювало Windows 8/WinRT), більше не оновлювався — можливо, це й є найкращим підтвердженням такої непередбачуваної фрагментації.

Snover приєднався до Microsoft у 1989 році. Обіймав ролі Partner Architect, Distinguished Engineer (2009), Technical Fellow і головного архітектора (2015), CTO (2019). У 2022 році пішов із компанії та приєднався до Google. У 2025 році офіційно вийшов на пенсію. З огляду на його знання про те, як Microsoft працює всередині, довіра до цього блогу очевидна.

Масив новин, точне тлумачення — усе в застосунку Sina Finance APP

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Закріпити