[Soci SLIP] Android e Java [Era: corsi base]

Lucio Crusca lucio a sulweb.org
Sab 12 Gen 2013 19:15:53 CET


In data sabato 12 gennaio 2013 14:11:22, loredana ha scritto:
> On 1/11/13, Lucio Crusca <lucio a sulweb.org> wrote:
> > Come attenuante però c'è da dire che tutti i dispositivi che hanno
> > Android 3.0
> > o 3.1 ad oggi sono aggiornabili alla versione 3.2, di cui Google ha
> > rilasciato
> > il codice sorgente (tipo il motorola xoom citato nell'articolo).
> 
> Questo sembra confermare che l'espediente di rilasciare 3.0, 3.1 solo
> agli sviluppatori sia servito a farsi fare il debug gratis.

Da quel che ho capito io (ma magari ho capito male) i sorgenti di 3.0 e 3.1 
non sono stati proprio rilasciati a nessuno, se non ai dipendenti di Google 
legati da NDA (quindi l'idea del debug gratis non mi sembra calzare). 

> Non è aver gli incubi pensare che chi usa quella licenza invece della
> gpl vuol tenersi le mani libere per fare quel che vuole, quando gli
> pare. 

Se per "chi usa" indendi i terzi che producono smartphone Android, (ovvero 
Samsung, LG, Sony, etc...), allora sì, Google ha usato la licenza Apache 
proprio per permettere ai terzi di modificare, aggiungere e togliere senza 
costringerli a rilasciare i propri sorgenti. Se avesse usato la GPL oggi 
Android non sarebbe sugli scaffali dei negozi ed avremmo solo Windows, IOS di 
Apple e BlackBerry, quindi una situazione peggiore di quella attuale, anche se 
quella attuale è lontana dall'essere perfetta.

> > Lo so, non basta, ma il messaggio che volevo far passare è che, allo
> > stesso modo in cui tu usi GMail in quanto meno peggio, chi vuole uno
> > smartphone dovrebbe orientarsi su Android sempre in quanto meno peggio.
> 
> Non è proprio la stessa cosa. L'email è indispensabile che sia in
> rete, lo smartphone un po' meno (io non ce l'ho, in rete o meno, e non
> mi manca). 

Non capisco. Cosa c'entra che lo smartphone può funzionare non connesso ad 
internet con il fatto che la scelta di Android sia analoga alla scelta di 
GMail in quanto meno peggio?

> Comunque, per gmail l'essenziale è che il proprio mail è
> sotto controllo locale, volendo. A gmail si può chiedere
> esclusivamente che faccia quel minimo che non può essere fatto
> localmente per definizione stessa di email. 

Non per girare il coltello nella piaga, ma non è così. Il controllo locale ce 
l'hai solo fin dove piace a Google. Lo dimostra il fatto che GMail non ti 
consegna le copie dei tuoi messaggi alla lista Arduino e tu non puoi farci 
nulla.

> Se poi gmail usa i
> contenuti per pubblicità, questo lo si può sfruttare a proprio
> vantaggio (dipende da cosa uno scrive :) A volte è un bene che tutti
> possano leggere. Anche questa è una proprietà che si può sfruttare a
> proprio vantaggio.

Sì certo. E la volpe non vuole l'uva perché è acerba... :)

> Io non ho mai trovato in giro un solo programma java che fosse
> portabile davvero, nell'ambito dell'applicazione per cui era stato
> sviluppato, senza voli pindarici da smartphone a banche. 

Questi

http://en.wikipedia.org/wiki/List_of_Apache_Software_Foundation_projects

sono quasi tutti scritti in Java (direi tutti ma non ho controllato uno ad 
uno) e sono tutti portabili. Sono tutte applicazioni complete e/o librerie per 
server (e per portabili intendo dire che funzionano indifferentemente su 
server Linux, Windows o Mac o qualsias altra roba abbia Java, a partire da una 
versione minima di Java in avanti).

Poi, a mente, per sistemi client, aggiungo per esempio:

http://netbeans.org/
http://www.eclipse.org/
http://sourceforge.net/projects/azureus/

e ce ne sarebbero molti altri, tutti portabili. Il punto non è fare un elenco 
esaustivo, ma dimostrarti che il software portabile in Java non solo è 
possibile, ma anche molto comune. Certamente è necessario voler fare un 
software portabile, in Java come in qualsiasi altro linguaggio, quindi 
immagino che i software Java in cui ti sei imbattuta tu non fossero stati 
scritti con l'intenzione di renderli portabili.

> Il problema
> non è il linguaggio, sono le estensioni al linguaggio (java o altro)
> che i programmatori che non sanno come si fa a scrivere codice
> portabile usano a piene mani, senza sapere neppure che lo fanno.

Appunto, siamo quindi d'accordo, il problema non è il linguaggio, ma l'uso che 
se ne fa (o il programmatore se preferisci). Quanto alle estensioni non 
portabili, certamente esisteranno da qualche parte, ma io non ne conosco (e 
programmo in Java da 12 anni).

> Java, poi, con librerie proprietarie a iosa 

Continuo a non capire di cosa parli. Mi dici quali sono tutte queste librerie 
proprietarie? Io faccio fatica a trovarne anche solo una, ma se la trovo sono 
pronto a scommettere che esiste l'alternativa libera di gran lunga migliore.

> (e android è solo peggio
> di altri, in questo senso), 

Su Android ci sono tantissime applicazioni proprietarie, ma anche qui di 
librerie proprietarie (Java) non ne vedo molte. Ce n'è qualcuna abbinata a 
dispositivi hardware, tipo mi ricordo di un lettore barcode bluetooth che per 
essere usato con tablet android necessitava di una libreria proprietaria, ma 
nulla di strano, perché lo stesso prodotto, per essere usato su altri sistemi, 
necessitava di altrettante librerie proprietarie, sempre fornite dal 
produttore. Per il resto non mi viene in mente alcuna libreria Java 
proprietaria su Android.

> non fa certo eccezione. Il lavoro migliore
> con java lo hanno fatto quelli dell'agenzia delle entrate, ma neppure
> quello basta. 

Il lavoro migliore? È una battuta spero...

> Per far girare un'applicazione java, è necessario
> installare la versione su cui  chi ha sviluppato il codice si è
> basato, 

Necessario solo per quelle porcherie dell'agenzia e di altre PPAA. O almeno i 
software Java che scrivo io (e tutto il resto del mondo che si preoccupa della 
portabilità) richiedono solo una versione MINIMA di Java, ma da lì in avanti 
qualsiasi altra versione più recente va bene.

> altrimenti semplicemente non funzionerà. Con sistemi
> proprietari e sistemi più o meno iberi in regime di aggiornamento
> folle, la probabilità che codice java giri a lungo su un sistema
> qualsiasi è praticamente nulla.

Stai avendo il solito incubo di qualche giorno fa.

> Non voglio aprire nessuna discussione, 

Significa che non vuoi che ti rispondo?

> ma se volete un incontro su
> questi importantissimi argomenti, io ci sono (non la sera). 

Con tutto il rispetto, non mi sembri la più indicata a parlare di queste cose 
(intendo Java e la sua portabilità). Se però decidi di parlarne assicurati di 
dirmi quando che vengo a darti una mano. Magari potremmo andare a "Servizio 
pubblico" e fare anche noi più del 30% di share (lascio al pubblico scegliere 
chi di noi due è Berlusconi e chi Santoro)...

> Scrivere
> programmi portabili senza neanche aver un'idea di cosa siano gli
> standard e pensare che basti usare java, o un linguaggio piuttosto che
> un altro, semplicemente non funziona.

Ecco, su questo sono d'accordo, ma, fortunatamente, non ho mai detto il 
contrario.

> Il sdk proprietario di google
> non fa eccezione. Tutt'altro! Punto.

Che c'entra con la portabilità di Java? L'sdk di Google è necessario solo per 
sviluppare per Android, la cui portabilità sappiamo già essere limitata 
naturalmente ad Android stesso (a causa dei voli pindarici). Per il resto 
l'sdk di Java è libero, tanto che è incluso anche in Debian main.




Maggiori informazioni sulla lista Soci