Странное время, когда старые враги не только хоронят топор, но и начинают сливаться в единое целое. Windows и Linux, Microsoft и Open Source кажутся не только дружественными, но и в случае слияния Windows и Linux в недифференцированное целое — Winux кто-нибудь?
Все началось с перехода на .NET Core. Что ж, вероятно, так оно и было, но это слишком недавно, чтобы писать окончательную историю. Система .NET агрессивно предназначалась только для Windows и Microsoft, и, за исключением некоторых героических усилий по открытому исходному коду со стороны команды Mono, она работала только под Windows. Затем Microsoft выбросила все, что она сделала, и начала заново с проекта с открытым исходным кодом, чтобы заново изобрести .NET как кроссплатформенную систему разработки, и так родилось .NET Core, сопровождавшееся большой путаницей и некоторыми страданиями разработчиков.
Почему .NET была расширена для поддержки сред, отличных от Windows?
Только Microsoft действительно знает об этом, но кажется разумным, что это послужило большему благу Azure. Когда Azure только начинала свою деятельность, она в основном предоставляла виртуальные машины на базе Windows, но вскоре стало ясно, хотят ли пользователи Linux, и, если он хочет быть конкурентоспособным с AWS, ему нужно было отказаться от Windows. ориентирована на поддержку Linux — и она есть.
Учитывая, что Azure потенциально является дойной коровой, которая заменит Windows в будущем, теперь становится ясно, что поддержка Linux — хорошая идея. Таким образом, .NET становится кроссплатформенным, и с .NET Core 5 или, возможно, более полно в 6, в будущем эта задача будет более или менее завершена. Существует только одна версия платформы .NET, и она кроссплатформенная.
Конечно, есть проблемы — не всегда ли?
В частности, нет кроссплатформенного пользовательского интерфейса .NET, а программы .NET Core, как правило, выполняются из командной строки или в Интернете, где проблема пользовательского интерфейса не возникает. В конце концов Microsoft поняла, что пытаться притвориться, что .NET Core не нуждается в пользовательском интерфейсе, глупо, и были развернуты некоторые специальные для Windows модули, позволяющие использовать Win32 / Forms и WPF для создания пользовательского интерфейса.
По мере того, как все это подходило к концу, Microsoft внезапно, похоже, пришла к другому осознанию: если в Azure работает Linux, почему не Windows? Подсистема Windows для Linux (WSL) родилась, и вы могли работать с Linux на машине, которая в основном работала под Windows. Не виртуальная машина, а размещенная операционная система в другой операционной системе. Будущие историки вполне могут оглянуться на этот первый шаг как на начало слияния между Windows и Linux, а также программным обеспечением Microsoft в целом и открытым исходным кодом.
Например, зачем Microsoft тратить деньги на разработку HTML-рендерера для своего собственного браузера, когда есть браузер с открытым исходным кодом, используемый Google, просто сидящий и ожидающий использования. Браузер Edge — это пример стратегии развития, которую, я думаю, мы увидим со временем — открытый исходный код + проприетарный код и услуги.
Теперь у нас есть новости о том, что Edge станет кроссплатформенным. И почему бы нет? Chromium кроссплатформенный, что тут удивительного? Что удивительно, так это то, что Microsoft делает еще один шаг навстречу Linux. Конечно, все это сопровождается некоторыми добавками Microsoft:
«Для разработчиков WebView2 станет общедоступным для C / C ++ и .NET к концу 2020 года. После того, как оно станет доступным, любое приложение для Windows сможет встраивать веб-контент с помощью Microsoft Edge и Chromium. WebView2 обеспечивает полную веб-функциональность для всех спектр приложений Windows, и он отделен от ОС, поэтому вы больше не привязаны к определенной версии Windows.
Кроме того, теперь общедоступно новое расширение Microsoft Edge DevTools для Visual Studio Code, обеспечивающее плавный рабочий процесс для разработчиков при переключении контекстов «.
На данный момент WebView2, кажется, поддерживает только Windows, но поддержка Linux в ближайшем будущем кажется логичной. Также обратите внимание на то, как Microsoft создает сеть зависимостей — Edge поддерживает Visual Studio Code, который, в свою очередь, отдает предпочтение Microsoft GitHub и, конечно же, Azure. Все это так тесно связано, что вам действительно не захочется тратить время на их разборку.
«Начиная с октября, Microsoft Edge для Linux будет доступен для загрузки на канале предварительного просмотра для разработчиков. Когда он станет доступен, пользователи Linux могут перейти на сайт Microsoft Edge Insiders, чтобы загрузить канал предварительного просмотра, или они могут загрузить его из собственного пакета Linux. менеджер.»
И пока все это происходит, WSL расширяется. Приложения Linux с графическим интерфейсом будут поддерживаться в ближайшие несколько недель. Если бы вы были достаточно решительны, вы уже могли бы заставить работать приложения с графическим интерфейсом, но теперь это официально. Так что я могу сесть за свою машину, загрузить Windows и запустить приложения с графическим интерфейсом для Windows и Linux.
Дела прошли долгий путь. Было время, когда мне приходилось беспокоиться о том, какую операционную систему я использую. Сейчас я обычно использую ls в PowerShell и почти забыл, что делает команда Windows dir. Какой косой чертой использовать в именах путей, больше не проблема, и я все больше удивляюсь, когда обнаруживаю, что команда Linux не работает под Windows.
У нашего нынешнего настольного оборудования достаточно памяти и дискового пространства, чтобы поддерживать сочетание Windows и Linux, что до относительно недавнего времени казалось расточительным. Мы живем в эпоху раздутия операционных систем — привыкните к этому и воспользуйтесь преимуществами.
Winux поехали …