-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 

Versione stampabile.

Daniele Radogna
Un linguaggio che non teme confronti

1. Introduzione 2. Software Integrated Circuits 3. Multipiattaforma 4. Integrazione verticale 5. Metafore 6. Apprendimento 7. Conclusioni 

Introduzione

Esistono diverse buone ragioni per proporre all' attenzione di due tipologie di interlocutori la tecnologia Perl. Il testo di questa breve comunicazione si pone l' obiettivo di elencare tali ragioni senza la pretesa di fornire in tale sede tutte le prove a sostegno delle affermazioni che faremo, quanto piuttosto di enunciare queste affermazioni di cui in un diverso momento sarà possibile fornire approfondimenti e serie argomentazioni a favore. Questo intervento nasce come reazione da parte della comunità Perl italiana al contrasto esistente tra le potenzialità del Perl, particolarmente interessanti nel contesto italiano (per ragioni cui vorremmo accennare di seguito), e la sua scarsa diffusione in ambito nazionale.
I destinatari del nostro messaggio sono sia la collettività degli sviluppatori che i professionisti dell' IT responsabili della scelta delle piattaforme tecnologiche su cui i loro team sviluppano soluzioni; questi interlocutori sono i soggetti che meglio possono beneficiare delle caratteristiche del Perl. Ometteremo cenni sulla storia e le origini del Perl privilegiando invece lo scopo di enucleare in modo nitido e concreto le qualità di questa tecnologia.
Abbiamo definito tecnologia un linguaggio di programmazione open source, il Perl. Il termine tecnologia è usato intenzionalmente e a ragione in quanto, come avremo modo di vedere, l' uso del Perl non comporta solamente l' uso di una sintassi piuttosto che un' altra, quanto l' adozione di una costellazione di metodi e strumenti che sono efficaci e consistenti. Per essere precisi, il Perl è un linguaggio di scripting, ovvero e` membro di una famiglia di linguaggi di cui fanno parte Tcl, Python, Rexx, i vari linguaggi di programmazione della shell in ambito *nix e, più recentemente Ruby. La definizione linguaggio di scripting implica, quasi come riflesso condizionato, una distinzione e quasi un contrasto con i linguaggi di system programming quali C, C++, Java, Delphi, Fortran, eccetera. La distinzione tra questi due gruppi di linguaggi non è riconducibile a un singolo fattore, quale per esempio, come spesso viene affermato, la natura interpretata piuttosto che compilata del processo di generazione del codice. Tale differenza esiste ma, oltre a essere discutibile per quanto concerne la sua nitidezza in un' ottica tecnica, è certamente fuorviante. Si potrebbero elencare molte altre distinzioni, ma certamente quella che - pur non essendo la sola -ha maggiore potere risolutore nella separazione delle due classi di linguaggi è quella che denota la posizione assunta dal linguaggio nella scelta tra due obiettivi in sostanza mutuamente irriducibili: massimizzazione della efficienza nella esecuzione del codice da parte del calcolatore oppure massimizzazione della efficienza del programmatore nello sviluppo del codice. I linguaggi di scripting si pongono decisamente dalla parte di chi sviluppa codice implementando un insieme di caratteristiche che - per farla breve - liberano il programmatore dalla necessità di scrivere codice per la gestione delle risorse che il programma consuma assumendosene interamente l' onere relativo. Esempi non esaustivi di tale gestione includono la gestione della allocazione e della disallocazione della memoria, la gestione della garbage collection,la gestione automatica della conversione tra i tipi, la gestione degli errori, la inizializzazione e la chiusura del programma e così via. Si noti che tale gestione non solamente consuma tempo; non solamente significa generare codice soggetto come tale ad essere origine di errori particolarmente insidiosi; ma comporta l' investimento di un tempo dedicato a compiti che distolgono completamente dalla soluzione del problema.
Va subito detto, sia come inciso volto ad evitare equivoci, che tale distinzione non va intesa come un giudizio di merito: è del tutto evidente ai meno affetti dall' integralismo che contraddistingue le guerre di religione tra linguaggi che la scelta di un linguaggio di programmazione va effettuata pragmaticamente in funzione del concreto problema, del settore applicativo e di eventuali vincoli che il contesto impone. Vale però la pena di notare che, in contrasto al fatto che pochi gestirebbero con un linguaggio di scripting il movimento del braccio di un robot, di converso capita spesso di notare l' uso di strumenti di system programming in un contesto dove invece la scelta di un linguaggio di scripting si imporrebbe da se. Si può anzi dire che la capacità di schierare efficientemente soluzioni software in una pluralità di settori applicativi passa anche attraverso la padronanza e la armoniosa integrazione di un linguaggio di scripting con un linguaggio di system programming.
Torniamo a ripetere che la distinzione indicata non è la sola; è quella però probabilmente più importante. Ma vediamo in che modo, all’ interno dei linguaggi di scripting, il Perl occupi una posizione di estremo interesse e articoliamo tale analisi in funzione dei concreti vantaggi che il Perl conferisce se correttamente impiegato in svariati settori applicativi.

Software Integrated Circuits ››

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google