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

loredana llcfree a gmail.com
Sab 12 Gen 2013 14:11:22 CET


On 1/11/13, Lucio Crusca <lucio a sulweb.org> wrote:
> In data giovedì 10 gennaio 2013 08:24:19, loredana ha scritto:
>
>> http://www.guardian.co.uk/technology/2011/sep/19/android-free-software-stallman
>>

> 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.

Se si legge quell'articolo, che magari davvero prima o poi traduco
perché mi pare un buon punto di partenza per ogni rifelssione
sull'argomento, si vede che Stallman distingue tra quello che google
ha rilasciato come free software da quello che google ha rilasciato
con licenza apache (che non impone il rilascio del codice sorgente).
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. Per carità, niente di male, ma solo quanto di più lontano ci si
può aspettare rispetto ad un sistema GNU.

L'unica garanzia è davvero la GPL, che funziona come filtro non solo
per sapere quello che uno fa al momento ma, soprattutto, per prevedere
cosa farà in futuro. Sempre che interessi, ovviamente, sapere se prima
o poi ci si ritroverà nella c...a oppure voler la certezza (legale ma,
soprattutto, intenzionale, che è poi davvero l'unica che conta) che
questo non succederà mai.

> In generale sono comunque d'accordo, Android non è GNU.

Tanto basta, questo era l'unico punto in discussione, anche se poi la
discussione mal condotta si è allargata a macchia d'olio. Volevo solo
avvertire Luca perché non facesse confusione su questo punto. Se vuole
imparare a sviluppare software libero, deve sapere qual è la
differenza tra software libero (GNU e non GNU, non tutto il software
libero fa parte di GNU), open e gratis.

> Resta però il
> sistema
> operativo per smartphone più libero fra quelli attualmente sugli scaffali
> dei
> negozi.

Questo nessuno lo ha mai negato, neppure Stallman, che lo afferma
esplicitamente alla fine dell'articolo.

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). 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. 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.

Resta vero che android è, AL MOMENTO, il meno peggio. Non c'è molto da
ben sperare, però, perché una volta incastrati, gli utenti non si
tirano più fuori (non si accorgno neppure che ci cascano dentro,
figurarsi se sanno come venirne fuori) e il padrone della baracca, sia
esso microsoft o google, ne fa polpette.

Chi
>
> vuole uno smartphone veramente libero (al costo di comprare uno di pochi
> modelli disponibili e di faticare un po') invece dovrebbe orientarsi su
> Replicant,

Leggevo che gli sviluppatori di replicant attivi sono due (di cui uno,
Graziano Sorbaioli, è italiano). Non ci si aspetti l'output del team
di google. Però fanno buon lavoro e, soprattutto, se si vuole imparare
qualcosa davvero sui cellulari, sono una fonte incredibile di
informazioni di prima mano, visto che documentano quello che scoprono
cercando di rendere il software libero. Per modificare qualcosa,
bisogna conoscerla.

Per gli interessati:

http://replicant.us/

Sembra che l'ultimo sdk di android sia stato rilasciato con una
licenza di fatto proprietaria e perciò quelli di replicant ne hanno
riscritto uno free software che può essere scaricato dal sito. Anche
questo fatto, se  è vero, non mi pare indicare nulla di buono, per chi
ama android più o meno libero.

Molto interessanti sul sito di replicant sono anche le informazioni
relative alla sicurezza dei dispositivi. Sostanzialmente, un cellulare
ha due "menti", una completamente proprietaria, quella che "telefona",
per intenderci, e una su cui gira il sistema operativo e le
applicazioni. Se le due cpu hanno in comune parte della memoria,
questa può essere usata da una per spiare il comportamento dell'altra.
Qui i dettagli tecnici di come avviene per nexus s e galaxy s:

http://redmine.replicant.us/projects/replicant/wiki/SamsungModemIssues

Questo anche senza considerare che, ovviamente, la parte proprietaria
fa tutto ciò che vuole e non può essere modificata. Buona fortuna ai
fortunati possessori di questi meravigliosi gingilli. Potrebbero
almeno ringraziare chi fa la fatica di capire, visto che certamente
questo condiziona, almeno in parte, il comportamento di tutti (cioè,
li convince, almeno in parte, a essere un po' meno peggio).

> E chi vuole imparare a programmare in Java non dovrebbe farsi spaventare dal
> fatto che un software Java che gestisce il database di una banca non sia
> portabile sul proprio smartphone o viceversa che un giochino per smartphone
> non possa funzionare su un cloud, in quanto è la natura stessa
> dell'applicazione che non si adatta a quel tipo di hardware, non il
> linguaggio Java in sè.

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. 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.
Perché?  Al solito, perché comode, e perché ignorare è lo sport
preferito della mente umana (ma, come diceva Wittengstein, un trucco
in logica è un trucco contro se stessi, che si paga).

Java, poi, con librerie proprietarie a iosa (e android è solo peggio
di altri, in questo senso), non fa certo eccezione. Il lavoro migliore
con java lo hanno fatto quelli dell'agenzia delle entrate, ma neppure
quello basta. Per far girare un'applicazione java, è necessario
installare la versione su cui  chi ha sviluppato il codice si è
basato, 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.

Non voglio aprire nessuno discussione, ma se volete un incontro su
questi importantissimo argomenti, io ci sono (non la sera). 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. Il sdk proprietario di google
non fa eccezione. Tutt'altro! Punto.

Loredana




Maggiori informazioni sulla lista Soci