Найти в Дзене
DigiNews

Бывший топ-менеджер Microsoft объяснил, почему в Windows такой бардак с GUI

Десятилетия противоречивых сигналов и внезапных смен курса со стороны Microsoft оставили разработчиков Windows в замешательстве, вынужденных жонглировать перекрывающимися инструментами без четкого направления. Читать далее... — neowin.net В прошлом мы уже говорили о том, что графический интерфейс Windows 11 непоследователен из-за того, что некоторые устаревшие интерфейсы до сих пор используют элементы старого образца. Однако существует и более серьезная проблема, связанная со сбивающей с толку стратегией Microsoft в области графических интерфейсов для разработчиков, которая привела к крайне фрагментированному технологическому стеку. Благодаря недавней статье в блоге бывшего технического директора Microsoft Джеффри Сновера, мы получаем больше информации о том, как стратегия Microsoft в отношении графических интерфейсов сбилась с пути за последние два десятилетия. Сновер возвращается к 1980-м годам, ко временам API Win16 и Win32, написанных на C, которые все разработчики Windows могли ис

Десятилетия противоречивых сигналов и внезапных смен курса со стороны Microsoft оставили разработчиков Windows в замешательстве, вынужденных жонглировать перекрывающимися инструментами без четкого направления. Читать далее... — neowin.net

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

Благодаря недавней статье в блоге бывшего технического директора Microsoft Джеффри Сновера, мы получаем больше информации о том, как стратегия Microsoft в отношении графических интерфейсов сбилась с пути за последние два десятилетия. Сновер возвращается к 1980-м годам, ко временам API Win16 и Win32, написанных на C, которые все разработчики Windows могли использовать согласованно. Он также ссылается на книгу объемом 852 страницы «Программирование под Windows» технического автора Чарльза Петцольда, которую люди могли использовать как священное писание для разработки настольных приложений.

Затем, в 1990-х годах, Microsoft попыталась обойти ограничения Win32 с помощью MFC, COM, ActiveX, и хотя это не фреймворки для графического интерфейса, это компонентные архитектуры, которые, по словам Сновера, «заразили каждый уголок разработки под Windows и внесли уровень когнитивной сложности». Руководитель утверждает, что это также вызвало огромную путаницу на ключевых докладах для разработчиков, поскольку Microsoft не рассказывала связную историю о технологиях, а просто пыталась произвести впечатление на руководителей во время события, которое Сновер описывает как «кластерный провал на ключевом докладе».

-2

В 2003 году Microsoft продемонстрировала Windows Longhorn с впечатляющим техническим видением и Avalon (позже известным как WPF), который работает на основе подсистемы пользовательского интерфейса XAML, ускоряемой графическим процессором и основанной на векторах. В августе 2004 года Microsoft отказалась и от этого, и последним указанием стало использование C++ для всей новой разработки. WPF вышла с Windows Vista, но сама оболочка ее не использовала. Это вызвало озлобленность в инженерной команде Windows по отношению к команде .NET, что привело к внутренним конфликтам, которые в конечном итоге привели к тому, что WPF оказалась заброшенной, Silverlight умер, а Universal Windows Platform (UWP) была мертва с самого начала.

К 2006 году стало ясно, что WPF — чрезвычайно мощная технология, но вместо того, чтобы сделать ее окончательным ответом на вопросы о разработке под Windows, Microsoft снова сменила курс и в 2007 году анонсировала Silverlight. Затем, в 2010 году, компания ошеломила разработчиков Silverlight, внезапно объявив, что эта технология не предназначена для кроссплатформенных инициатив, и что в этой области вперед идет HTML5. Silverlight предназначался только для разработки под Windows Phone.

-3

Перенесемся в 2012 год к анонсу Windows 8, в которой имелся нативный рантайм C++ в WinRT. Обида команды Windows на .NET привела к тому, что инвестиции в эту технологию за десятилетие были внезапно отброшены. Сновер красноречиво описывает ситуацию следующими словами:

Внутри Microsoft одновременно рассказывались две истории. Команда Windows создавала WinRT. Команда .NET все еще пропагандировала WPF. Разные здания, разные вице-президенты, разные дорожные карты.Что услышали разработчики на //Build 2012: будущее за WinRT, и также HTML+JS являются первоклассными, и также .NET все еще работает, и также C++ вернулся, и также вы должны писать Metro-приложения, и также ваш код WPF все еще отлично работает. Это не стратегия. Это сцена «Голодных игр», где шесть команд борются за ваше внимание.Корпоративные разработчики взглянули на песочницу UWP, требование развертывания через Магазин и отсутствие API Win32 и ушли. Фреймворк, созданный для того, чтобы завоевать их в современную эпоху, был оптимизирован для магазина планшетных приложений, который так и не материализовался.

Теперь мы переходим к текущей эпохе, которая началась в 2015 году, согласно временной шкале Сновера. UWP имела убедительное видение, но собственные продукты Microsoft ее не использовали. Посыл Редмонда оставался запутанным, перескакивая между WPF, UWP, Project Reunion, WinUI 2, WinUI 3 и другими. За последние 14 лет Microsoft 14 раз меняла курс в отношении рекомендаций по фреймворкам и технологиям графического интерфейса для разработки под Windows.

В результате в Windows теперь используется 17 технологий графического интерфейса, основанных на пяти различных языках программирования:

  • Нативные фреймворки Microsoft:Win32 (1985) – Все еще здесь. Все еще используется. Книга Петцольда все еще актуальна.
    MFC (1992) – C++ обертка над Win32. Режим поддержки. Живет в корпоративном секторе и CAD.
    WinForms (2002) – .NET обертка над Win32. «Доступно, но не рекомендуется». Все еще самый быстрый для форм ввода данных.
    WPF (2006) – XAML, рендеринг через DirectX, с открытым исходным кодом. Без новых инвестиций со стороны Microsoft.
    WinUI 3 / Windows App SDK (2021) – «Современный» ответ. Неопределенная дорожная карта.
    MAUI (2022) – Кроссплатформенный преемник Xamarin.Forms. Текущая ставка команды .NET.
  • Веб-гибриды Microsoft:Blazor Hybrid – .NET Razor компоненты в нативном WebView.
    WebView2 – Встраивание Chromium в приложение Win32/WinForms/WPF.
  • Сторонние решения:Electron – Chromium + Node.js. VS Code, Slack, Discord. Самая широко развернутая технология настольного графического интерфейса в Windows на данный момент – и Microsoft не имела к этому никакого отношения.
    Flutter (Google) – Dart, собственный рендерер, кроссплатформенный.
    Tauri – Бэкенд на Rust, легкая альтернатива Electron.
    Qt – C++/Python/JavaScript. Серьезный кроссплатформенный вариант.
    React Native for Windows – Порт мобильного фреймворка Facebook, поддерживаемый Microsoft.
    Avalonia – Духовный преемник WPF с открытым исходным кодом. Используется JetBrains, GitHub, Unity – разработчиками, которые перестали ждать Microsoft.
    Uno Platform – API WinUI на всех платформах. Более привержены WinUI, чем сама Microsoft.
    Delphi / RAD Studio – Все еще жив. Все еще быстр. Все еще в ПО для вертикальных рынков.
    Java Swing / JavaFX – Да, все еще в производстве. Корпоративный сектор никогда не забывает.
-4

Джеффри Сновер описал текущую ситуацию как «буф-а-рама» (boof-a-rama) — термин, придуманный им самим, означающий, что «блестящие люди делают глупые вещи». Бывший руководитель подчеркнул, что технологии, которые продвигала Microsoft, редко были плохими. Их часто прекращали поддерживать либо из-за внутренней политики, либо из-за преждевременного анонса смены курса на конференции для разработчиков, либо из-за запутанной бизнес-стратегии, которая оставляла разработчиков в подвешенном состоянии. Эта непредсказуемая фрагментация, вероятно, является причиной того, что Петцольд перестал писать «Программирование под Windows» после того, как шестое издание охватило Windows 8/WinRT в 2012 году.

Стоит отметить, что, хотя некоторые инциденты, описанные в его длинном посте в блоге, являются анекдотическими, Сновер, вероятно, точен в своих описаниях, учитывая его глубокое знание внутренних рабочих процессов Microsoft. Он проработал в компании 23 года, поднявшись от партнера-архитектора до выдающегося инженера в 2009 году, технического сотрудника и главного архитектора в 2015 году, и технического директора в 2019 году. Бывший руководитель Microsoft покинул Редмонд в 2022 году и перешел в Google. Это продолжалось до 2025 года, и теперь Сновер официально вышел на пенсию.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Автор – Usama Jawad

Оригинал статьи