Что Microsoft представила разработчикам на Build: winget, GUI-программы в WSL2 и прочее
Сейчас в разгаре онлайн-конференция Microsoft Build, и вчера вечером отгремела её презентационная часть. Сначала там были воодушевляющие слова от Сатьи Наделлы и освещение конкурса Imagine Cup, но нам интереснее всего блок «Скотт Хансельман представляет новые штуки для разработчиков».
На Хабре об этом уже писали в формате «по фразе на новинку», но мы считаем, что эти новости достойны большего — поэтому вдумчиво всмотрелись в трансляцию, вчитались в комментарии разработчиков на разных ресурсах и сделали подробный пост со скриншотами.
PowerToys Run
Первое, что показали — вроде бы мелочь, но вероятно, некоторые будут пользоваться ей активнее всего остального представленного. В наборе утилит PowerToys появился новый инструмент PowerToys Run, что-то вроде «Win+R на максималках». По нажатию Alt+Space на экране появляется крупная поисковая строка, позволяющая открывать приложения, файлы и папки.
Выглядит это похоже на Spotlight из macOS:
Но в PowerToys Run, если начать ввод с символа >, можно ввести консольную команду и сразу её выполнить. На Mac так умеет стороннее приложение Alfred, но не стандартный Spotlight.
Утилита входит в новый релиз PowerToys v0.18.0, его можно брать на GitHub.
Пакетный менеджер winget
В трансляции сразу же показали наглядный пример команды, которую удобно использовать из строки PowerToys Run: «winget install что-то». Да, у Windows появляется свой официальный пакетный менеджер! Чтобы, например, на новую машину можно было накатывать целый набор софта одним простым скриптом.
Мы не ограничились просмотром трансляции, а почитали на Hacker News реакцию разработчиков. Она оказалась различной. Есть точка зрения «слушайте, но эта штука просто скачивает и запускает exe-файлы, у неё нет ни управления зависимостями, ни даже функции удаления». На это возражают «В роадмапе планы добавить всё есть, да и сильно ли нужно в Windows это управление зависимостями».
Сейчас winget в превью-версии. Он доступен в Microsoft Store тем, кто участвует в Insider-программе, и компания рекомендует именно этот способ установки, позволяющий автоматически получать из Store апдейты. Но код выложен на GitHub, и никто не запрещает собрать его самостоятельно, лишаясь автоматических апдейтов.
Обновления WSL 2: GUI-приложения, поддержка GPU
Тут пока всё в стадии превью и материализуется только к концу года, но анонсировано уже сейчас. Громкая новость: через WSL 2 станет можно запускать не только консольные приложения, но и линуксовые GUI-программы.
Продемонстрировал это Хансельман запуском GIMP — впечатляет, конечно, но надо будет ещё посмотреть, как это всё получится на практике. Когда пытаются состыковать два масштабных мира (вне зависимости от того, каких именно), стык вечно где-то оказывается неровным. Тут можно вспомнить Wine, например. Хмм, подождите, а можно будет сам Wine запустить через WSL 2, чтобы открыть портал в ад?
Почитали комментарии по этому поводу, больше всех запомнился этот:
This is finally the year of the Linux desktop… and it’s on Windows!
Помимо этого, в WSL придёт поддержка GUI/CUDA, что «было самым популярным фичреквестом ещё с нашей первой версии». Для тех, кому тут хочется забраться поглубже, в Microsoft написали отдельный подробный пост. Под ним комментарии в основном благодарные и восторженные.
Ну и по мелочи: люди жаловались, что устанавливать WSL неудобно, и это станет можно делать одной консольной командой wsl.exe --install. Хмм, но вы же только что советовали нам устанавливать всё командой winget install?
Project Reunion
Наконец, представлен новый проект для объединения Win32 и UWP, «чтобы вам было проще разрабатывать приложения, которыми смогут пользоваться все на любых Windows».
Начинание благое, но учитывая, сколько раз за свою историю компания Microsoft хотела подарить универсальное счастье всем и даром, хочется очень осторожно высказываться о том, что из этого получится на этот раз.
Прочее
Также Хансельман с коллегами показали некоторые вещи, которые вообще-то уже были анонсированы ранее, но трансляция позволяла увидеть их в действии — особенно наглядно в таком варианте выглядят GitHub Codespaces, представленные недавно на GitHub Connect.
Если совсем коротко, то Codespaces — это «мы встроили VS Code прямо вам в GitHub». Но есть интересные нюансы: с одной стороны, тут можно подтягивать ваши настройки десктопного VS Code (создавая вам максимально привычное окружение), а с другой стороны, при этом всё подстраивается под зависимости конкретного репозитория (так что не нужно устанавливать на свой компьютер кучу вещей только для того, чтобы чуть-чуть поконтрибьютить). И ещё к сессии Codespaces можно подключиться из десктопного VS Code — если в процессе вы поняли, что в браузере всё-таки некомфортно, сможете продолжать не в нём. Пока что вся эта красота в ограниченной бете, можно запросить ранний доступ.
Другая ранее уже представленная штука, о которой вспомнили — новый Surface Book 3. Тут похвастались тем, что у него до 32 гигабайт оперативной памяти, SSD до двух терабайт, интеловские процессоры 10-го поколения — в общем, разработчикам подходит.
И немного поговорили о том, как с помощью Xamarin можно делать мобильные приложения для устройств с двумя экранами (напомним, Microsoft такие устройства сейчас готовит).
А, ну и Windows Terminal добрался до версии 1.0 — никаких суперфич при этом не добавилось, но теперь он официально «production-ready».
Ещё на Build были анонсы вне этой презентации, но менее релевантные для жизни обычного разработчика — от того, что Microsoft сделали новый суперкомпьютер, до приложения Lists (выглядит как потомство todo-менеджера и Excel).
В заключение
Если вы хотите, можете сами увидеть презентацию целиком. Хотя новости вы уже знаете, интересно смотреть и на то, как их представляли: от того, как у Хансельмана менялось освещение в комнате под конкретную тему Windows, до его эмоций (понятно, что всё выступление по строгому сценарию, но удивление «ух ты, в Windows теперь так можно» получалось довольно естественным).
А нам в JUG Ru Group смотреть на всё это было особенно интересно, потому что скоро Хансельман выступит на нашей онлайн-конференции DotNext (с темой будет «Overview of .NET»), так что всем дотнетчикам, которым близка его манера, советуем не пропустить: можно будет и послушать, и собственные вопросы позадавать!