ott 09

Chi di voi ha letto la sezione di questo sito intitolata “Chi sono” avrà avuto modo di leggere il titolo della mia tesi di laurea (”Definizione ed Implementazione della Rappresentazione Interna delle Espressioni del Linguaggio PERLA”) e forse si sarà chiesto cosa sia mai questo “linguaggio PERLA”.

PERLA (PERvasive LAnguage) è un linguaggio completamente dichiarativo che permette all’utente di interrogare un sistema pervasivo in modo simile a come interrogherebbe una base di dati utilizzando SQL. Un sistema pervasivo è una grande rete eterogenea composta da diversi dispositivi, ognuno dei quali può utilizzare diverse tecnologie, come ad esempio reti di sensori wireless (WSN), sistemi RFID, GPS e molti altri tipi di sensori. 

Per linguaggio dichiarativo si intende un linguaggio con cui si stabilisce che cosa debba fare il programma, cioè che relazione intercorre fra input ed output, a differenza dei linguaggi imperativi, con i quali si stabilisce come un problema deve essere risolto, cioè come derivare un output da uno o più input. 

Lo scopo principale del linguaggio PERLA è quindi nascondere all’utente l’elevata complessità del sistema (dovuta all’eterogeneità ed al numero dei sensori con cui si andrà ad operare) e della programmazione di basso livello, fornendogli una interfaccia simile a quella di una base di dati, sicché possa recuperare i dati dal sistema in modo semplice e veloce. 

Il linguaggio è stato pensato per essere eseguito su un’architettura costituita da tre livelli: 

    1. livello di accesso fisico ai dispositivi 
    2. livello degli oggetti logici 
    3. livello applicativo 

All’interno dell’ultimo livello è presente il parser: esso è il componente che riceve le query sottoposte dall’utente in formato di stringhe, e ne verifica la correttezza sintattica. Obiettivo del parser è quello di tradurre ciascuna query in una struttura ad oggetti semanticamente equivalente, ma che risulti facilmente utilizzabile dal motore di esecuzione della query. 

PERLA, che è un progetto del Politecnico di Milano, è nato in seno al progetto ART DECO (Adaptive InfRasTructures for DECentralized Organizations). Quest’ultimo, che è finanziato dal Ministero dell’Università e della Ricerca, mira allo sviluppo di tecniche e strumenti per favorire la diffusione delle “networked enterprise” tra le piccole e medie imprese italiane.

Ad ora il progetto PERLA è ancora in fase di sviluppo, infatti benchè sia stata completata la stesura della grammatica alcune parti dell’esecutore delle query non sono ancora state completate, così come i driver di alcuni tipi di sensori. Tuttavia numerose sono le persone che vi stanno attivamente lavorando e sarà quindi  presto completato.

Il progetto è estremamente interessante (considerando anche il fatto che è in un settore all’avanguardi) e quindi continuerò a seguirlo anche ora che la mia parte di collaborazione è terminata… posterò qua sopra gli sviluppi futuri di cui verrò a conoscenza!

mar 25

La grande sfida giunge dunque al termine, eccomi infatti qua con i benchmark finali dove vengono valutate le prestazioni di alcuni dei più noti browser anche su Linux! La gara si svolge tra Firefox 2.0.0.12, Firefox 3 beta 4 ed Opera 9.26 (non ho considerato konqueror perché è crashato al primo bench… se qualcuno ha altri browser da proporre basta comunicarmelo che provvederò ad aggiornare il tutto).

La macchina su cui si è svolta la sfida è identica a quella della sfida su Windows… un PC con una CPU Intel Pentium 4 3,2 GHz e 512 kb di Cache, 1 GB di RAM DDR 1 e Slackware Linux 12.0 installata (kernel 2.6 di default).

Il primo test è, come al solito, il SunSpider benchmark i cui risultati sono (minore è il tempo maggiori sono le performance):

I risultati dell’Acid Test 3 sono (maggiore è la percentuale maggiore è l’aderenza agli standard):
I risultati del Benchmark - W3C DOM vs. innerHTML sono (minori sono i tempi maggiori sono le performance):
I risultati del rendering di scragz.org sono (minore è il tempo e maggiore è la performance):
Dai risultati ottenuti appare chiaro che il miglioramento tra la versione 2 e 3 di Firefox è davvero notevole… tanto da rendere la prossima versione del “panda rosso” non solo appetibile per l’estendibilità e l’aderenza agli standard, ma anche per le sue notevoli prestazioni! Opera sembra veloce, purtroppo però la sua aderenza agli standard è decisamente inferiore a quella di Firefox!
mar 25

Come avevo già preannunciato nel precedente post mi sono cimentato nei benchmark dei browser anche su Windows XP ed i risultati (ben illustrati da esaurienti grafici) li potete ammirare qua sotto! Ovviamente da notare che, a differenza che nei test su OS X, qua ci sarà anche Internet Explorer 7 (Internet Explorer 8 verrà confrontato con la versione 7 separatamente).

Ed eccomi allora qua con gli esiti dei miei test fatti utilizzando Safari 3.1, Firefox 2.0.0.12, Firefox 3 beta 4, Opera 9.26 ed Internet Explorer 7 (aggiornato all’ultima release) su una macchina con una CPU Intel Pentium 4 3,2 GHz e 512 kb di Cache, 1 GB di RAM DDR 1 e Windows XP SP2 (con tutti gli ultimi aggiornamenti installati).  

Il primo test è il SunSpider benchmark i cui risultati sono (minore è il tempo maggiori sono le performance):

I risultati dell’Acid Test 3 sono (maggiore è la percentuale maggiore è l’aderenza agli standard):
I risultati del Benchmark - W3C DOM vs. innerHTML sono (minori sono i tempi maggiori sono le performance):
Stesso benchmark ma senza i dati di Internet Explorer 7:
I risultati del rendering di scragz.org sono (minore è il tempo e maggiore è la performance):
A differenza del test effettuato su OS X su Windows nessun particolare browser spicca dal confronto. 
Firefox 3 sembrerebbe promettere egregiamente sia dal punto di vista di conformità agli standard sia dal punto di vista della velocità.

Opera 9.26 spicca per velocità ma sembra non eccellere in quanto aderenza agli standard (il suo risultato nell’Acid Test 3 lascia un po’ a desiderare).

Firefox 2 è senza infamia e senza lode.

Safari, benché spicchi per rapidità ed aderenza agli standard, è il più lento nel rendering di pagine enormi e comunque non sempre renderizza correttamente le pagine (trovo che Safari per Windows sia di qualità infinitamente inferiore rispetto alla versione per OS X… quasi due software diversi).

Internet Explorer 7 è invece scandaloso, il più lento tra i browser ed il meno aderente agli standard… il vero “fanalino di coda” di questo test!

Inizialmente, visto che stavo testando anche Firefox 3 beta 4, ritenevo doveroso inserire anche Internet Explorer 8 nel confronto generale… ma visti i numerosi errori di rendering ho deciso che è ancora troppo “giovane” e necessita di parecchio sviluppo prima di poter essere realmente confrontato con dei browser funzionanti! In ogni caso riporto qua sotto una mini-sfida IE 7 vs. IE 8 riguardo agli stessi benchmark fatti sopra.

Ripartiamo con SunSpider benchmark i cui risultati sono (minore è il tempo maggiori sono le performance):

I risultati dell’Acid Test 3 sono (maggiore è la percentuale maggiore è l’aderenza agli standard):
I risultati del Benchmark - W3C DOM vs. innerHTML sono (minori sono i tempi maggiori sono le performance):
I risultati del rendering di scragz.org sono (minore è il tempo e maggiore è la performance):
Sembrerebbe, da questi dati, che Internet Explorer 8 sia prestazionalmente superiore al proprio predecessore… ma comunque ancora incredibilmente più lento di qualsiasi altra alternativa disponibile sul mercato (per tacere poi del fatto che continua ad essere in assoluto il browser con la minore aderenza agli standard web)! 

E’ pur sempre vero che si tratta di una beta… ma se continuano su questa strada a Redmond non saranno in grado di fare nulla che valga anche solo la pena confrontare con il resto del “mondo dei browser”.

mar 24

Ultimamente nel web, grazie al recente rilascio di Safari 3.1 ed al prossimo di Firefox 3, si è sentito dibattere molto su quale fosse il browser migliore (per velocità ed aderenza agli standard)… dibattiti portati avanti a colpi di benchmark! 

Chi sono io per non fare i miei bravi test? In fin dei conti “lo fan tutti”! Quindi eccomi qua con gli esiti dei miei test fatti utilizzando Safari 3.1, Firefox 2.0.0.12, Firefox 3 beta 4 e Opera 9.26 su un iMac 24” Aluminium con CPU Intel C2D Extreme 2.8 Ghz e 2 GB di RAM e Mac OSX 10.5.2.  

Il primo test è il SunSpider benchmark i cui risultati sono (minore è il tempo maggiori sono le performance):

I risultati dell’Acid Test 3 sono (maggiore è la percentuale maggiore è l’aderenza agli standard):
I risultati del Benchmark - W3C DOM vs. innerHTML sono (minori sono i tempi maggiori sono le performance):
I risultati del rendering di scragz.org sono (minore è il tempo e maggiore è la performance):
Dai grafici risulta evidente che il miglior browser al momento disponibile dal punto della velocità e dell’aderenza agli standard per Mac OS X sia Safari 3.1 seguito a ruota da Firefox 3 (che però essendo ancora in beta ha la possibilità di migliorare ed eventualmente sorpassare safari). A sorpresa, a fondo classifica, troviamo invece Opera 9.26 che ha perso in tutti i test effettuati, a volte anche di parecchie lunghezze!

A questa sfida ne seguiranno un’altra su Linux ed un’altra su Windows XP… quindi restate “sintonizzati”!