[Soci SLIP] corsi base

Lucio Crusca lucio a sulweb.org
Mer 9 Gen 2013 17:18:17 CET


In data mercoledì 9 gennaio 2013 14:18:06, loredana ha scritto:
> Tieni conto che android non ha il sistema GNU, 

Falso, qui puoi trovare i sorgenti di Android:

http://omapzoom.org

come vedi includono la toolchain GNU e molti altri pacchetti del sistema GNU. 
Forse non proprio tutti quelli che si trovano su una distro GNU/Linux per pc, 
ma direi che una buona parte c'è.

> ha solo il kernel linux
> e tutto il resto è riscritto da capo, 

Falso. Oltre al codice di GNU include molti altri software liberi proventienti 
da altri autori "non-GNU" (esempio netcat, zlib, ...). Ben poco è stato 
riscritto da capo, se mai è stato riscritto qualcosa.

> con una versione java che è
> specifica (cioè, le applicazioni scritte in java per android non
> funzionano su sistemi non android, se sbaglio mi si corregga, grazie).

Questo (paradossalmente, visto che non sei un'esperta di Java) è più corretto. 

> Anche il fatto che java sia indipendente dal sistema operativo è vero
> solo sotto certe condizioni, non in generale. 

Falso. Qualsiasi linguaggio può essere usato male. Java offre tutti gli 
strumenti per scrivere programmi indipendenti dal sistema operativo e ne 
incoraggia l'uso. Poi ognuno è libero, se vuole, con qualsiasi linguaggio, di 
scrivere un programma che cerca di accedere alla cartella C:\Programmi o alla 
cartella /bin: non è colpa del linguaggio se il programmatore è un babbeo...

> Android è un esempio clamoroso, 

Esempio di cosa?...

> ma basta solo che un'applicazione usi delle classi
> proprietarie (per cui il codice java non è disponibile per tutti) e
> quell'applicazione sia sviluppata per windows e non per GNU/Linux, per
> esempio, per non poterla usare su sistemi operativi diversi.

... spero non di questo (in quanto hai fatto un sacco di confusione fra il 
significato di libero ed il significato di portabile).
Se parliamo di Android è vero che esistono librerie di classi proprietarie. 
Non è però vero che tali librerie non siano disponibili per qualsiasi sistema 
Android (ovvero portabili), perché essendo librerie Java (versione Android) 
funzionano indipendentemente su qualsiasi dispositivo Android. Comunque tali 
librerie proprietarie sono eccezioni che mi è capitato di valutare ma che, per 
esempio, a me non è mai servito usare, nonostante io sviluppi applicazioni 
Android come parte del mio lavoro. Di solito quelle che esistono sono 
accompagnate da qualche dispositivo hardware e servono a far funzionare quel 
dispositivo collegato ad un tablet (mi viene in mente un lettore barcode 
bluetooth).
Se invece parliamo di Java non Android, il tuo racconto è semplicemente frutto 
di una fervida immaginazione. Chi sviluppa un software libero in Java dovrebbe 
fare una fatica boia a trovare classi proprietarie di una qualche utilità che 
non abbiano alternative libere e migliori offerte dal progetto Apache...
Il software proprietario in Java esiste, ma non è nel "mercato" delle 
librerie, è nel mercato dei prodotti finiti. Allo stesso modo in cui esiste 
software proprietario scritto in ogni altro linguaggio di programmazione 
esistente sulla faccia della terra ed oltre...

> Per dire che, come sempre, non c'è nulla di assoluto e vanno evitati
> gli slogan che semplificano, forse, ma rendono anche un pessimo
> servizio alla comprensione di come stanno davvero le cose.

Sono d'accordo sul fatto che in generale non bisogna generalizzare (ahahah che 
stupidaggine che ho scritto), ma Loredana, tu stai parlando di cose che non 
conosci. Parlando di Java, tu non lo sai come stanno davvero le cose, ma te lo 
inventi basandoti su tue convinzioni e poi lo vendi come verità assoluta. Non 
è che io voglia difendere Java a tutti i costi, ma Java è un software libero 
come tanti altri (Python per citarne uno che potrebbe essere visto come 
concorrente di Java). Non c'è nulla in Java, nei programmatori Java o nei 
programmi Java di intrinsecamente pericoloso per la nostra libertà. Allo 
stesso modo in cui non c'è nulla in Python o altri software liberi.

Un coltello può essere usato per uccidere oltre che per tagliare il pane? 
Certo, e lo stesso lo si può fare con Java e con qualsiasi altro software 
libero.

> 
> I sistemi GNU sono ben definiti, sono quelli che si basano sulle
> applicazioni che fanno parte del progetto GNU.
> 
> Nel contesto del progetto propriamente GNU, sono stati sviluppati il
> kernel (linux), 

Ma quando mai? Linux non è stato assolutamente sviluppato nel contesto del 
progetto GNU, altrimenti Stallman sarebbe felice anche se tutti chiamano solo 
Linux quello che è GNU/Linux...

> Android ha cancellato tutto ciò, schiacciando di nuovo l'applicazione
> sull'hardware 

Stai sognando. E ovviamente stai avendo un incubo. Prima di Android, qualsiasi 
linguaggio per sviluppare per cellulari obbligava a scrivere per un modello 
particolare di cellulare. Poi con Java versione Mobile (J2ME, ovvero quella 
versione di Java che funziona sui normali cellulari non Android e non 
smartphone), i programmatori hanno avuto a disposizione una versione di Java 
ridotta (guarda un po', anche Sun ha dovuto fare una versione ridotta del SUO 
Java, non solo Google). Questa versione di Java permetteva almeno scrivere 
solo "due o tre volte" ogni applicazione, una volta per ogni "fascia" di 
cellulare, ovvero quelli poco potenti, quelli mediamente potenti e quelli più 
potenti. Ogni cellulare apparteneva (appartiene) ad una fascia e può eseguire 
determinate applicazioni Java. J2ME non ha mai avuto tanto successo però.
Infine con Android si scrive una sola volta per tutti gli smartphone Android.

> e perciò rendendola specifica per i singoli dispositivi

Ma non è vero! Stai dando informazioni inventate convinta che siano giuste, 
oppure deliberatamente false! Le applicazioni Android si scrivono una sola 
volta e funzionano su tutti i dispositivi Android. Con il tuo ragionamento 
potremmo anche dire che i software scritti per Arduino, anche se liberi, sono 
tutta porcheria in quanto non possono funzionare sui pc. E ci credo, 
l'hardware non è solo diverso, ma ha proprio potenzialità diverse.

Esempio: con quale software/linguaggio libero pensi che sia possibile far 
funzionare una app che usa il GPS su un PC che il GPS non ce l'ha? Oppure una 
app che usa l'accelerometro su un PC che l'accelerometro ovviamente non ce 
l'ha? Nessuno, non esiste e non può esistere, perché è l'applicazione che 
richiede potenzialità dell'hardware che sono specifiche degli smartphone, non 
il linguaggio.

> e richiedendo che chi sviluppa per android usi una versione specifica
> di java. 

Era tecnicamente impossibile usare la versione di Java per pc, per questo 
Google ne ha fatta una specifica. Dalvik (questo il nome della versione Java 
per Android) è identico a Java per PC in tutte le parti di Java che era 
possibile mettere su un cellulare (quindi gestione dell'I/O, gestione del 
multitasking, il core del linguaggio, le utilities, la gestione della rete e 
molto altro) e invece offre delle librerie specifiche là dove non si poteva 
fare diversamente per ragioni di scarsa potenza di elaborazione dei 
dispositivi mobili, quindi grafica, multimedia e parsing XML. 

> Tenuto conto che la parte di telefonia in sé non è mai stata
> libera (cioè, praticamente tutti i modem sono proprietari), è ovvio
> che di libero su uno smartphone, android o no, non c'e' proprio nulla

Se fosse vero che non c'è proprio nulla, dal punto di vista della libertà 
sarebbe la stessa cosa comprare un Windows Phone o un iPhone. Invece non è lo 
stesso. È una vecchia discussione che abbiamo già fatto. Avere un modem 
proprietario nel cellulare da una parte non è colpa di Google o di Android e 
dall'altra non è diverso dall'avere un pc con il BIOS e l'ACPI prorietari 
(ovvero il 99,99% dei pc in circolazione). Sono d'accordo che se possibile 
sarebbe meglio avere tutto libero, ma non puoi incolpare Google o Android o 
Java del fatto che Samsung produca hardware e software non liberi, allo stesso 
modo in cui non puoi incolpare Linux o il progetto GNU per le scelte di Asus o 
NVidia.

> (neanche il kernel linux, che deve per forza contenere i driver
> proprietari dei dispositivi e i driver proprietari di gestione della
> parte di telefonia, come dire che l'hardware lo controlla comunque non
> linux, ma chi fornisce il driver proprietario essenziale per il
> funzionamento dell'apparato).

Non è vero che il kernel non è libero. È vero che il driver non è libero, allo 
stesso modo in cui la maggior parte delle schede wireless per PC richiede il 
caricamento di un firmware proprietario per funzionare, anche con Linux.

> Non c'è traccia della filosofia alla base di GNU e neanche di GNU, in
> android. GNU è questo:
> 
> http://www.gnu.org/home.it.html

Riguarda i link che ti ho messo sopra, ci sono molto più che tracce, c'è quasi 
l'intero sistema GNU e molto altro, filosofia inclusa (almeno da parte di 
Google, non certo di LG, Sony o chi altro produce hardware).

> Sistemi che sono propriamente GNU sono le distribuzioni completamente
> libere (incluso il kernel linux "depurato"), ma anche sistemi debian
> in cui si usa solo la parte "main" dell'archivio dei pacchetti, vale a
> dire nè contrib né non-free. La parte "main" è anche la sola sotto il
> completo dontrollo degli sviluppatori debian, che possono perciò
> curarne la sicurezza, per esempio, avendo accesso al codice rilasciato
> con licenza libera (GPL, o GPL compatibile).

Sì va bene, questo è vero, ma puoi incolpare GNU se esistono anche 
distribuzioni ibride? No, come non puoi incolpare Google se Samsung prende 
Android e gli aggiunge software proprietario.

> Per poter usare solo e soltanto software libero, occorre hardware che
> sia a sua volta libero, ovvero hardware per cui esistano dei driver
> liberi. Si può trovare (io ci sono sempre riuscita), ma non è
> immediato. 

Questo è interessante (il fatto che tu ci sia riuscita). Mi daresti per favore 
il modello esatto del tuo notebook e della scheda madre del tuo pc fisso se ne 
hai uno? Magari trovo chi me li vende.

> Se
> qualcuno ci vede qualcosa di personale, gli garantisco che è un
> problema tutto suo. 

Idem per me, nulla di personale, ma ci tengo a dare informazioni corrette e la 
maggior parte di quel che hai scritto è sbagliato, quindi ho corretto.





Maggiori informazioni sulla lista Soci