“Allacciate le cinture di sicurezza“. E’ questo l’incipit della presentazione della beta 7 di Mozilla 4.0 pubblicata sul blog della società da J. Sullivan. Il rilascio della settimana beta di Firefox 4.0 ha subìto un forte ritardo in seguito alla scoperta, nelle scorse settimane, di numerosi bug di particolare rilevanza. Il team di sviluppo del browser opensource di Mozilla ha così deciso di evitare di correre rischi rilasciando un prodotto ancora troppo acerbo. I toni con i quali i tecnici di Mozilla hanno presentato la nuova release “di anteprima” non potevano non essere quindi trionfalistici: i principali bug sono stati risolti e la “beta 7” introduce tutta una serie di caratteristiche che faranno la parte del leone quando il browser verrà lanciato nella sua veste definitiva.
Le novità più importanti integrate in Firefox 4.0 beta 7 sono il motore JavaScript “JägerMonkey“, il miglioramento delle prestazioni per l’accelerazione hardware (soprattutto in Windows XP e Mac OS X) e il supporto di WebGL per il rendering della grafica 3D (non sarà più necessario installare alcun plugin).
JägerMonkey è probabilmente l’aggiunta più “invisibile” che però sancisce un netto passo in avanti, da parte di Mozilla, nella gestione e nell’escuzione di codice JavaScript. Di JägerMonkey si parla già dall’inizio dell’anno: il meccanismo si occupa di compilare interi metodi JavaScript sotto forma di codice macchina. Allo stato attuale, infatti, il codice JavaScript che non appare ottimizzabile mediante l’uso di TraceMonkey (il motore JavaScript che Mozilla ha fatto debuttare con il lancio di Firefox 3.5, nel mese di giugno 2009), viene passato allo “storico” interprete di Firefox (SpiderMonkey) il quale garantisce performance ormai mediocri.
TraceMonkey tenta di velocizzare l’esecuzione di codice JavaScript rilevando la presenza di cicli loop e convertendoli in assembler generico. Ci sono però situazioni in cui questo approccio non funziona: in tali casi Firefox chiama in causa il vecchio interprete SpiderMonkey, ormai superato (in questi frangenti il codice viene purtroppo eseguito con le prestazioni dei prodotti antecedenti alle versioni finali di Firefox 3.5, Safari 4, Google Chrome e così via).
Altri motori per la gestione di codice JavaScript compilano l’intero codice, e non solamente i cicli loop, ottenendo codice assembler. Il motore “Nitro” utilizzato da Apple Safari, ad esempio, sfrutta tale approccio ma – stando a quanto dichiarato dai responsabili di Mozilla – non può competere con la velocità di TraceMonkey quando quest’ultimo entra in gioco. Abbinando JaegerMonkey, TraceMonkey continuerà a convertire in assembler i loop ma quando ciò non risultasse possibile, il nuovo motore applicherà l’approccio usato da “Nitro” in Apple Safari.
I dati diffusi di Sullivan evidenziano performance nell’elaborazione di codice JavaScript che, nel caso di Firefox 4.0 beta 7, migliorano di circa 3 volte quelle di Firefox 3.6.12 (benchmark “Sunspider“). Nel benchmark “V8” i miglioramenti sarebbero ancora più netti (un’ottimizzazione prestazionale pari a circa 5 volte rispetto alla versione 3.6.12 del browser).
Oltre al supporto per l’accelerazione hardware (in Windows, XP compreso, viene utilizzata la tecnologia DirectX mentre su Mac OS X Firefiox 4.0 si affida ad OpenGL), ed all’introduzione della compatibilità WebGL, la beta 7 del prodotto di Mozilla diviene in grado di gestire correttamente le fonti di carattere OpenType ed i form HTML5.
Secondo la programmazione appena aggiornata, la beta 8 di Firefox 4.0 potrebbe essere rilasciata già domani 12 novembre con la Release Candidate attesa, a questo punto, per il mese di gennaio.