Re[74]: MIT переходи со схемы на...
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.12.06 00:19
Оценка:
Здравствуйте, raskin, Вы писали:

R>Тема начиналась с того, что объявлялось, что shell скрипты никогда не

R>удобнее программы на C#. Мне предлагали ставить mono на GNU/Linux, а он
R>больше по размеру.

Насколько я помню исходно ставлися тезис что шел-скрипт — это ДСЛ который чем-то лучше чем универсальный язык. Вместо доказательства этой позиции тема сошла в демогагическое обсуждение того, то наличие готовых утилит оправдывает убогость ЯП и его среды.

R>Да, действительно, нормальный matching там есть. Хотя необходимость

R>что-то подключать для кода короче десяти строк — минус, хотя и мелкий.

Для скриптов можно специально по умолчанию открыть пару пространств имен, чтобы не дублировать код. К тому же визарды никто не отменял. Достаточно создать проект "скрипта" и одни нажатием мы получим нужное окружение.

>> По-моему, даже применение Явы для этого уже дало бы множество

R>Какие?

Полноценный язык который (компилируемый, что немаловажно), возможность использования отличной IDE, отладчика, моря библиотек, качественной документации.

R> Что я получу взамен case,


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

R>for,


for в Яве 1.5 расширен до возможностей foeeach C#-а.

R> предельно краткого синтаксиса


Предельно экзотического и извращенного. Причем разного вразных вариантах.

R>вызова функций


вызов функций Причем полноценный, рекурсивный и быстрый.

R>и краткого синтаксиса перенаправления потоков данных?


Полноценным языкам не требуются подпорки вроде пайпов. Они и так повзовляют передавать результаты одной функции другой. Для этого придумана куча мехонизмов. В том числе потоки ввода вывода и итераторы.

R> Я успею этим воспользоваться в экране кода? На Яве столько обвязка для

R>Hello world занимает..

Для целей скрипта можно сделать простенький снипет-компилятор который уберет эту "обвязку". Плюс опять же с ней нет проблем если ты пользуешся IDE.

>> приемуществ. Соорудить набор соотвесвующих библиотек и удобные средства

>> запуска. Остальное уже есть. Конечно более мощьный язык вроде Немерла
R>На экране кода синтаксис стоит тоже немало.

Синтаксис шелов ужесен. Что на экране, что на 20. Причем скрипты в 20 экранов очень даже встречаются.

R>Полноценная IDE не нужна для скриптов короче экрана — ей просто некогда

R>воспользоваться на таком малом объёме.

Она нужна для любого объема код. От одного вызова, до проекта на 1000 файлов.
Это и удобство для опытных пользователей, и простота вхождения для новичков.

R>Основание — shell имеет сочетание свойств, выгодное для его роли.


И как мы выяснили все они упираются в греп и еще пару утилит к шел-у по большому счету отношения не имеющих.

R> Вызов

R>функций — просто с аргументами через пробел. С учётом специфики -
R>удобно.

Не сказал бы. Это твоя привычка. Мне как программисту всю жизнь использовавшему С- и Паскале-подобные языки (а до этого учившегося в школе математике) понятнее и привычнее синтаксис со скобками и запятыми.

R> Далее имеем такую вещь, как флаги вида -<буква>


И чем это отличается от перечислений передающихся в параметры? Хотя отличие есть. В параметрах задолбашся разбираться (пока их не зазубришь), а перечисления как раз будут отлично понятны без пояснений. Да и пояснения для них получить будет раз плюнуть (помним про Интеллисенс).

R>. С выдачей списка по <tab>-<tab> при наборе.


Он отдыхает по сравнению с полноценным комплитом и хинтами. Расширить комплит для подсказки каталогов на текущей машине и стандартных каталогов и будет вообще улет.

R> Как их передавать — как строки?


Зависит от задачи.

R> Подозрительная похожесть решения проблемы флагов в shell и Lisp наводит на мысли, что сделать лучше можно, но весьма сложно.


А не наводит на мысль то что Лисп уже 45 лет на задворках? Может ну его на такое удобство?

R>Я пробовал использовать как shell что-нибудь помощнее. Но многословность

R>в тривиальных случаях быстро добивает.

Это только говорит о тебе. Вместо того чтобы создать библиотеки ты все добил в коде скрипта.

R> А shell-скрипт — это как раз не больше экрана кода, из которого обвязку выкинули как класс и при этом в большинстве строк по несколько вызовов вложенных вызовов функций.


В коде любого языка все коротго если код вызвает гтовые выскоуровневые библиотеки. В ранних версиях Юникс и ДОС-е выбор утилит и кривых скриптовых языков было обяснимо. В те времена компонентных технологий еще попросту не существовало. Но почему в современных ОС дела обстоят не сильно лучше лично я понять не могу. Это банальная костность мышления.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.