Successivo

News

Perl 6 porta il computer più vicino al linguaggio naturale

Michele Costabile | 18 Febbraio 2008

Perl è un linguaggio che ha contribuito parecchio alla nascita della Internet di oggi, essendo il motore agli script che […]

Perl è un linguaggio che ha contribuito parecchio alla nascita della Internet di oggi, essendo il motore agli script che hanno animato il web degli inizi e della prima maturazione.
Il linguaggio, però ha perso appeal con gli sviluppatori. Il mondo enterprise ha abbracciato Java, i progetti open source hanno preferito la semplicità  di Php, gli innovatori hanno puntato molto su Ruby.
Perl è anche rimasto fermo a lungo: l’annuncio della release 5.8.0 è del 2002, la 5.8.4 è del 2004, mentre la più recente 5.8.8 è del 2006.

Gli affezionati di Perl non sono rimasti però con le mani in mano e stanno silenziosamente lavorando alla nuova release del linguaggio, la versione 6 che dovrebbe chiudere il lunghissimo regno di Perl 5.
I tempi non sono certo stretti, anzi il gruppo di sviluppo ha fatto capire chiaramente che il progetto sarà  finito quando sarà  finito.
Perl 6 sarà  certamente stravagante almeno quanto Perl 5 e conserverà  la lussureggiante sintassi all’insegna del “c’è più di un modo di farlo”.
Una caratteristica interessante del linguaggio saranno le Junction, un modo interessante di tradurre in termini di computazione gli insiemi.

Ecco qualche esempio:


any(1, 2, 3) # 1, 2 o 3
(1|2|3) # 1, 2 o 3
all((@vals) # tutti gli elementi di vals
$x & $y # all($x, $y)

Fra le junction ci possono essere operazioni aritmetiche

(1|2|3) + 4 # 5|6|7
(1|2) + (3&4) # (4|5) & (5|6)

Anche gli operatori del linguaggio sanno come sviluppare le junction.
Per mostrare come questi costrutti possono rendersi utili nella programmazione quotidiana ecco un esempio:

if all(@nuovi) > $all(@vecchi) {
say "tutti i nuovi valori superano i vecchi"
}

Un modo molto semplice di esprimere nel linguaggio del computer un costrutto comune del linguaggio umano.
Le innovazioni hanno la tendenza a muoversi, quindi stiamo a vedere: questo costrutto potrebbe estendersi anche ad altri linguaggi.