![](https://habrastorage.org/files/7b4/358/313/7b435831327644aab47d51e3909a992c.png)
Позавчера компания Microsoft опубликовала исходный код PowerShell. Таким образом, это средство автоматизации и конфигурирования на базе .NET Framework стало доступным под Linux.
Некоторые скептически относятся к стратегии «Microsoft любит Linux», которую декларирует редмондский гигант. Кое-кто считает, что консоль от Microsoft не нужна в операционной системе, в которой есть bash. Обычно это просто эмоциональные высказывания, но есть и вполне рациональные аргументированные возражения по существу. Например, разработчик программы
curl
Дэниель Стэнберг (Daniel Stenberg) вполне логично говорит, что наличие внутри PowerShell одноимённого алиаса curl
, а также wget
совершенно неуместно, потому что мешает запустить нормальные привычные программы.«Алиасы curl и wget препятствуют использованию привычных инструментов командной строки, при этом даже близко не обеспечивают такую же функциональность, — пишет Дэниель Стэнберг в пулл-реквесте к свежеопубликованному коду PowerShell на Github. — Они совершенно бесполезны для пользователей PowerShell, но вызывают путаницу для нынешних пользователей curl и wget».
Пулл-реквест Дэниеля Стэнберга поддержали 466 других пользователей Github. В самом деле, алиас
curl
внутри оболочки PowerShell вносит определённую путаницу для тех, кто специально установил curl
под Windows и хочет запускать эту программу из командной строки.Один из разработчиков PowerShell ответил на комментарий Стэнберга, что эти алиасы использовались в разных версиях PowerShell, а их удаление станет «ломающим изменением». Поэтому они отклоняют этот пулл-реквест, ибо он представляет собой «неприемлемые изменения» в соответствии с условиями неприемлемых изменений, которые нарушают обратную совместимость и ломают существующие пользовательские скрипты.
Дэниелm Стэнберг вежливо ответил, что на самом деле добавление этих алиасов в PowerShell стало «ломающим изменением» для людей, которые запускали
curl
и wget
из консоли. «Ни один здравомыслящий человек всё равно не будет использовать эти алиасы, поскольку ваша замена curl
и wget
работает совершенно непохоже на оригинальные команды curl
и wget
. Эти алиасы только усложняют жизнь пользователям, которым нужны настоящие инструменты, и они не делают ничего хорошего для тех пользователей, которым эти инструменты не нужны».Разработчиков PowerShell можно понять. Всем совершенно очевидно, и им тоже, что алиасы
curl
и wget
неуместны, но существующая многоступенчатая бюрократическая система не позволяет им сделать такое изменение по простому пулл-реквесту. В данный момент свободный проект PowerShell управляется комитетом из пяти мейнтейнеров, которые действуют с ведома менеджеров проекта, которые, в свою очередь, подчиняются более высокому руководству в корпорации. Такого рода значительные изменения требуют длительных согласований во всей корпоративной иерархии.Разработчики признают проблему, что когда добавили «алиасы для юниксовых команд», то под Windows эти алиасы мешают запустить нормальные программы. Это нужно исправить, но формально такое изменение является «ломающим», в соответствии с официальным документом. Сейчас мейнтейнеры проводят совещание, что делать с этими алиасами Linux и как решить проблему под Linux и под Windows.
В качестве временного решения они предлагают вручную удалить мешающие алиасы, добавив следующие строки в профиль:
Remove-Item Alias:Curl
Remove-Item Alias:WGet