LINUX.ORG.RU

История изменений

Исправление theNamelessOne, (текущая версия) :

Ну вот в Haskell может выглядеть так, например:

find "<some_directory>" |> egrep "<some_regexp>" |> xargs "-I{}" "<some_command>" "{}" 

Тут вызываются внешние команды, но на практике часто вместо многих из них можно будет обойтись и стандартными средствами языка типа функций поиска по ФС и внутри строк.

Но мне очень нравится твой аргумент, т.е. ты считаешь, что язык shell-скриптов обязан быть убогим во всём остальном ради того, чтобы запись цепочки команд выглядела именно так? Как это оправдывает, к примеру, инопланетный синтаксис условных выражений, отсутствие именованных параметров у функций или другие сомнительные или явно устаревшие особенности?

Ведь если посмотреть на пример того же nushell, который я приводил, то внезапно окажется, что написать нормальный скриптовый язык для shell-а вполне возможно, просто надо сделать усилие и отойти от устаревшего дизайна 50-летней давности. И тут у тебя сразу появляются а) функции/команды с автоматической документацией, встроенным парсингом аргументов/опций, проверкой типов, встроенной поддержкой субкоманд, генерацией shell completions, b) нормальные конструкции языка, с) нормальные составные типы данных и средства работы с ними, d) десятки других плюшек.

И да, pipelines из команд там записывается точно так же, а многие другие конструкции можно выразить ещё более кратко (причём не в ущерб читаемости).


Напиши код на любимом твоем языке

Ок, это все требования, или ещё будут?

Исходная версия theNamelessOne, :

Ну вот в Haskell может выглядеть так, например:

find "<some_directory>" |> egrep "<some_regexp>" |> xargs "-I{}" "<some_command>" "{}" 

Тут вызываются внешние команды, но на практике часто вместо многих из них можно будет обойтись и стандартными средствами языка типа функций поиска по ФС и внутри строк.

Но мне очень нравится твой аргумент, т.е. ты считаешь, что язык shell-скриптов обязан быть убогим во всём остальном ради того, чтобы запись цепочки команд выглядела именно так? Как это оправдывает, к примеру, инопланетный синтаксис условных выражений, отсутствие именнованных параметров у функций или другие сомнительные или явно устаревшие особенностей?

Ведь если посмотреть на пример того же nushell, который я приводил, то внезапно окажется, что написать нормальный скриптовый язык для shell-а вполне возможно, просто надо сделать усилие и отойти от устаревшего дизайна 50-летней давности. И тут у тебя сразу появляются а) функции/команды с автоматической документацией, встроенным парсингом аргументов/опций, проверкой типов, встроенной поддержкой субкоманд, генерацией shell completions, b) нормальные конструкции языка, с) нормальные составные типы данных и средства работы с ними, d) десятки других плюшек.

И да, pipelines из команд там записывается точно так же, а многие другие конструкции можно выразить ещё более кратко (причём не в ущерб читаемости).


Напиши код на любимом твоем языке

Ок, это все требования, или ещё будут?