Re: Perl or Python?
> Aleksey Cheusov wrote:
>> awk - это отдельная парадигма программирования. Называется data-driven
>> или "программирование от состояний". Лично мне она ОЧЕНЬ нравится.
>> И она тоже есть, и она отлично работает. Даже сегодня.
>> Не смотря на очевидные ограничения этого языка.
>> Особенно, если к awk-у добавить модули, как есть у всех современных ЯП.
>> См. мой проект http://sf.net/projects/runawk
>>
>> И с Ериком Реймондом здесь я не согласен. Категорически.
> А что Реймонд говорил по поводу awk, напомните пожалуйста?
http://www.catb.org/~esr/writings/taoup/html/ch08s02.html#awk
Есть там и разумные мысли, но я не согласен с некоторыми вещами.
Главная из них:
Modern minilanguages can either be general but noncompact, or
specialized but very compact; specialized but noncompact simply won't
compete.
Это, я извиняюсь, полный бред.
Еще:
A case study of awk is included to point out that it is not a model for
emulation; in fact, since 1990 it has largely fallen out of use. It has
been superseded by new-school scripting languages—notably Perl, which
was explicitly designed to be an awk killer. The reasons are worthy of
examination, because they constitute a bit of a cautionary tale for
minilanguage designers.
С первой половиной согласен, конечно. Perl его в значительной степени
действительно вытеснил. Не согласен с последним предложением. У него нет
ни одного аргумента против minilanguages. Просто словоблудие. Миниязыки
- это очень красивая и хорошо работающая на практике концепция. Есть
тому куча примеров.
Дальше:
The awk language was originally designed to be a small, expressive
special-purpose language for report generation. Unfortunately, it turns
out to have been designed at a bad spot on the complexity-vs.-power
curve. The action language is noncompact, but the pattern-driven
framework it sits inside keeps it from being generally applicable —
that's the worst of both worlds.
По поводу "generally applicable". Никто не отменял
BEGIN {
print "Hello world!"
}
Это во-первых.
Во-вторых, pattern/action схема - это отдельная парадигма
программирования, и она ОЧЕНЬ удобна для обработки текста, в чем
собственно и заключается задача AWK. Остальные задачи решаются очень
просто. Все превращаем в текст и, как в моем любимом анекдоте, "сводим
задачу к предыдущей"(С). Конечно, это шутка, но все знают, что в каждой
шутке есть доля шутки. Я на AWK решаю очень широкий класс задач.
У меня к нему вагон претензий, но уж на перл и питон я его точно не
променяю. Фу.
В плане дизайна к AWK, конечно, можно придраться, и есть вполне
достойные более мощные альтернативы, при этом вполне легковесные. И об
этом можно было бы сказать. Но товарищ Эрик сделал это весьма неумело,
просто навалился на его "легковесность".
--
Best regards, Aleksey Cheusov.
Reply to: