Perl只比Python老了兩年卻被認為過時語言?

banq發表於2022-06-02

為什麼Perl被認為是 "老 "和 "過時 "的,而Python被認為是 "新 "和 "酷 "的,而Perl只比Python大兩年?

我最喜歡的對Perl的描述一直來自於《程式語言簡史》(Brief, Incomplete, and Mostly Wrong History of Programming Languages)。

拉里-沃爾睡著了,額頭敲在鍵盤上。醒來後,拉里-沃爾認為:他的顯示器上的那串字元不是隨機的,而是上帝希望他這位先知拉里-沃爾設計的一種程式語言的示例程式,Perl就誕生了。


還有一本Python的書,作者說:"Python就像Perl,只是你可以在 6 個月後能讀懂你編寫的程式碼"。

我爸爸在Sun公司工作時,用了很多Perl。在我現在的公司,生態系統中仍然有很多Perl。不過,我認為Python(和其他語言)有一個更強大的社群。儘管Perl可以很有效,但似乎對Python有更多的 "愛"。

我在學校開始使用 Perl,然後在工作中過渡到 Python。Python 是可讀的,而帶有這些單行程式碼的 Perl 會讓人頭暈目眩!Python 很酷,因為您必須使用縮排,這使得它更具可讀性。
Python 的流行可能使 Perl 的相關性大大降低。

下面怪物程式碼能在C和Perl中編譯:

include <sys/types.h> 
include <sys/stat.h> 
include <stdio.h> 
include <fcntl.h> 
define open(a,b) open(b,a) 
define $ARGV argv 
define $i i 
define x : /* aren't four define way too much?
               unshift @ARGV, $_ = $ARGV[0]; "*/ 
main(int argc, char *argv[]) { // "; {
  int m=1, i[14]; char * pp; int p=-1;
  int q, F=3; char * qq = "Hello\, world!\n";
      i[12]=537463307; i[13]=3085; //,; $_ = "" if(length!=2);
  if(m+-p?(argc>1&&!strcmp(argv[1],"-p"))?p+i? 1 : 1 x 0 x 0) {
    printf(qq/*\bThe Perl Journal\n/#*/
          ); exit(0); }
  qq="=;#"; argv[0][0]='\0'; memset(i,0,48);
  $i[10]=($i[11]=(q/*\b/&&scalar@ARGV))-1;#*/=0) + argc)-1;
  do{
    if($i[11]<2) { $i[10]=1; q/*/&&*F=*STDIN;#*/=F=0;
    } else { open(O_RDONLY, $ARGV[$i[11]-$i[10]]);//; *F=*O_RDONLY;
    }
    while(read(F, $i, 1)>0) {
      ++$i[4]^(q=/*.=,$_=$i);#*/0); pp=i;
      $i[3]+=m=( *pp^0x0A)?/*\n=;#*/0:1; for(qq=&i[12];*qq;*pp^*qq++||(q=1));
      if(m=/*[     \n\f\r\xB]=#*/q
        ) { if($i[1]){$i[$i[1]]++; $i[1]=0; }} else { $i[1]=2;}
    }
    if($i[1]){$i[$i[1]]++;};
    printf("%7d %7d %7d %s\n",$i[3],$i[2],$i[4],$ARGV[$i[11]-$i[10]]);
    close(F);
    if($i[11]>2){for($i[1]=2;$i[$i[1]+4]+=$i[$i[1]];$i[1]++){$i[$i[1]]=0;};$i[1]=0;}
  } while(--$i[10]);
  if($i[11]>2) { printf("%7d %7d %7d total\n",$i[7],$i[6],$i[8]); } 
}

 

相關文章