Re: What perl's bad for
On Thu, 26 Oct 2000, Victor Wagner wrote:
> On Wed, 25 Oct 2000 igor@lid9c1.engr.ccny.cuny.edu wrote:
>
> > From: igor@lid9c1.engr.ccny.cuny.edu
> > 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
Reply to: