Newsgroup: it.comp.lang.perl
Titolo: [niubbi] Xchè Perl?

Molti mi hanno parlato di Perl come un ottimo linguaggio, indispensabile,
per ogni buon programmatore.
Ora prima di buttarmi a capofitto, nello studio, con precedente acquisto di
manuale, vorrei sapere che cosa ha in +, e perchè sembra che senza saperlo
sarebbe come se mi mancasse un braccio.
lavoricchio in C e sto studiando Java.

 sarebbe come se mi mancasse un braccio.
Il Perl è *ottimo* per moltissimi compiti. La sua potenza espressiva,
il fatto di poterlo utilizzare da linea di comando (perl -e "codice")
lo rendono praticamente insostituibile per il sysadmin.
Per i CGI è stato di fatto il linguaggio più utilizzato, e anche oggi
è molto utilizzato. Con le tecnologie quali mod_perl poi, non
teme confronti in quanto a prestazioni.
E' molto potente nella gestione delle stringhe (espressioni regolari e
funzioni built-in). Ha la gestione nativa della struttura dati hash.
Puoi fare programmi a linea di comando e GUI (ce ne sono almeno 4).
E' ESTREMAMANETE portabile tra i vari sistemi operativi. Ad esempio,
ho fatto una GUI abbastanza complessa in Perl/Tk, che SENZA cambiare
una linea di codice, va sia in Windows che in Linux.
C'è anche la possibilità di creare eseguibili (per Windows e per
molti dialtetti Unix), ma il tool è a pagamento (
www.perl2exe.com
)
Il suo motto è TMTOWTDI=There's More Than One Way To Do It=
c'è più di un modo per fare le cose.
Ovvero in Perl hai la LIBERTA' e la POSSIBILITA' di eseguire un
compito in molte maniere diverse, lasciando davvero al programmatore
la responsabilità di scrivere bene o male (come del resto fa il C).
Dunque se VUOI fai un programma OO, altrimenti ne fai uno
"sporco e cattivo" od uno offuscato etc etc... sta a te decidere.
La sintassi è C-like per cui per le cose meno perlished è di
fatto paragonabile al C.
Trovi una INFINITA' di moduli (in sostanza librerie) su CPAN
(
search.cpan.org
) con i quali hai vita facile in moltissimi
compiti (ad esempio nella programmazione di rete).
Da parte mia, trovo DIVERTENTE programmare in Perl :)
Lo uso per fare *tutto* quello che mi serve: GUI, CGI, data munging
(per il quale è impareggiabile).
Difetto del Perl: di nuovo TMTOWTDI. In sostanza, in Perl puoi 
rendere un programma in molte molte maniere. Per cui, ognuno può 
avere un suo stile particolare di programmazione. In particolare,
può capitare di trovare un programma scritto in maniera
molto perlished, ovvero da qualcuno che ha davvero capito l'essenza
del linguaggio e lo usa nella sua forma più "furba". In questo caso
allora, se chi legge non è al livello del programmatore esperto,
può trovare difficoltà a capire il codice.
Ma del resto, la LIBERTA' ha il suo prezzo ;)

 sarebbe come se mi mancasse un braccio.
Dire che Perl e` "indispensabile" mi sembra esagerato. Conosco molte
persone che hanno una vita soddisfacente anche senza saperne nulla.
Alcuni sono programmatori. Alcuni odiano Perl.
Non mi piace l'advocacy con la pistola puntata alla tempia. Quindi
non cerchero` di convincerti ad usare il Perl per ogni progetto che ti si
parera` davanti d'ora in poi. Piuttosto, cerchero` di ricordarmi perche`
ho cominciato ad usare Perl e perche` continuo ad usarlo. En passant,
potrebbe venirmi in mente anche qualche ragione per cui avrei fatto
bene a lasciarlo dov'era. In fondo ad ogni paragrafo ho messo dei
link: sono riferimenti per ulteriori approfondimenti. E sono stati
in qualche modo di ispirazione per me.
Programmare in Perl e` divertente.
Questa mi pare un'argomentazione assolutamente seria: fare il
programmatore puo` essere un lavoro e di solito si lavora come
minimo 8 ore al giorno. 8 ore al giorno vuol dire un terzo della propria
vita adulta. Se va bene, un altro terzo lo si passa a dormire. Quindi
divertirsi lavorando migliora la qualita`della vita e, azzardo, anche
la propria produttivita`.
 
http://perl.plover.com/
"There is more than a way to do it"
Il linguaggio Perl offre molti costrutti linguistici che si possono adattare
allo stesso problema da risolvere. Qualcuno basandosi su questo
asserto pensa che sia uno sport divertente trovare tutte le volte una
soluzione diversa allo stesso problema. Con il risultato di far impazzire
"il programmatore della sedia accanto" (figura da rispettare religiosamente,
visto che ognuno di noi e` o sara` un "programmatore della sedia accanto").
Piuttosto, vedo queste contaminazioni linguistiche come una maniera per
facilitare l'avvicinamento al Perl da parte di persone con un'esperienza
diversa. E quindi, ancora una volta, maggiore produttivita`.
 
http://prometheus.frii.com/~gnat/yapc/2001-idioms/
 
http://prometheus.frii.com/~gnat/yapc/2001-80-20/
In Perl si e` produttivi da subito.
Perl e` un linguaggio vasto, pieno di sfaccettature, cose da scoprire,
inganni
e trappole. Tuttavia, e` possibile fare cose utili quasi da subito. Per
certi versi
e`piu` simile ad un linguaggio naturale che ad uno artificiale. Quindi,
come in un linguaggio naturale, ci si puo` "far capire" anche se lo si
conosce
poco e male. Il problema e` che il Perl molto spesso e`
giudicato in base a questo sfarloccare sgrammaticato che si trova in giro.
E` come criticare il francese dopo che si e` sentito dire a Toto` "noio
vulevon
savuar...". E` possibile scrivere del codice veramente orribile in Perl,
cosi`
come in altri linguaggi. Ma il rischio di trovarsi di fronte a codice
illeggibile (e via discorrendo) scritto da altri, e` un po' piu` alto nel
caso del Perl.
 
http://www.perl.com/pub/a/2002/01/23/cgi.html
 
http://nms-cgi.sourceforge.net
Comunita`
Nella comunita` di sviluppatori Perl ho incontrato le persone piu`
intelligenti e brillanti. Entrare a farne parte e` entusiasmante. E`
possibile avere un ruolo attivo nella comunita`, specie in questo momento:
Parrot e` in fase di sviluppo, e Perl 6 e` in fase di design.
 
http://www.perl.org
 
http://www.perlmongers.it
 
http://use.perl.org
 
http://www.perlmonks.org
 
http://prometheus.frii.com/~gnat/yapc/2000-p5p.txt
 
http://www.parrotcode.org
CPAN
Si tratta di un vastissimo archivio di moduli utilizzabili liberamente nei
propri programmi. Essendo vasto ed aperto, c'e` anche diversa robaccia,
ma la maggior parte dei moduli e` ben documentata e mantenuta dai
propri autori. La selezione naturale e la comunicazione tra programmatori
(vedi alla voce Comunita`) fa il resto. Spesso la realizzazione di un
progetto
consiste semplicemente nell'installazione di un modulo da CPAN.
 
http://search.cpan.org
ciao
Stefano