Carissimo Sandro,
ben vengano queste tue email,sono sempre un'occasione di confronto e
di riflessione.
Sarebbe bello potersi confrontare, in un contesto magari tipo gfoss
day, su questo argomento. Ne parliamo spesso in lista, ma le email
sono sempre troppo esposte a flame e fraintendimenti... Che ne dite se
organizzassimo una piccola tavola rotonda con dialogo aperto, la
prossima volta che ne avremo l'occasione?
Dico la mia solo per punti, sinteticamente:
1 - molte aziende di sviluppo e molti clienti richiedono di sviluppare
su/per ambiente Windows. Ognuno è libero di pensare quel che vuole,
tanto più se cerca di aderire alla logica del solftware libero, ma non
sempre le scelte personali sono totalmente libere dal contesto
professionale in cui uno opera. Mi piace Linux, la storia e le
comunità che ci stanno dietro. Sostengo, anche nei confronti coi
colleghi e i clienti, la bontà dello sviluppo e dell'approccio FOSS,
anche perché mi ha permesso di imparare tante cose, di crescere nelle
mie competenze sui GIS e sull'informatica in genale. Ma questo non è
sufficiente per tanti (e per me) per svincolarsi da Windows. Sia per i
motivi suddetti, sia perché è un ambiente che, in fin dei conti, non
mi dispiace poi così tanto. Mi chiederai cosa ci faccio qua, mi dirai
che sono incoerente... Forse. Io spingo il più possibile verso FOSS,
anche nei corsi che tengo, ma il mondo è bello perché vario ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=12)
2 -
non a caso, la GPLv3 *impone* l'uso degli strumenti
standard GNU per il build-system: il mancato rispetto
di questa clausola è di per se stesso una violazione
della licenza.
Quindi tutto ciò che viene distribuito su Osgeo4w, riguardo qgis,
viola la licenza? Lo chiedo seriamente, perché non mi sembra
un'affermazione da poco.
In passato ho chiesto molto sui due build system, i confronti in lista
sono stati molto serrati in certi periodi. Ho tirato su qgis e grass
sia tramite MinGW che tramite MSVC, con risultati più o meno buoni,
partendo dal problema che è tosto mettere insieme Qgis e Grass tramite
MSVC. Perché tutto ciò, se con MinGW è tutto (più o meno) più lineare,
o almeno più compatibile col build su Linux? Anzitutto perché in
molti, su Windows, sviluppano più probabilmente su VS. Secondo perché,
come emerso in precedenti discussioni, il codice prodotto da MSVC è
più performante su Windows. A questo proposito, se non siete
d'accordo, cerco i vecchi riferimenti, perché io non sono in grado di
snocciolarvi benchmark e motivi tecnici specifici... Diciamo che mi
fido di chi ne sa più di me su questo argomento (tra cui, senz'altro,
Jurgen Fischer!).
Aggiungo brevemente. Non tutti siamo espertissimi di ambienti di
build, tantomeno di debug. Debuggure su MSVC è a dir poco banale...
tramite MinGW dovrei usare GDB, che trovo molto meno banale. Ok, uno
può sempre imparare... ma questi spesso non possono che rimanere buoni
propositi!
3 - Sono d'accordo che sia importante mantenere alta la coscienza di
chi lavora con strumenti OS, ma credo vada accolto anche chi non
riesce/può a essere un "purista" al 100%. Ripeto quello che ho detto
tante altre volte: non tutte le svariate esigenze professionali hanno
pari soluzioni proprietarie e non, per Windows e per Linux. A volte ci
sono solo le une o le altre. E talvolta il contesto richiede l'uso di
un prodotto indipendentemente dalla sua GPLness... In generale siamo
sempre tutti d'accordo, ma cerchiamo di non essere troppo generalisti.
Ogni situazione ha un perché, e a parte i casi eclatanti di
"parassitismo" e pigrizia, siamo comprensivi. Da questo direi, ben
vengano anche gli sforzi di mantenere un build systems non purissimo
per Qgis e tutto il resto dell'armamentario...
(domanda da poll per chi sviluppa su Windows: "quale build-system
usate?". Io un'idea sulle percentuali già ce l'ho)
So di essere sempre borderline con le mie idee, ma spero siano un
contributo al confronto. Che spero, prima o poi, potremo sviluppare
dal vivo!
Giovanni
Il 08 agosto 2010 12:47, <a.furieri@lqt.it> ha scritto:
Scusatemi se abuso della paciosa tranquillità di una
domenica mattina di agosto, ma dato che "ho un sassolino
nella scarpa", ne approfitto per togliermelo.
le regole elementari della GNU foundation sono assai
chiare (e ben solidamente motivate): perchè un SW
possa dirsi libero (ma libero veramente) non basta
semplicemente rilasciare i sorgenti.
e non basta neppure adottare una qualche licenza o.s.
occorre anche utilizzare un build-system conforme,
in modo tale che tutto risulti facilmente interoperabile,
senza costringere sviluppatori e system maintainer
a dover fare le capriole per aggirare le cento buche
ed i mille ostacoli che impediscono di fare una build
effettivamente funzionante.
esiste un compilatore standard (anzi, una ricca di suite
di compilatori): GCC
ed esiste una serie di strumenti standard per la
configurazione: AUTOTOOL (libtool, autoconf, automake)
funzionano, sono efficienti, sono disponibili su
tutte le piattoforme "ragionevoli", garantiscono
efficacemente tutto quello che serve per una facile
migrazione cross-platform.
p.es. su WinOz esiste MinGW/MSYS, che permette di
sviluppare agevolmente usando strumenti assolutamente
conformi.
esistono anche altre alternative (CMake etc): sicuramente
possono anche essere "appetibili" in alcuni casi.
resta il fatto che possono causano problemi (anche grossi)
di interoperabilità con gli autotools.
quindi perchè vengono utilizzati ?
risposta facile facile: perchè rendono molto più facile
l'integrazione con gli strumenti M$ tipo VisualStudio.
ok, nulla in contrario. più opzioni abbiamo, meglio è.
a patto però non rendano più incasinata l'integrazione
con gli autotools e con gcc.
infine, abbiamo i mille problemi che nascono da MSVC,
cioè dal compilatore C/C++ di M$
ripeto: non ho nulla in contrario, chi vuole e lo
trova comodo usi tranquillamente MSVC.
nessuna scomunica, nessun interdetto: consesso che
a volte anch'io lo uso, se non altro per verificare
la compatibilità del codice che sviluppo.
resta il fatto che MSVC *non* è affatto uno strumento
free-sw (anche se è disponibile gratuitamente).
non solo: MSVC presenta un sacco ed una sporta di
'idiosincrasie' assolutamente fuori standard.
sviluppare C/C++ su MSVC è una ricetta sicura al 100%
per ottenere codice assolutamente non-portabile.
viceversa, adattare codice sviluppato su GCC in modo
tale che possa essere compilato con successo anche da
MSVC è cosa abbastanza agevole.
allora, se tutto questo è vero (è vero, è vero ...),
perchè mai organizzazioni che tanto sbandierano al vento
la propria appartenenza al movimento per il sw libero
poi usano e supportano proprio MSVC ???
io la trovo personalmente una grossa, enorme contraddizione.
e non si tratta affatto di un semplice puntiglio formale:
la cosa implica svariate conseguenze di ordine pratico.
molti packages che si compilano in modo assolutamente liscio
su Linux danno invece mille problemi con MinGW/MSYS.
perchè succede questo ?
semplice, perchè gli sviluppatori hanno letteralmente
farcito il codice con macro condizionali assolutamente
specifiche per MSVC che risultano quindi incompatibili
con gli strumenti standard.
paradossale, vero ? però è esattamente così.
vogliamo guardare "in casa nostra" ?
- geos
- proj4
- geotiff
sicuramente sono librerie assolutamente strategiche.
altrettanto certamente per riuscire a fare una
build su MinGW/MSYS occorre armarsi di santa
pazienza e procedere al sapiente "scaccolamento"
manuale del codice, dei makefiles etc etc.
e non mi si venga a dire che "la colpa è di WinOz,
che ha le sue stranezze".
packages *mostruosi* come p.es. wxWidgets (100 MB
di sorgenti) compilano in modo assolutamente
liscio e senza nessun problema di sorta anche in
ambiente MinGW/MSYS
ergo, non è un problema 'tecnico': direi che
piuttosto è un problema di volonta è di priorità
nelle scelte strategiche.
et in cauda venenum: io personalmente non ho mai
avuto il piacere di riuscire a fare una build
*completa* di QGIS su WinOz ... neppure usando
MSVC: mi sono sempre dovuto accontentare di una
build "castrata" (p.es. senza supporto python),
e comunque ho sempre dovuto sudare non poco per
"aggiustare a martellate" qualche intoppo qua e la.
non dubito affatto che il sistema automatico delle
nightly-build adottato da OsGeo4W funzioni perfettamente;
ma evidentemente c'è qualche "pezzetto magico" che
non è mai stato rilasciato ne tantomeno pubblicamente
documentato.
scusatemi se vi ho tediato con queste mie considerazioni,
ma credo proprio che ... c'è del marcio in Danimarca ![:slight_smile: :slight_smile:](/images/emoji/twitter/slight_smile.png?v=12)
ciao Sandro
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@faunalia.it
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
460 iscritti al 15.7.2010