Post by MikiVisto il grande entusiasmo che si legge da queste parti su android,
provo a smuovere le acque proponendo un confronto con maemo.
Molto volentieri. Precisando che comunque a me piace anche l'idea dietro
Maemo, oltre che Android.
Post by Mikihttp://buruonbrails.blogspot.com/2009/09/android-vs-maemo.html
Questo, pero`, e` un concentrato di luoghi comuni scritto da un Qt-
fanoby. :)
Le premesse che fa sono completamente sbagliate.
Non e` vero che su Android puoi scrivere solo codice Java. E` vero che
Dalvik lancia solo applicazioni Java (e grazie, e` una VM Java... ;) ).
Molti servizi di sistema sono scritti in C e vengono avviati al boot.
Molti giochi sono scritti in C/C++ e hanno solo un wrapper in Java che,
tramite JNI, richiama le funzioni del codice C.
Dalvik e` abbastanza lenta. E` ottimizzata per risparmiare RAM, quindi
non ha (ancora) JIT, mancano diverse ottimizzazioni ed esegue il garbage
collection abbastanza spesso. Ora che i dispositivi iniziano ad avere 512
MB di RAM molti stanno pensando di introdurre quelle caratteristiche che
la ottimizzeranno nelle prestazioni a discapito del consumo di memoria.
Non e` vero che puoi far girare bytecode Java dentro Dalvik. Devi
ricompilarlo dai sorgenti, perche` il bytecode e` diverso.
E` vero che lo sviluppo e` piu` semplice ma il porting piu` complesso su
Android, ma praticamente solo per un motivo: Debian ARM.
Essendoci i pacchetti gia` pronti, quasi sempre basta ricompilarlo per
vederli funzionare su Maemo, mentre Android ha un formato dei pacchetti
completamente diverso.
Ma, come dimostrano android-pdf e apv (su google code), che usano uno
libpoppler e l'altro libfreetype, libjpeg e libmupdf, si puo` benissimo
riciclare il codice Linux esistente, basta ricompilarlo e scrivere i
binding in JNI (e li` trovi un esempio di come fare, visto che sono open
source).
Il motivo per cui Google sconsiglia di farlo e` che Android gira su ARM,
ma e` previsto che su MIPS e su x86, quindi preparando pacchetti con
librerie compilate per ARM, non saranno compatibili con le altre
architetture. Ma essendo consapevoli di questi, si puo` fare quel che si
vuole.
E da sviluppatore, ti posso assicurare che sviluppare in Java per Android
e` molto piu` semplice che farlo per Gtk e Qt. L'SDK e` fatto bene, offre
un sacco di funzionalita` che semplificano la vita. Il punto dolente e`
la documentazione: e` un ottimo reference se sai cosa cercare e ti serve
solo ricordarti l'ordine dei parametri, ma per il resto serve un libro o
un manuale.
E compili premendo un tasto su Eclipse. Fa tutto lui, compreso lanciare
l'emulatore con la tua applicazione e collegarlo al debugger.
Su Maemo (non ho provato il 5 ma non penso sia cambiato molto) compilare
un software e` una pena. Molto peggio che farlo per Linux. Ti devi
scrivere gli script di compilazione, prepararti il cross compiler,
compilare il sistema base per soddisfare le dipendenze, arrangiarti a
lanciare il debugger e l'emulatore.
E ora passiamo a Maemo. :)
Dire che le Gtk sono arcaiche e le Qt il futuro significa non aver capito
niente di programmazione GUI.
Lui vive nella speranza che un giorno (che e` passato da mesi) le Qt
siano disponibili su Maemo e porteranno grande gioia e felicita` agli
sviluppatori perche` sono fatte apposta per i dispositivi mobile, mentre
le Gtk sono solo per i vecchi desktop e non vanno bene su Maemo.
Credo non abbia mai usato nessuna delle due, visto che fanno esattamente
le stesse cose. Solo che Qt tende ad accentrare tutto (compreso l'accesso
ai database) in un'unica libreria (che recentemente e` stata spezzata in
tante librerie, ma viene comunque distribuita in un unico pacchetto),
mentre Gtk delega alcune funzioni (come appunto i database) a librerie
esterne.
Tra l'altro, "grazie" al fatto che Ubuntu usa Gtk/Gnome e che KDE4 e`
diventato un ambiente molto piu` integrato di KDE3, ci sono sempre piu`
applicazioni "standalone" in Gtk che non hanno bisogno dell'ambiente
Gnome, e sempre meno in Qt che non hanno bisogno di KDE, quindi andra` a
farsi benedire sia la facilita` di porting di applicazioni esistenti
(dovranno, se si puo`, sradicare le dipendenze da KDE) sia lo sviluppo
multipiattaforma, che comunque e` quasi impossibile a priori.
Soprattutto sara` impossibile sviluppare la stessa applicazione senza
modifiche per Symbian e per Maemo. Se fosse possibile significherebbe che
sono la stessa cosa, e quindi Nokia eliminerebbe uno dei due (che poi
sarebbe la cosa giusta da fare, perche` crea confusione negli
sviluppatori...)
Purtroppo, mentre quelli di Nokia sembrano aver capito che la gente vuole
usare le dita e ha fatto Maemo5, lui sembra ancora legato al pennino e al
porting di applicazioni desktop su mobile.
Anche a me piace il fatto di avere AbiWord disponibile sul cellulare,
anche perche` non ho ancora niente di simile su Android (ma ci sono
diversi progetti in sviluppo, oltre a una suite a pagamento), ma mi rendo
anche conto che le modifiche alla GUI sono talmente tante che
probabilmente si fa prima a prendere la libabiword, portarla su Android
coi bindings, e scriverci la GUI in Java. Tanto la GUI devi riscriverla
comunque. :)
Io spero che qualche altro produttore adotti Maemo5, in modo che si
diffonda il piu` possibile, e che semplifichino molto l'ambiente di
sviluppo, perche` e` quello che ha portato Android a 20.000 applicazioni
in un anno.
Post by Mikihttp://www.maemoit.org/2009/11/maemo-offre-piu-liberta-rispetto-ad-
android/comment-page-1/
Questo e` piu` bilanciato e vero, ma parla di differenze ideologiche, non
tecniche.
E` vero, Maemo offre molte piu` liberta` (ma anche lui ha i suoi bei
pezzi closed source), ma il sistema di protezione di Android (ogni
sviluppatore uno uid, e gli utenti avanzati possono rootare il telefono)
e` piu` adatto alle masse. In ogni caso entrambi sono lontani da
"l'utente non deve poter fare nulla tranne quello che vogliamo noi" di
Apple, ma in Maemo un'applicazione fatta male puo` sputtanare tutte le
altre, se non il sistema, mentre in Android no (o comunque e` molto piu`
limitata).
Finche` tutto l'ambiente e` open source come in Linux, l'approccio di
Maemo e` migliore. Quando inizi ad avere piu` del 10% di software closed,
diventa pericoloso.
La mia speranza e` che Maemo "sfondi" rimanendo in gran parte open
source, ma cosi` facendo rischi di perdere l'appeal per alcuni produttori
di software.
Post by Mikihttp://talk.maemo.org/showthread.php?p=565247#post565247
http://phandroid.com/2008/11/04/androidboy-brings-gameboy-honest-to-
goodness-gaming-to-g1/
http://phandroid.com/2009/05/21/gp2x-android-game-emulator-looks-amazing/
Notare le date. ;)
E, per finire:
http://www.engadget.com/2010/03/12/odroid-handheld-game-console-due-early-
march-sportin-android-2/
Post by MikiAndroid invece ha una struttura del tutto differenziata rispetto alle
classiche distribuzioni linux e il porting di programmi come questo
risulta molto più difficile (sicuramente per un singolo sviluppatore).
Ci sono forti pressioni da parte della comunita` di sviluppatori verso
Google per migliorare l'aspetto ludico di Android. Il primo risultato e`
stato il lancio in fretta e furia di un aggiornamento ad Android 2.0 (la
versione 2.1, uscita dopo 4 mesi dalla 2.0, e dopo 2 mesi dalla 2.0.1)
per l'integrazione di OpenGL ES 2.0. E stanno lavorando duramente al JIT
su Dalvik e a rivedere tutto quello che riguarda le prestazioni. Secondo
me uscita` un Android 2.2 (o 3.0, nome in codice FroYo) prima della fine
dell'anno per contrastare l'iPhone che dovrebbe uscire quest'estate, e
credo che il punto centrale sara` proprio il supporto per i giochi,
perche` e` l'unica cosa di cui gli sviluppatori sono insoddisfatti, ad
oggi (ad eccezione di alcuni bug).
Ho cercato di condensare tutto quello che avevo da dire, altrimenti avrei
scritto un libro sull'argomento, spero sia comprensibile. :)
Come dice giustamente l'autore del primo link che hai riportato: in ogni
caso, Maemo o Android (o Palm), vince comunque Linux. :P
Bye.