а зачем вообще придумали PowerShell?
От: Codealot Земля  
Дата: 28.10.21 18:44
Оценка:
Что мешало использовать тот же рантайм и библиотеки, но синтаксис — обычный C# к примеру?
Никакой мороки с изучением другого синтаксиса, любой код можно легко перетащить из обычного проекта в скрипт и наоборот.
Ад пуст, все бесы здесь.
Re: а зачем вообще придумали PowerShell?
От: Osaka  
Дата: 28.10.21 18:52
Оценка: -2
C>Что мешало использовать тот же рантайм и библиотеки, но синтаксис — обычный C# к примеру?
C>Никакой мороки с изучением другого синтаксиса, любой код можно легко перетащить из обычного проекта в скрипт и наоборот.
Начальству хорошо продаётся то, про что можно заявлять "не требует найма программиста".
Re: а зачем вообще придумали PowerShell?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.10.21 20:26
Оценка:
Я думаю, что разница такая же как между bash и Си.
Что мешало использовать синтаксис языка Си? А вот нет, зачем-то придумали синтаксис bash...

В чём конкретно дело — я не задумывался.
Re[2]: а зачем вообще придумали PowerShell?
От: Codealot Земля  
Дата: 28.10.21 20:28
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Я думаю, что разница такая же как между bash и Си.

ЭФ>Что мешало использовать синтаксис языка Си? А вот нет, зачем-то придумали синтаксис bash...

ЭФ>В чём конкретно дело — я не задумывался.


В те времена когда это изначально делали, каждый байт был на счету да и компиляция была совсем не быстрой. Ну а потом — "так уж здесь принято".
Ад пуст, все бесы здесь.
Re[3]: а зачем вообще придумали PowerShell?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.10.21 20:43
Оценка: +4
C> каждый байт был на счету..., а потом — "так уж здесь принято".

Нет, это не единственная причина.

Ещё дело в том, что существует некая абстрактная модель того, как всё это должно работать (передача данных от программы к программе через "пайпы"), эта модель поддерживается соответствующим синтаксисом. В языке C# просто такого нет (и в Си тоже)
Re: а зачем вообще придумали PowerShell?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 28.10.21 21:16
Оценка: 3 (1) +12 -6 :))) :))) :))) :))) :))
Здравствуйте, Codealot, Вы писали:

C>Что мешало использовать тот же рантайм и библиотеки, но синтаксис — обычный C# к примеру?


У людей, разработавших синтаксис PS, безусловно очень больная психика.
Re[4]: а зачем вообще придумали PowerShell?
От: Codealot Земля  
Дата: 28.10.21 21:47
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Нет, это не единственная причина.


C, к тому же — язык низкого уровня. Просто слишком много добавочной работы.

ЭФ>Ещё дело в том, что существует некая абстрактная модель того, как всё это должно работать (передача данных от программы к программе через "пайпы"), эта модель поддерживается соответствующим синтаксисом. В языке C# просто такого нет (и в Си тоже)


В C# это элементарно делается при помощи библиотек.
Ад пуст, все бесы здесь.
Re[5]: а зачем вообще придумали PowerShell?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 28.10.21 21:50
Оценка:
C> C, к тому же — язык низкого уровня. Просто слишком много добавочной работы.

В данном случае это не имеет значения. bash тоже невысокого уровня язык.
Re[6]: а зачем вообще придумали PowerShell?
От: Codealot Земля  
Дата: 28.10.21 23:19
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>В данном случае это не имеет значения. bash тоже невысокого уровня язык.


Кхм, серьезно? Там тоже надо управлять памятью вручную и везде сплошные указатели?
Ад пуст, все бесы здесь.
Re[7]: а зачем вообще придумали PowerShell?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 29.10.21 05:57
Оценка:
C> Кхм, серьезно? Там тоже надо управлять памятью вручную и везде сплошные указатели?

В Bash система типов ещё проще, указателей нет, значит сложность у него ниже чем у Си.
Ну хорошо, неправильно выразился. Не "уровня" надо было сказать, а "сложности".
Отредактировано 29.10.2021 5:59 Эйнсток Файр . Предыдущая версия . Еще …
Отредактировано 29.10.2021 5:58 Эйнсток Файр . Предыдущая версия .
Re: а зачем вообще придумали PowerShell?
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 29.10.21 06:56
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Что мешало использовать тот же рантайм и библиотеки, но синтаксис — обычный C# к примеру?

Ну они и взяли в качестве основы что-то типа bash.
Для первых версий где еще не было всяких страшных вещей типа объявлений классов (и вроде даже скриптовых свойств еще не было) этого было за глаза.

Более того, основной use case, который предполагался — это написать Pipeline из набора cmdlets. Синтаксис bash здесь просто поет и пляшет.
Всё остальное — это только вспомогательные конструкции.


C>Никакой мороки с изучением другого синтаксиса, любой код можно легко перетащить из обычного проекта в скрипт и наоборот.

Зачем? Если вы уже написали код на C#, то в чем смысл его тащить в PS?
Создайте консольку и вызывайте её или оформите код как cmdlet (это, кстати, очень просто и удобно делается), а затем просто напишите обвязку вида "из этого cmdlet взял, по таким-то полям отфильтровал, в этот cmdlet отдал".
Re: а зачем вообще придумали PowerShell?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.10.21 07:10
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Что мешало использовать тот же рантайм и библиотеки, но синтаксис — обычный C# к примеру?

на момент придумывание мешали две вещи:
1) "public static void main — оверхед"
2) статическая типизация

На сегодня осталась только вторая проблема

C>Никакой мороки с изучением другого синтаксиса, любой код можно легко перетащить из обычного проекта в скрипт и наоборот.


PowerShell намеренно делали похожим на bash, а не C#, чтобы админы могли писать скрипты, а программисты им могли помогать в этом путем создание модулей и snap-in.
Re: а зачем вообще придумали PowerShell?
От: vsb Казахстан  
Дата: 29.10.21 07:23
Оценка: +2
Фичи шелла:

1. Его удобно использовать в REPL режиме.

2. В нём очень простой синтаксис для запуска программ. В sh это просто program arg1 arg2

3. В нём очень простой синтаксис для построения pipeline-ов, когда стандартный выход одной программы соединяется со стандартным входом другой программы. В sh это просто program1 arg1 | program2 arg2

4. В нём очень простой синтаксис для вызова под-шеллов, например чтобы передать вывод одной программы как аргумент другой. В sh это просто program1 $(program2).

В обычных ЯП это никак не изменить, никакими библиотеками. Слишком много будет синтаксического мусора.
Отредактировано 29.10.2021 7:23 vsb . Предыдущая версия .
Re[2]: а зачем вообще придумали PowerShell?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 29.10.21 08:12
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>Ну они и взяли в качестве основы что-то типа bash.


А зачем? Уродство же.
Re[2]: а зачем вообще придумали PowerShell?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 29.10.21 08:15
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>PowerShell намеренно делали похожим на bash, а не C#, чтобы админы могли писать скрипты


Каким образом похожесть на bash, при остальных радикальных отличиях, может помочь админам писать скрипты?
Re[3]: а зачем вообще придумали PowerShell?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.10.21 08:27
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, gandjustas, Вы писали:


G>>PowerShell намеренно делали похожим на bash, а не C#, чтобы админы могли писать скрипты


ЕМ>Каким образом похожесть на bash, при остальных радикальных отличиях, может помочь админам писать скрипты?


Отличия не настолько радикальные, насколько вы хотите думать.

1) Это даже не про bash, а про командную строку. Основа композиции программ в командной строке — "пайплайн", то есть выход одной программы передается на вход другой и так можно составлять цепочку программ. Это реализовано в pwsh.
2) Набор операторов (if\else, for, switch, function pwsh и их семантика ПОЛНОСТЬЮ совпадает с bash (внезапно!). В некоторых случаях совпадает и синтаксис, например синтаксис сравнения.
3) в pwsh есть алиасы команд, которые совпадают с командами bash

В итоге программу на bash можно превратить в программу на pwsh путем замены и добавления ключевых слов, а также установки скобок в некоторых местах.

При этом pwsh был и остается .net языком, на котором можно сделать все, что можно на .net, кроме создания своих типов.
Re: а зачем вообще придумали PowerShell?
От: Kolesiki  
Дата: 29.10.21 09:24
Оценка: +1 -3 :)
Здравствуйте, Codealot, Вы писали:

C>Что мешало использовать тот же рантайм и библиотеки, но синтаксис — обычный C# к примеру?


Есть подозрение, что это и было начальной (здравой) идеей. Потом набежали линупсятники и такие: "Так не принято! Нужно каждый раз изобретать новый язык! Юзеры не поймут ваш C#!".
Наделла почесал свои яйца (которыми думал) и дал добро!

На деле практически НИ ОДИН юзер не пишет ничего в шеллах — всё написано обычными программистами, которые вынуждены вместо привычного языка использовать "скриптовую чушь", ограниченную по всем фронтам. Тот же bash — маразм чистой воды, есть же обычный Перл, причём даже с "однострочным вызовом". Но нет, каждому ничтожеству хочется плюнуть в вечность, изобретя "личный язык"!
Re[2]: а зачем вообще придумали PowerShell?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.10.21 09:45
Оценка: +1
Здравствуйте, Kolesiki, Вы писали:

K>На деле практически НИ ОДИН юзер не пишет ничего в шеллах — всё написано обычными программистами, которые вынуждены вместо привычного языка использовать "скриптовую чушь", ограниченную по всем фронтам.

Юзер не пишет, а админ — очень даже пишет.
У меня всегда все админы писали pwsh скрипты, при этом не только простые пайплайны готовых команд, но и циклы, преобразования данных и иногда интерактив.
pwsh хорош именно тем, что имеет низкий порог вхождения, но при этом огромные возможности.
По сути единственное ограничение pwsh — невозможность сделать свой тип в pwsh. Но через Add-Type можно создать тип на C# прямо в теле скрипта.


K>Тот же bash — маразм чистой воды, есть же обычный Перл, причём даже с "однострочным вызовом". Но нет, каждому ничтожеству хочется плюнуть в вечность, изобретя "личный язык"!

Лично мне синтаксис bash гораздо больше нравится чем perl, но тут вкусовщина.
Re[4]: а зачем вообще придумали PowerShell?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 29.10.21 10:17
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>1) Это даже не про bash, а про командную строку. Основа композиции программ в командной строке — "пайплайн"


Спасибо, я знаю за композиции. Вопрос исключительно о корявом синтаксисе скриптового языка bash.

G>2) Набор операторов (if\else, for, switch, function pwsh и их семантика ПОЛНОСТЬЮ совпадает с bash (внезапно!). В некоторых случаях совпадает и синтаксис, например синтаксис сравнения.


То есть, совпадает как раз самое уродливое. А зачем? Профессиональные виндовые админы никогда массово не изучали bash и не пользовались им.

G>В итоге программу на bash можно превратить в программу на pwsh


Зачем? Это не имеет смысла без превращения винды в линукс или наоборот.

G>При этом pwsh был и остается .net языком, на котором можно сделать все, что можно на .net, кроме создания своих типов.


К этому как раз претензий нет.
Re[2]: а зачем вообще придумали PowerShell?
От: RonWilson Россия  
Дата: 29.10.21 10:40
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>У людей, разработавших синтаксис PS, безусловно очень больная психика.


Это почему? Что в нем не так?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.