On Thu, 26 Oct 2000, Victor Wagner wrote: > On Wed, 25 Oct 2000 [EMAIL PROTECTED] wrote: > > > From: [EMAIL PROTECTED] > > Subject: What perl's bad for > > > > A mozhno li bez flame war spokoyno i konstruktivno > > obyasnit` svoyu nepriyazn` k perl. Vot vse, chto ya nashel > > v seti po etomu povodu: > > -------------------------------------------------------- > > What perl's bad for > > > > User interface design > Perl has Tk, but syntax is a bit ugly comparing with Tcl or Python, > Perl has Gtk, but its interface is no better than C interface, and one > expects more from scriting language. > > Perl has CDK (Curses development kit) and I've never seen anything > comparable for Tcl or Python or Scheme. > > > Proprietary file handling > > I've seen nothing better in scripting language land. > pack and unpack are cool. > > > Character-by-character processing > Any scripting language is bad for it. But typically > there are other ways to do same job. > > > > > int main(void) > > { > > int chars=0, words=0, lines=0, inwords=0, c; > > while ((c=getchar()) != EOF) { > > chars++; > > if (c=='\n') > > lines++; > > if (isspace(c)) > > inword=0; > > else if (!inword++) > > words++; > > } > > printf("%d %d %d\n", chars, words, lines); > > } > > while (<>) { > lines++; > chars+=length($_); > words+=scalar(split("\W+)); > } > print "lines=$lines words=$words chars=$chars\n"; > > На самом деле проблемы перла начинаются не с этого. > 1. There is more than one way to do it, and sometimes it might be > misleading. > 2. В синтаксисе есть множество исключений из правил. При написании > маленьких программ это удобно, при написании больших - приводит к > трудноустранимым ошибкам.
Согласен - это напрягает. > 3. Интерфейс для писания C-шных расширений к перлу громоздок и сложен > по сравнению с Tcl и Python. А сила скриптовых языков заключается ровно > в том, что на них можно не делать то, что на них делать неэффективно. Надо юзать swig - он генерит врапперы для perl, tcl, python для С и С++ кода. > 4. И как же меня злит в перле отсутствие командной подстановки в строки... Это типа `date`? Легко написать процедуру которая будет допускать bash-like синтаксис для коммандной подстановки. Best regards, -Vlad