Perl e la Sua Comunità

Il più grande successo di Perl 5 è l'enorme quantità di librerie riusabili che sono state sviluppate per arricchirlo. Mentre di Perl 4 esistevano molte versioni speciali, ad esempio per connettersi a database come Oracle e Sybase, Perl 5 mette a disposizione un vero e proprio meccanismo per le estensioni. Con esso, Larry ha voluto permettere alle persone di creare e manutenere le proprie estensioni senza che questo significasse frammentare Perl in centinaia di dialetti incompatibili.

La realizzazione di questo meccanismo è stata quasi importante quanto la crescita di una comunità intorno al Perl 5. Le persone scrivono librerie. Le persone utilizzano il lavoro di altre persone per svolgere meglio il proprio. Le persone formano una comunità di cui vale la pena fare parte, e che vale la pena preservare ed espandere.

La comunità Perl è solida ed in ottima salute. Accoglie nuovi partecipanti a tutti i livelli, dai neofiti a chi può contribuire allo sviluppo del linguaggio stesso. Approfittate della conoscenza e dell'esperienza di tantissimi altri programmatori Perl per migliorare voi stessi come programmatori.

CPAN

Perl 5 è già di per se stesso un linguaggio pragmatico, ma la sua comunità, ancora più pragmatica, lo ha notevolmente esteso, rendendo poi disponibile a tutti i risultati di questo lavoro. Se avete un problema, è probabile che qualcuno abbia già scritto—e condiviso—del codice Perl che lo risolve.

La programmazione in Perl Moderno fa un uso estensivo di CPAN (http://www.cpan.org/). La Comprehensive Perl Archive Network è un sistema di uploading e mirroring di codice Perl redistribuibile e riusabile. È certamente uno dei più grandi archivi di librerie di codice del mondo, se non il più grande. CPAN offre librerie per qualunque cosa: dall'accesso ai database agli strumenti di profiling, dai protocolli per quasi ogni apparecchiatura di rete che sia mai stata prodotta alle librerie per la grafica e il suono, ai wrapper Perl di librerie esterne disponibili per il vostro sistema.

Perl Moderno senza CPAN è solo un linguaggio. Perl Moderno con CPAN è un linguaggio incredibile.

CPAN contiene distribuzioni, ovvero collezioni di codice Perl riusabile. Una distribuzione può contenere una o più librerie autosufficienti di codice Perl dette moduli. Ogni distribuzione ha un proprio namespace ed è corredata da metadati.

CPAN è grande, molto grande

Centinaia di collaboratori registrati e migliaia di moduli indicizzati in centinaia di distribuzioni vengono aggiunti a CPAN ogni mese, senza considerare gli aggiornamenti. Alla fine di Novembre 2011, il sito search.cpan.org riportava 9359 collaboratori, 101656 moduli e 23808 distribuzioni (con incrementi dell'11.5%, 19.4% e 14.3% rispetto agli stessi dati nell'edizione precedente di questo libro).

Il sistema CPAN di per sé è soltanto un servizio di mirroring. Gli autori fanno l'upload delle distribuzioni e CPAN le invia ai mirror, da cui gli utenti e i programmi client possono scaricarli e configurarli, farne il build, testarli e installarli. Il successo di questo sistema è dovuto sia alla sua semplicità che al contributo delle migliaia di volontari che hanno costruito nuovi strumenti su queste basi. In particolare, si sono sempre più affermati nella comunità certi attributi e caratteristiche standard che una distribuzione CPAN deve avere. Tra questi:

Altri servizi di CPAN sono quelli di testing automatico e generazione dei relativi report, che aiutano a verificare la qualità del pacchetto contenente la distribuzione e il suo funzionamento su diverse piattaforme e con diverse versioni di Perl. Ogni distribuzione CPAN ha inoltre una sua coda di ticket http://rt.cpan.org/ per segnalare bug e collaborare con gli autori alla loro soluzione. I siti CPAN forniscono inoltre link alle versioni precedenti delle distribuzioni, valutazioni dei moduli scritte dagli utenti, note alla documentazione e altro ancora. Tutto questo è disponibile partendo da http://search.cpan.org/.

Le installazioni di Perl Moderno contengono due client per connettersi a CPAN e cercare, scaricare, fare il build, testare e installare le distribuzioni: CPAN.pm e CPANPLUS. I due client sono essenzialmente equivalenti per effettuare installazioni di base. In questo libro vi consigliamo l'uso di CPAN.pm semplicemente per la sua onnipresenza. Se usate una versione recente (al momento di questa stesura, l'ultima release stabile è la 1.9800), l'installazione di moduli è ragionevolmente facile. Lanciate il client con:

    $ cpan

Per installare una distribuzione da dentro al client, scrivete:

    $ cpan
    cpan[1]> install Modern::Perl

... oppure, per installarla direttamente da linea di comando, scrivete:

    $ cpan Modern::Perl

Il tutorial scritto da Eric Wilhelm sulla configurazione di CPAN.pm http://learnperl.scratchcomputing.com/tutorials/configuration/ contiene un'eccellente sezione sulla risoluzione dei problemi.

Strumenti per la Gestione di CPAN

Se il vostro sistema operativo possiede una sua installazione di Perl 5, questa potrebbe essere obsoleta o dipendere da specifiche versioni di alcune distribuzioni CPAN. Gli sviluppatori Perl seri spesso creano delle barriere virtuali tra il Perl di sistema e le loro installazioni Perl di sviluppo. Ci sono diversi progetti che possono aiutare a far ciò.

App::cpanminus è un client CPAN relativamente recente, i cui obiettivi principali sono la velocità, la semplicità e l'assenza di costi di configurazione. Installatelo con cpan App::cpanminus, oppure con:

    $ curl -LO http://xrl.us/cpanm
    $ chmod +x cpanm

App::perlbrew è un sistema che vi consente di installare e gestire diverse versioni e configurazioni di Perl, e di passare da una all'altra. Si installa semplicemente scrivendo:

    $ curl -LO http://xrl.us/perlbrew
    $ chmod +x perlbrew
    $ ./perlbrew install
    $ perldoc App::perlbrew

La distribuzione CPAN local::lib vi permette di installare e gestire distribuzioni in una vostra directory personale, anziché nell'intero sistema. È un modo molto efficace per poter lavorare con le vostre distribuzioni CPAN senza interferire con il lavoro degli altri utenti. L'installazione è un po' più complicata di quella delle due distribuzioni descritte sopra, ma App::local::lib::helper può renderla più semplice. Guardate http://search.cpan.org/perldoc?local::lib e http://search.cpan.org/perldoc?App::local::lib::helper per maggiori dettagli.

Tutti e tre i progetti suppongono che lavoriate in ambiente Unix-like (come una distribuzione GNU/Linux, ma anche Mac OS X). Se siete utenti Windows, scaricatevi il pacchetto Padre (http://padre.perlide.org/download.html).

Siti della Comunità

La homepage Perl all'URL http://www.perl.org/ contiene link alla documentazione e al codice sorgente di Perl, oltre che a tutorial, mailing list e a molti progetti importanti della comunità. Se siete nuovi utenti del Perl, la mailing list Perl beginners è un luogo accogliente dove potete porre domande tipiche per un principiante e ottenere risposte utili ed accurate. Guardate http://learn.perl.org/faq/beginners.html.

La homepage per lo sviluppo di Perl è http://dev.perl.org/, e contiene link alle risorse utili per lo sviluppo del core di Perl 5 e Perl 6 Vedete anche http://www.perl6.org/.

Perl.com pubblica articoli e tutorial sul Perl e la sua cultura. I suoi archivi contengono materiale la cui datazione va indietro fino al ventesimo secolo. Vedete http://www.perl.com/.

Il sito centrale di CPAN (CPAN) è http://www.cpan.org/, anche se gli utenti esperti usano più frequentemente http://search.cpan.org/. Questo centro di distribuzione di codice Perl libero e riusabile è una componente essenziale della comunità Perl. MetaCPAN (https://metacpan.org/) è un'interfaccia alternativa a CPAN apparsa di recente.

Il sito PerlMonks, che si trova all'URL http://perlmonks.org/, è dedicato alle discussioni sulla programmazione in Perl. Essendo attivo da undici anni, esso costituisce uno dei siti più venerandi di domande e risposte su un linguaggio di programmazione.

Diversi siti della comunità riportano e commentano le novità. http://blogs.perl.org/ è una piattaforma gratuita di blog aperta a tutti i membri della comunità Perl.

Altri siti raccolgono le elucubrazioni dei programmatori Perl; tra questi: http://perlsphere.net/, http://planet.perl.org/ e http://ironman.enlightenedperl.org/. Quest'ultimo è parte di una iniziativa della Enlightened Perl Organization (http://enlightenedperl.org/) per incrementare il numero e migliorare la qualità delle pubblicazioni sul Web relative al Perl.

Perl Buzz (http://perlbuzz.com/) raccoglie e ripubblica periodicamente alcune delle novità più utili e interessanti. Perl Weekly (http://perlweekly.com/) offre una panoramica settimanale delle notizie dal mondo Perl.

Perl.it (http://perl.it/) si propone invece come "il punto di riferimento del linguaggio Perl in Italia". L'Associazione di Promozione Sociale Perl.it, che lo gestisce, ha finanziato la traduzione in italiano del presente libro ed organizza annualmente l'Italian Perl Workshop (http://perl.it/workshop/), conferenza nazionale sul linguaggio Perl e tecnologie correlate. Se volete leggere materiale in italiano ed entrare in contatto con altri programmatori Perl in Italia, questo è decisamente il sito che fa per voi.

Siti sullo Sviluppo

Best Practical Solutions (http://bestpractical.com/) gestisce una installazione del loro popolare sistema di tracking, RT, sia per gli autori CPAN che per lo sviluppo del core di Perl 5 e di Perl 6. Ciascuna distribuzione CPAN ha la propria coda RT, raggiungibile da search.cpan.org e accessibile su http://rt.cpan.org/. Perl 5 e Perl 6 hanno code RT separate su http://rt.perl.org/.

La mailing list dei Perl 5 Porters (p5p) è il punto di riferimento degli sviluppatori di Perl 5. Vedete http://lists.cpan.org/showlist.cgi?name=perl5-porters.

La Perl Foundation (http://www.perlfoundation.org/) ospita un wiki per tutto ciò che riguarda Perl 5. Vedete http://www.perlfoundation.org/perl5.

I progetti di molti programmatori Perl sono ospitati su Github (http://github.com/) ... inclusi i sorgenti di questo libro all'URL http://github.com/chromatic/modern_perl_book/. Guardate in special modo Gitpan (http://github.com/gitpan/), che ospita i repository Git che tangono traccia della storia completa di ogni distribuzione su CPAN.

Un mirror Git locale

GitPAN è aggiornato poco frequentemente. Come alternativa, considerate l'uso del formidabile modulo Git::CPAN::Patch di Yanick Champoux.

Eventi

La comunità Perl tiene innumerevoli conferenze, workshop, seminari e incontri. In particolare, YAPC—Yet Another Perl Conference—è un modello di conferenze locali e a basso costo, adottato con successo in diversi continenti. Vedete http://yapc.org/.

Sul wiki della Perl Foundation potete trovare l'elenco degli altri eventi, all'URL http://www.perlfoundation.org/perl5/index.cgi?perl_events.

Esiste inoltre il già menzionato Italian Perl Workshop, sul quale trovate informazioni all'URL http://perl.it/workshop/.

Centinaia di gruppi Perl Mongers locali si incontrano frequentemente per discussioni tecniche e per socializzare. Vedete http://www.pm.org/.

IRC

Quando i Perl monger non riescono ad incontrarsi di persona, molti di loro collaborano e discutono online attraverso il sistema testuale di chat IRC. Molti dei progetti Perl più seguiti e utilizzati hanno il proprio canale IRC; ad esempio, #moose e #catalyst.

Il server principale per la comunità Perl è irc://irc.perl.org/. Prendete nota dei canali #perl-help, per assistenza generica sulla programmazione Perl, e #perl-qa, dedicato al testing e ad altre problematiche legate alla qualità del codice. Sappiate che invece il canale #perl ha uno scopo molto generale, ed è usato dai suoi partecipanti per discutere di qualunque argomento gli interessi in quel momento ... e, come tale, non è principalmente una sorgente di aiuto..

La comunità italiana ha anche un proprio canale IRC, dove ovviamente potete scrivere (e ottenere risposte!) in italiano. Il server al quale connettersi è irc://irc.freenode.net, e il nome del canale #perl.it.