Perl

A dimostrazione che anche i linguaggi di programmazione hanno una propria "vita" che a volte prescinde dalle intenzioni del creatore, si può citare il caso di Perl.

Perl è un linguaggio nato per uno scopo e usato per un altro. Il suo inventore, Larry Wall, voleva creare uno strumento veloce, potente, che facesse tutte le cose per cui era necessario usare molti linguaggi diversi, come AWK, sed, sh o C. L'ambito era quello della manipolazione delle stringhe. Tanto è vero che ad un certo punto si diceva che il significato del nome Perl fosse "Practical Extract and Recognition Language".

Perl is a interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). It combines (in the author's opinion, anyway) some of the best features of C, sed, awk, and sh, so people familiar with those languages should have little difficulty with it.
Perl è diventato in seguito un linguaggio adatto al web, o a qualsiasi altro compito generico, grazie anche alle migliaia di moduli sviluppati e disponibili con una licenza libera. Moduli che sono mantenuti, documentati e ricercabili tramite CPAN, che è un archivio online esistente dal 1995 e contenente, ad oggi, oltre 270.000 moduli.

Una caratteristica abbastanza curiosa di Perl è che non chiede, spinge o in altra maniera supporta l'uso di IDE, a differenza di Java, Python o PHP. Perl si scrive con un editor testuale più semplice possibile. Anche questo la dice lunga sul tipo di programmatori che lo usano.

Un esempio tratto dalla pagina di Wikipedia italiana dedicata al Perl dovrebbe servire a mostrare come in Perl ci siano moltissime scorciatoie che lo rendono poco leggibile per chi non lo conosca bene:

    #!/usr/bin/perl
    while(<>) {
        my @campo=split /,/;
        print "$campo[0],$campo[1]\n";
    }
Qui si capisce vagamente che c'è una sequenza da parole che vanno divise (split) usando la virgola come separatore, e che vengono messi dentro gli elementi di un array (@campo), per poi stamparli sullo schermo uno per riga; ma non si capisce da dove vengono i dati. In effetti vengono da un file specificato nella riga di comando, da cui vengono automaticamente letti una riga per volta; altrettanto automaticamente la funzione split agisce su quelli.

Secondo il suo stesso autore, Perl ha due slogan. Il primo è "There's more than one way to do it," citato come TMTOWTDI. Questo per dire che Perl non è uno di quei bei linguaggi accademici che prevedono una forma standard e storcono il naso per tutte le altre.

Il secondo è "Easy things should be easy and hard things should be possible". Ovvero: Perl è un linguaggio potente che riesce a fare cosa che gli altri non sanno fare, senza per questo essere inutilmente complesso.

L'animale totemico del Perl è il dromedario:

Camel
Source: perl.org

In questo caso la responsabilità è della casa editrice statunitense O'Reilly, considerata una delle più complete e affidabili in questo settore. MOlti dei libri O'reilly presentano un animale sulla copertina: gufi rinoceronti, orsi bianchi, pitoni, anemoni, meduse. La storia di questa strana scelta è raccontata da Edie Freedman qui, e c'è persino un gioco di carte dedicato,

Prossimo pannello:  Javascript



Versione: 02/02/2022 - 08:59:47

Parole: 341

Pannelli

Linguaggi                   
Linguaggi di programmazione 
Nomi dei linguaggi          
Caratteri e linguaggi       
Famiglie                    
Traduzione                  
COBOL                       
Lisp                        
APL                         
Perl                        
Javascript                  
Python                      
PHP                         
Ruby                        
Linguaggi educativi         
Pascal                      
Ada                         
Logo                        
Prolog                      
IEML                        
Linguaggi nazionali         
Linotte                     
Linguaggi esoterici         
Intercal                    
Brainfuck                   
Emmental                    
HQ9+                        
🔎