Newsgroup: it.comp.lang.visual-basic
Titolo: [Apri i sorci] Esperienza involontaria di open source in Vb

Salve
So di essere OT, ma visto che non mi e' stato detto (ancora eheheh) di
chiudere il becco ....
Premetto che le mie basi di programmatore sono very closed source: ho
iniziato facendo programmi in assembler per schede a microcontrollore,
scrivendoli usando un commodore C-64, per poi trasferirli al buio (senza
poter fare debug) sulla scheda dopo avere ricompilato il codice usando un
assemblatore autoprodotto scritto con qbasic (quante a$, b$, aa$ eheheh);
piu' 'closed' di cosi si muore.
Tempo fa ho iniziato un progetto in Vb in perfetto stile 'closed' (con
obiettivo il codice), scrivendo codice per me stesso, tenendo in mente tutta
la struttura del progetto.
Risultato: qualita' prodotto 4, qualita' codice 5, robustezza 5, impegno
richiesto 9 (passavo l'80% del tempo a gestire la struttura del codice (che
palle!!!)).
Poi ho iniziato a non lavorarci per settimane, riprendere il lavoro per
qualche giorno, poi di nuovo pausa per settimane e via di seguito per
numerosi cicli.
Dopo ogni pausa mi ricordavo poco e niente del progetto, quindi sono stato
costretto ad imparare a scrivere codice utilizzabile da un'altro che avesse
in mente poco e niente della struttura del codice (io dopo le pause).
Insomma i cicli di pause-modifiche (cicli 'open') mi hanno catapultato
nell'open source, nello scrivere il codice per altri (non c'e' differenza
nello scrivere per altri rispetto allo scrivere per se stessi a distanza di
tempo), avendo come obiettivo la struttura dei dati.
Mi e' diventato normale chiedermi continuamente "come posso scrivere il
codice in maniera che sia semplice rileggerlo"?
Risultato dei cicli 'open' : qualita' prodotto 7, qualita' codice 7,
robustezza 8 (un solo grosso bug in mesi di utilizzo e per giunta previsto
(nonostante che la gestione degli errori sia a dir poco grezza)), impegno
richiesto 7 (a tratti mi sono persino divertito!!).
Dopo questa esperienza sono giunto a queste conclusioni:
E' falso che sia piu' rapido riscrivere che usare codice altrui, chiunque pe
rcorra un buon numero di cicli 'open' (problema: e' illeggibile ->
soluzione: riscrittura con obiettivo i dati (gli altri) e non il codice (me
stesso)) impara a scrivere codice (ri)leggibile.
E' falso che la leggibilita' sia fatta dallo stile di scrittura, e' fatta
dal porsi in ogni momento l'obiettivo e averne la necessita' (cosa che non
succede nei lavori 'closed' (i cicli 'open' sono troppo radi, il progetto
muore prima).
E' falso che chi impara la programmazione in Vb scrive codice peggiore di
chi impara in C++, il programmatore Vb immerso nei cicli 'open' produce
codice di categoria nettamente superiore a un programmatore C++ 'closed'.
Qualsiasi progetto (o modifica) nasce in modalita' 'closed', ma puo' essere
gestito con successo solo in modalita' 'open' (in 'closed' il progetto
diventa rapidamente ingestibile e palloso).
Salve
                                    Dbg

 codice di categoria nettamente superiore a un programmatore C++ 'closed'.
In questo caso la mia risposta è nettissima e decisa: DIPENDE. :-)
Dipende dalla persona, dall'esperienza che ha e dall'interesse che ha a mostrare
o nascondere il proprio codice. Nel mio caso personale ti dò ragione, da quando
il mio codice "potrebbe" dover andare in mano ad altri, ho iniziato a scriverlo in
modo estremamente diverso, sacrificando magari l'ottimizzazione, ma non la
manutenibilità. (E tra parentesi mi trovo moooolto meglio, quando mi serve una
particolare funzionalità che ho già sviluppato, me la cavo con un copia e incolla
fra due progetti... qualche tempo fa mi hanno chiesto un progettino particolare,
piuttosto complesso. Ne avevo una bozza pronta e funzionante in tre ore !)
Ad esempio il mio codice di dieci anni fa era una ciofeca immonda, pur essendo
le mie necessità di allora molto più semplici di quello che ho adesso.
Qualcuno magari fa altrettanto, altri no. Ho dovuto metter mano a una routine
in C (che io conosco pochissimo) di una dozzina di righe, per poi riscriverla in VB...
quattro giorni di lavoro, solo per capire a cosa servisse. E avevo l'aiuto di quello
che l'aveva scritta !
Tutto questo ovviamente IMVVVVHO.
Bye, G.

Salve
Beh a parole dici dipende, ma poi confermi coi fatti e sicome sono i fatti
(basta che siano fatti molto eheheh) che contano ....
Cmq ribadisco che appena un progetto diventa un po' complesso scrivendo in
'close' ti sfugge di mano oltre a diventare 'odioso', a quel punto puoi
ottimizzare finche vuoi, ormai sei fregato .........
Ti ringrazio di aver letto il papiro babilonese e di aver bussato 'presente'
:).
Ciao
                                Dbg
P.S. quello che ho scritto e' un'esperienza reale, non teoria e le
differenze di risultati esposte si sono dimostrate stabili e ripetibili.


 wrote in message
news:r%kM5.4607$fx4.1...@news.infostrada.it...

Perdonate l' ignoranza, ma l' open source non e' il codice "aperto", cioe' a
disposizione di terzi, prescindendo dallo stile di scrittura ?
Ciao
Aldo

Niente perdono, non c'e' niente da perdonare :)) ......
C'e' il codice free, si puo' liberamente usare, modificare,  il codice
derivato dal codice free puo' diventare di proprieta' di qualcuno, ed e'
solitamente non supportato.
C'e' il codice open source (poracci sti socri ehehe) che si puo' liberamente
usare, modificare, e anche il codice derivato dal codice open source deve
essere open source (nessuno puo' diventarne proprietario), a volte e'
supportato.
L'open source e' anche un modo di scrivere il codice, e' una specie di
comune in cui decine di persone partecipano liberamente (un bazar) (di
solito perche' sono interessate al progetto, per stima, ecc.) a tutto o in
parte ad un progetto.
Si scrive codice che altri decine di persone, leggeranno, testeranno,
analizzeranno, si riceve codice da decine di persone.
La cosa strana e' questo dovrebbe produrre un'accozzaglia di codice
ingestibile, e invece produce codice di categoria superiore a quello
commerciale (vedi linux contro NT)
Ti consiglio 
http://www.agonet.it/mac/opensource/cattedrale.html


 wrote in message
news:X8eM5.983$fx4....@news.infostrada.it...
