[MontelLUG] Vista funziona! E anche bene!

Alessandro Galli alessandro.galli a gmail.com
Gio 16 Ago 2007 13:53:57 CEST


Alle mercoledì 15 agosto 2007, Samuele Zanin ha scritto:
> Adesso scateniamo un bel flame :-).
Bene, accendo il lancia fiamme e mi butto nella mischia.
> Penso che non riusciremo a sfuggire a Vista e ci toccherà abituarci.
Sono d'accordo. Non vedo possibile che M$ passi dal 99,7% del mercato desktop 
a 0% sforando un SO.

Il tono del discorso però è diverso. Winzozz e Linux non possono mai essere 
confrontati sullo stesso piano. Sono due cose profondamente diverse e quindi 
anche i giudizi dovranno essere pesati in base alle specifiche 
caratteristiche del so.
Esempio:
Linux è open source, quindi il suo codice è stato sicuramente rivisto da molte 
più persone di quello Winzozz, c'è meno riserbo nello spiegare il 
funzionamento delle sue parti componenti e molte persone hanno libertà nel 
decidere cosa includere nel SO etc.
Winzozz è un prodotto proprietario di un'unica azienda che cerca quindi di 
indirizzare lo sviluppo su alcune funzionalità rispetto ad altre creando un 
sistema omogeneo.

Quindi quando confronto i due sistemi devo tenere in considerazione che per M$ 
è più problematico essere innovativo, mentre per Linux basta che qualcuno non 
abbia nulla da fare per due mesi e magari inventa un programma nuovo mai 
visto.
D'altro canto quando installo Linux è ovvio che abbia la sensazione di 
un'accozzaglia di programmi non omogenei (alcuni in qt, alcuni in gtk, alcuni 
tcl/tk etc.).

Rimangono quindi due cose diverse, ognuna delle quali si comporta meglio in 
alcune condizioni rispetto ad altre.
E' innegabile però che Linux porta vantaggi all'umanità (in termini di 
innovazione e libertà) mentre M$ porta vantaggi alla M$. Questa non è una 
questione morale ma è insito nell'essere di questi due SO.

> Fino ad adesso, ho sentito nel corso degli anni spesso parlare che le
> difficoltà nell'introduzione di Linux erano legate al fatto che
> l'interfaccia non fosse inizialmente user friendly, alla difficoltà di
> installazione e ai problemi dei driver.
> A parte il problema dei driver, gli altri vedo sono stati superati
> brillantemente.
Il problema dei driver è duplice. Ci sono ambiti, tipo quello server high end, 
dove i driver in genere sono disponibili.
Per il lato destkop sicuramente l'unica soluzione è guadagnare quote di 
mercato.
> Quello che sento che invece limita il passaggio a linux è il discorso della
> mancanza di software o meglio di gente che sviluppi per linux (sia closed
> che open source).
Secondo me è falso. Il fatto principale è la mancanza di investimenti su 
linux. Diciamocelo, i programmatori programmano su quello che il Technology 
Manager decide, almeno in aziende di una certa dimensione.
Se ti offrono un lavoro ti frega veramente in che linguaggio devi programmare 
o ti importa più l'ingaggio, le ferie, il contatto etc.?
Se domani ti offro un lavoro a pari condizioni di quello attuale ma ti dò 100€ 
in più mi chiedi in cosa programmo?
> Per me un passo importante sarebbe quello di far entrare in modo
> considerevole linux nelle aziende, ma qui la cosa si fa complicata. Anzi,
> ho assistito al contrario. Migrazioni da linux a win.
Io invece penso che nell'ambito aziendale ormai abbiamo ottime possibilità!
Ora come ora si stà tornando a termiali stupidi (per quanto graficamente 
capaci) e server (o cluster) intelligenti.
In questo ambito io sceglierei di utilizzare terminali con linux per:
* non pagare costi di licenze
* stabilità
* possibilità di aggiornamenti automatici non invasivi
* possiblità di assistenza remota (anche solo via console)
* capacità di supporto per hw obsolescenti
* automatizzazione del collegamento con server di terminale grafico
* sicurezza
* azzerato il costo di manutenzione causato dai virus

Come server può essere utilizzato sia linux (per il software tipo webmail, 
openoffice tramite vnc o rdp etc.) sia winzozz (per Exchange, db, gestionali 
sempre tramite rdp o cytrix).

In breve scelgo i programmi in massima libertà, utilizzando server con SO 
adatto a farli girare. Sui terminali con linux faccio grosse economie in 
riduzione delle spese di gestione e di licenza.

Infine non pago nemmeno il costo di transizione perchè se voglio (usando solo 
server win) posso fare in modo che gli utenti non si accorgano nemmeno di 
usare linux!

> Lo sviluppo di software gestionale per le aziende lo vedo molto indietro.
Ci sono dei progetti molto interessanti, ovviamente general pourpose. In 
questo ambito il problemi fondamentali sono due:
a) mancanza di pressione commerciale
b) spinte derivanti dal ruolo in azienda

Il primo problema è ovvio. Se uno non se li va a cercare non saprà mai 
dell'esistenza e delle capacità  dei sw gestionali opensource su linux. 
Invece, quelli commerciali su Win hanno frotte di agenti/commerciali che 
spingono dalla mattina alla sera (è il loro lavoro) per vendere i loro 
prodotti.

Il secondo problema si basa sul fatto che le persone tendono, logicamente, ad 
assumere le decisioni più convenienti per loro.
Chi in azienda decide che sistema operativo o sw utilizzare, ha due scelte:
1) sceglie il prodotto leader del mercato
2) sceglie un'alternativa in base al rapporto prestazioni/costi

Nel primo caso un eventuale insuccesso del progetto non è a lui addebitabile, 
in quanto ha fatto la scelta sicuramente migliore, per quanto non abbia 
risposto alle aspettative.
Nel secondo caso invece si assume la responsabilità di un eventuale 
insuccesso, perchè se le cose vanno male la colpa è sua che ha fatto una 
scelta "creativa" o "innovativa". Se invece va bene diventa un "mago" del 
software. 
Ma per fare la seconda scelta ci vogliono le palle e bisogna sapere di cosa si 
stà parlando in prima persona.

> Ho come la senzazione che l'unico compilatore "ufficialmente supportato"
> sotto linux sia il gcc.
Il gcc mi va bene, ha dimostrato di compilare bene e veloce. Come tutte le 
cose basta saperlo usare. Inoltre la sua architettura a layer lo rende molto 
espandibile e manutenibile.

> Il c/c++ può andare bene per sviluppare il s. o. o driver, alcuni
> applicativi che comunicano molto con l'hardware.
Non sono d'accordo. Il C forse ma il C++ è tutto un'altro linguaggio. Solo il 
nome e la compatibilità con il vecchio C li accomuna in qualche modo.

I puntatori per lavorare sulle stringhe li usi in modo trasparente con classi 
tipo <string.h> o <qstring.h>.
Se poi il progetto delle classi è fatto bene è facile evitare anche i memory 
leak e i SIGSEGV.
I puntatori li puoi anche in C++ usare solo quando ti servono.

E' certo che quando si programma in C++ le classi che tu disegni vanno a 
rappresentare un modello. Se le condizioni a contorno o una maggior 
definizione delle specifiche vanno ad "intaccare" il modello è sempre 
necessario tirarsi su le maniche e modificare il modello, quindi modificare 
le classi, in modo che rappresentino le nuove condizioni.
Procedere come spesso si usa patchando il sw porta sempre ad avere un sw che 
non ci appartiene perchè non sappiamo più come funziona.
E allora sì non si capisce nulla tra puntatori e variabili globali.

> Si potrbbe pensare a Mono, ma è sempre un passo o due più indietro del
> corrispettivo NET sotto win.
> Java in campo gestionale è già stato scartato.
Mono a mio avviso non è così pesantemente indietro, se poi parliamo di quello 
che deve fare un gestionale, penso si possa già cominciare ad utilizzare.
Per quanto riguarda Java penso che ti sbagli del tutto. Non è molto diverso 
da .NET per quanto riguarda l'architettura. Sicuramente nei suoi primi anni 
di vita ha patito la pesantezza della RM e la limitatezza delle funzionalità 
ma penso che questo tempo sia finito.
Con la JRE 1.6 sono stati fatti passi da gigante. Se poi la paura è la 
gestione della garbage collection, basta avere l'accortezza di impostare a 
null i puntatori alle classi che non ti servono più.

> Python ci ho dato un'occhiata ma è interpretato e non gode di tipizzazione
> forte, cosa che non mi convince.
Python è uno dei linguaggi migliori in quanto ti "costringe" ad essere 
ordinato. Inoltre vale quanto detto per la programmazione ad oggetti prima 
sul C++.

> Qundi, in fin dei conti, manca un'attrattiva che dica allo sviluppatore
> sotto linux hai più vantaggi che sotto win.
L'attrattiva c'è, ma non stà nei linguaggi e nelle librerie. L'alternativa è 
nell'informazione che hai disponibile. Ricordati che se quando hai un 
problema puoi googlare e trovare la soluzione bell' e pronta è solo grazie 
alla comunità open source. Inoltre se stai usando una libreria di 
qualcun'altro puoi studiarla, capire come funziona ed anche modificarla in 
base a quello che ti serve. Ad esempio nell'azienda dove lavoro si usava una 
libreria open source per aprire svg da qualche mega. Andando a vedere il 
sorgente della libreria sono state disabilitate alcune funzionalità non 
necessarie e si sono ridotti i tempi di apertura da 20 secondi a 2!

Inoltre sotto linux hai molta varietà e questo è fondamentale in fase di 
programmazione. Se trovi un ostacolo hai numerosi metodi per risolverlo.

>
> Un ultimo appunto lo faccio sui db. Qui dalle esperienze che ho si vada da
> Oracle e in alcuni casi a  DB2 (sul quale però non ho mai messo le mani).
> Postgres ho usato una versione sotto win della 8.qualcosa. Per ripristinare
> un database fatto tramite il pg_dump ci ho messo 3/4 di giornata con una
> serie di casini che non sto a dirvi (quando fai il backup, non ti fa una
> copia fisica dei dati, ma ti genera lo script del tutto il db e le insert
> per tutti i record).
> Durante l'uso poi faceva schizzare l'uso della cpu al 100% in maniera
> considerevole. Un backup mentre il db è in uso è praticamente impossibile.
> MySql non ho provato la 5 che dovrebbe avere risolto le limitazioni della 4
> che invece avevo provato (mancavano trigger e sottoquery, che nel mio caso
> sono fondamentali).
Spezzo una lancia per Postgres. Sicuramente pesa come db ma ha caratteristiche 
di innovazione che nessuna alternativa attualmente riesce a dare. La più 
fondamentale è sicuramente la tecnologia che permette a più utenti di leggere 
contemporaneamente una tabella mentre un altro utente vi scrive! In tabelle 
cardine dei gestionali, dove si lavora molto in inserimento e si fanno delle 
query pesanti è fondamentale!
Mysql sicuramente è una scheggia. Si può discutere sulle funzionalità ma non 
sulla velocità.
Poi, perchè non posso sviluppare in linux e lasciare il db su una macchina con 
Sql Sever, Oracle o DB2? Anzi è meglio dal punto di vista architetturale 
dividere il db server dall'application server.

In conclusione quello che penso sia più importante nell'ambito Linux è la 
spinta all'innovazione (sai che avresti ancora IE 5.0 se non fosse uscito 
Firefox?) e alla libertà di conoscenza.
Queste qualità sono impagabili perchè il mondo non può più fare a meno 
dell'informatica e se qualcuno controlla le conoscenze informatiche ha un 
potere incredibile (ha ad esempio il media su cui passano tutte le 
informazioni e le conoscenze).
Per questo è innanzitutto importante supportarlo.

E' anche vero che Linux, per continuare a fare la sua opera, deve essere 
concorrenziale sul mercato, altrimenti è condannato a scomparire. Per questo 
le critiche vanno sempre bene perchè è l'unico modo per individuare i 
problemi. Ho risposto punto per punto alle critiche di Samuele per cercare di 
approfondire i problemi lanciati. Avrei piacere che altri mettessero bocca 
per capire dove ho torto io.
Bye.

-- 

Alessandro Galli
Alias Hirfuin Mantombroso
alessandro.galli a gmail.com
http://www.montellug.it   
http://krdm.sourceforge.net/
--
José Ortega y Gasset: 
 La scienza consiste nel sostituire
 un sapere che sembrava ormai certo, con una teoria, ovvero
 con qualcosa di problematico.




More information about the montellug mailing list