Parlando di Opera qualche tempo fa sostenevo che non sarebbe mai esistita una versione di Firefox sui terminali Android essendo sviluppato in C++ e non appunto in Java linguaggio alla base delle applicazioni per i nostri terminali preferiti. Tuttavia Google non distribuisce solo le SDK per sviluppare in Java ma dispone anche di un pacchetto chiamato NDK (Native Development Kit) che permette di sviluppare in C/C++ bypassando di fatto interamente la Virtual Machine di Mountain View (con gli ovvi svantaggi che ne conseguono). Lo scopo di queste librerie era quello di permettere la creazione di componenti modulari ad alte performance come software di decodifica audio/video di crittografia ed altro, non era probabilmente pensata per creare applicazioni complete, almeno, non fino ad oggi.
Intervistato da GigaOm il CEO di Mozilla John Lilly ha confermato oggi, tra le altre cose, che sono cominciati i lavori per il porting di Firefox (o “Fennec” la versione mobile) per il nostro Android proprio usando le NDK. Lilly sostiene che fino ad ora la Mozilla Foudation non si era più di tanto preoccupata dei dispositivi mobili perchè ritenevano giusto attendere che l’hardware degli smartphone fosse all’altezza di un esperienza di browsing analoga al PC, quindi con SVG, Flash, Ajax ecc… Questo momento a quanto pare è arrivato e quindi vedremo prima o poi il software dii Mozilla anche sui nostri device, la cosa molto interessante è che supporterà, come la versioine desktop, le extensions di fatto creando una piattaforma all’interno della piattaforma, vedremo…
Fonte: GigaOm

Subscribe
> NDK permette di sviluppare in C/C++ bypassando di fatto interamente la Virtual Machine di Mountain View (con gli ovvi svantaggi che ne conseguono).
Svantaggi o VANTAGGI?
No intendevo proprio “svantaggi”, sviluppare in Java è molto più semplice e garantisce (o quasi) la portabilità del codice su tutti i dispositivi, usando le NDK invece si rischiano enormi problemi di portabilità (visto che il codice è legato all’architettura della CPU e altro) oltre che grosse complicazioni proprio perchè non si ha l’astrazione che Java regala (per esempio un applicazione NDK che gira sul netbook Acer non può girare senza essere ricompilata su un Magic essendo l’Acer Intel e il Magic ARM, mentre un app Java si ). Ovvio che le performance sono enormemente superiori, però bypassare la Virtual Machine generalmente lo vedo come un “ultima risorsa”, il porting di un browser su Android potrebbe essere molto complesso e forse non funzionare su tutti i terminali. Speriamo di no!
Secondo me un browser dev’esser compilato, non interpretato da uno stack notoriamente pesante. Opinione mia, ovvio.
L’ideale sarebbe avere un motore di rendering DOM/HTML/Javascript in NDK creato da Google e usabile tramite SDK in modo da poi svilupparci sopra l’interfaccia grafica che più ci aggrada usando Java (in parte è già cosi, Dolphin ad esempio usa il motore di rendering del browser interno) però effettivamente non avrebbe tutte le potenzialità del nostro amato Firefox (molte extensions interagiscono con il motore di rendering).
In ogni caso sono assolutamente daccordo con te e ho grandi aspettative per questo progetto, quello che volevo sottolineare è che non sarà facile come farne uno con le SDK ma i ragazzi di Mozilla ci sanno fare parecchio. Speriamo esca presto (aver visto MineField sull’Acer mi fa ben sperare).