> 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.