Aleksey Cheusov wrote: >> А что Реймонд говорил по поводу 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. Просто словоблудие. Миниязыки > - это очень красивая и хорошо работающая на практике концепция. Есть > тому куча примеров. Он не против миниязыков. Просто считает awk недостаточно удачным примером миниязыка. Многословным (по сравнению с регэкспами или математическими выраженими) и ограниченным (ни развитых структур данных, ни мощных библиотек). По моему мнению, он слишком категоричен, awk хватает мощности для решения определённого круга задач и хватает легковесности, чтобы предпочесть его. Но круг этот узок. > Дальше: > > 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!" > } > Это во-первых. Где здесь awk? Зачем здесь awk? Его сильные стороны здесь не проявляются, а вот с действительно сложными задачами он не справится. > Во-вторых, pattern/action схема - это отдельная парадигма > программирования, и она ОЧЕНЬ удобна для обработки текста, в чем > собственно и заключается задача AWK. Остальные задачи решаются очень > просто. Все превращаем в текст и, как в моем любимом анекдоте, "сводим > задачу к предыдущей"(С). Конечно, это шутка, но все знают, что в каждой > шутке есть доля шутки. Я на AWK решаю очень широкий класс задач. > У меня к нему вагон претензий, но уж на перл и питон я его точно не > променяю. Фу. Не все задачи сводятся к построчной обработке текста. И даже если решить задачу на awk можно (ведь и на TeX-е факториалы считать можно), не всегда это уместно. Сам я awk применяю. Главным образом потому, что не люблю перл. Но не пытаюсь решить им любую задачу. > В плане дизайна к AWK, конечно, можно придраться, и есть вполне > достойные более мощные альтернативы, при этом вполне легковесные. И об > этом можно было бы сказать. Но товарищ Эрик сделал это весьма неумело, > просто навалился на его "легковесность". Как раз по мнению Реймонда awk недостаточно легковесен, чтобы оправдать его ограниченность. -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org