Zėŋōfōbìå

1 dicembre 2009

Perl is a four letter word. Or six.

Filed under: architettura, Linguaggi, Perl — Tag:, — Zeno @ 19:27

Sto chiaccherando su facebook con Francesco Oha sul Perl 6, versione che rivoluziona il linguaggio e, visto l’interesse che ho per l’argomento ho pensato di spostare sul Blog la conversazione, per coinvolgere chiunque sia interessato. (Rodi, parlo con te. ;-)

Io sono praticamente fermo al Perl 4, che è stato il mio primo linguaggio dinamico. Ne ho abusato, come ogni pessimo programmatore. Mi sono accorto che nel frattempo il Perl si è evoluto enormemente, anche grazie alla splendida comunità che si è consolidata. Ho letto il libro introduttivo di Stefano Rodighiero, e ho riassaporato il gusto del dinamismo portato alle estreme conseguenze.

Da diversi anni la comunità Perl, una delle più affascinanti in tutto il panorama hacker mondiale, sta lavorando alla versione 6, che si distingue dalla versione 5 per un numero impressionante di differenze. Non credo di dire un eresia nel sostenere che la versione 6 sia un linguaggio nuovo ispirato alle versioni precedenti.

Francesco, solleticando la mia attenzione con la frase “[…]il sorgente puo’ modificare in linea la grammatica del compilatore, rendendo dinamico non solo l’eseguito ma anche il compilante.“,  mi propone di leggere un testo introduttivo: http://perlgeek.de/en/article/5-to-6 .

La mia considerazione conseguente alla lettura è stata:

Sto guardando, stavo leggendo, tutto bene, le stringhe, gli array i tipi, sì… I TIPI? AH! finalmente!

Bello che la trasformazione di Schwartz viene fatta dal compilatore, è un’idea geniale, ma l’implementazione non spetta al programmatore. Non riesco a capire però perché non poteva essere fatta dal compilatore già dal perl 5. Qualcuno me lo spiega?

Però, decisamente più bello del 5! Le prestazioni poi saranno eccezionali, paragonabili al C, immagino…

La sintassi è ancora troppo criptica, però. Ti faccio un esempio: i Context e i twigils, il cross meta operator (come fai a vederlo? non si poteva usare lo zip di haskell?)

Uè, le liste lazy, bene! Le adoro.
L’overload degli operatori…
Che spettacolo le regexpes, si fanno i parser al volo!!!
Il reduction meta operator non l’avevo ancora visto, modo strano per fare folding.

Molto paradigma funzionale, ma rielaborato. Le funzioni diventano operatori. questo fa perdere un po’ di espressività, temo.

Francesco Oha mi fa notare che:

[…] trovo piu’ spiacevoli ancora i puntatori C e gli unari affini.

per come la vedo io, per ora, il perl6 e’ ancora un calderone… ci vorra’ ancora molto prima che esca quello che serve, ma gia’ solo per le RegExp e’ sensazionale (e il compilatore e’ fatto con quelle regexp, quindi puoi overloadare il compilatore, ed essendo dinamico puoi capire l’esoterismo che si puo’ ottenere)

Che ne dite? Proseguiamo con il discorso?

24 luglio 2009

L’apocalisse è vicina!

Filed under: informatica — Tag: — Zeno @ 9:25

Ho dovuto controllare che non fosse il primo aprile, ho dovuto rileggere due volte.
Microsoft contribuisce al codice di Linux importando i driver per Hyper-V: i Linux Integration Components.

Tratto da dal blog di Hank Janssen dell’Open Source Community di Microsoft:

Microsoft developed the Linux device drivers to enhance the performance of Linux when virtualized on Windows Server 2008 Hyper-V. My team and I were responsible for testing and validating the driver components that were contributed for this first release.

This code is designed so that Linux can run in an “enlightened mode” on top of Hyper-V (enlightened mode is roughly the Hyper-V equivalent of “paravirtualized mode” for the Xen hypervisor). Without this driver code, Linux can run on top of Windows, but without the same high performance levels. It is this device driver code that we are releasing today, directly to the Linux Kernel.

We’re not talking a few hundred lines of code here; we’re talking about roughly 20,000 lines of code.

Sempre di Janssen c’è una spiegazione tecnica di cosa siano i Linux Integration Component.

10 luglio 2009

Dove il Perl incontra l’assoluto

Filed under: informatica — Tag:, , — Zeno @ 16:43

Stefano Rodighiero, autore di un bel libro introduttivo sul Perl, mi ha consigliato di guardare un webcast. L’autore è Damian Conways, un esponente di spicco nella comunità Perl. Il Titolo è abbastanza evocativo:
Temporally Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces…Made Easy.

E’ un raro esempio di lucido esoterismo informatico, decisamente affascinante.

Si può leggere, nelle note di presentazione, dopo una prima parte molto vicina alle questioni specificatamente Perl, l’ipotesi di esistenza di quelle che vengono chiamate “variabili positroniche”.

Una “Variabile positronica” è una variabile il cui verso della direzione del tempo è opposto di quello delle variabili “elettroniche” che normalmente siamo abituati ad usare.
In pratica l’ipotesi è che questa variabile vada indietro nel tempo, quindi, va da sé, può essere inizializzata “dopo” che è stata usata…

In pseudo codice:

pos_variabile $posval
print $posval;
$posval=read_value_from_stdin();

Impossibile? Direi di no, visto che Damian Conways ne ha scritto un’implementazione per Perl.

Davvero fenomenale! :-)

12 maggio 2009

Quale linguaggio rende i programmatori felici?

Filed under: informatica — Tag: — Zeno @ 14:12

E’ il Perl, con il 60% degli utenti soddisfatti.
Almeno stando all’articolo di DoloresLab che tramite un’analisi dei commenti ai linguaggi estratti da twitter riesce a estrarre delle statistiche.

Se queste siano significative non saprei dirlo: in effetti è uno spoglio democratico, niente viene detto sulla capacità di discernere di chi posta il messaggio.

Parlare bene o male di un linguaggio è soprattutto un atto sociale, più che tecnico. Forse è della comunità dei linguaggi che si parla.
Se così fosse non avrei nessuna difficoltà a credere che le comunità del Perl e di Haskell siano più accoglienti di quelle del C#.

E’ opportuno comparare questi risultati con quelli di LangPop e con quelli di Tiobe, se non altro per vedere che è difficile trarre delle conclusioni definitive.

Blog su WordPress.com.