Microsoft С Открытым Исходным Кодом PowerShell И Он Работает На Linux


PowerShell-это странный зверь, который теперь был выпущен на свободу как в Linux, так и в Mac. Вы могли бы даже сказать «в мире», поскольку сейчас это открытый исходный код. Что такое PowerShell и почему вас это должно волновать?

В Windows не было языка команд оболочки, который облегчал бы работу с системой. Лучшее, что у него было, — это пакетный язык, который в основном обеспечивал способ выполнения инструкций командной строки плюс несколько других дополнительных функций. По сравнению с Linux он был очень беден. Затем появилось несколько языков сценариев, JScript и VBScript, и все стало немного лучше, но все еще не очень хорошо. Самая большая проблема заключалась в том, что никогда не было утилиты, которая делала бы то, что вы хотели, и которую можно было бы использовать в сценарии. В конце концов, все языки сценариев являются связующим звеном между утилитами, а без утилит клей бессмыслен. Однако вы могли бы сделать несколько умных вещей. 

Затем появился PowerShell. Это основанный на .NET язык сценариев и среда, которая позволила сделать гораздо больше. Большой проблемой была та же старая история — никогда не было утилит или командлетов, которые вам нужны для выполнения сложных задач. Вторая проблема с PowerShell заключается в том, что он основан на .NET и полностью объектно-ориентирован с C# в качестве языка клея.

Хотя преимущества объектной ориентации очевидны, когда вы пишете большие программы и в хороших средах разработки, никогда не было ясно, что объекты-это хорошая вещь, чтобы иметь их на языке сценариев. PowerShell-это не просто объектная ориентация, которую вы находите в языках сценариев, таких как VBScript, она агрессивно объектно-ориентирована. Вы создаете сложные процедуры не путем передачи текстового вывода одной простой команды в другую, а путем передачи объектов в комплекте со свойствами и методами. 

Многие программисты считают PowerShell слишком мощным для этой работы. 

Теперь программисты Linux и Mac могут выяснить, действительно ли это хорошо. Microsoft имеет PowerShell с открытым исходным кодом, и, поскольку .NET Core теперь доступен под Linux и Mac, PowerShell также доступен. Вы можете получить альфу и попробовать его прямо сейчас. 

Так зачем беспокоиться?

Microsoft объясняет часть мотивации тем фактом, что каждая третья машина Azure основана на Linux, и наличие единого инструмента для очистки всех операционных систем было бы хорошо. Это игнорирует тот факт, что способ управления системами очень отличается. Как PowerShell может работать с systemd (чтобы упомянуть еще одну банку червей) и WMF (среда управления Windows)? Если вы создадите быстрый «скрипт» в PowerShell, который что-то делает в Windows, каковы шансы, что он будет работать под Linux? Не очень высоко. У нас уже есть запрос на вытягивание от автора Curl, чтобы удалить наполовину реализованные псевдонимы PowerShell для wget и curl. Это не только указывает на негодование по отношению к Microsoft за переход на территорию Linux, но и подчеркивает наполовину выполненную работу по превращению PowerShell в инструмент Linux. 

Конечно, если вы поклонник PowerShell, то тот факт, что вы можете использовать его в Linux, просто великолепен. Со временем могут даже появиться кросс-платформенные системы управления и другие подобные инструменты, но вряд ли это инструменты сценариев низкого уровня. 

Что делает всю ситуацию еще более странной, так это то, что Microsoft недавно внедрила оболочку Bash как часть подсистемы Windows Linux. Так что теперь вы можете писать сценарии оболочки Bash под Windows. По общему признанию, вы не можете получить большой доступ к Windows из подсистемы Linux, но со временем вы можете это сделать. 

Были некоторые дополнения к PowerShell, а также просто открытие его в Linux. Теперь вы можете использовать VS Code или Sublime в качестве редактора с помощью службы редактора PowerShell. Протокол удаленного взаимодействия PowerShell теперь использует OpenSSH как родной транспорт. 

Вот рекламный ролик Microsoft для нового PowerShell:

Похоже, в доступности PowerShell нет ничего зловещего, несмотря на опасения многих сторонников Linux. Идея о том, что Microsoft каким-то образом перемещается на территорию Linux, чтобы каким-то образом повредить его, не имеет большого смысла, учитывая поддержку, которую Azure оказывает Linux. Более вероятно, что Microsoft заработает много денег на своей поддержке Linux; настолько, что ей, вероятно, будет все равно, какую ОС вы используете. 

В идеальном мире Microsoft Linux был бы просто еще одним вариантом Windows и управляемым с помощью тех же инструментов. Большая проблема с созданием одного инструмента, такого как PowerShell, заключается в том, что базовые системы очень разные, и существует слишком мало командлетов, чтобы сделать что-либо легким. 

Я сомневаюсь, что PowerShell получит много конверсий от школы программирования Linux.


Добавить комментарий