posts - 504, comments - 1656, trackbacks - 139

Un applicativo Open Source dei primi anni 80

Ho un PC 8088 che ancora oggi sta svolgendo sotto DOS il suo duro lavoro con un superpotente hard disk da 210MB. Il suo unico scopo di vita è quello di far girare una applicazione gwbasic che acquisisce dei dati via seriale. L'unica pecca è che se la CPU va ad una velocità superire ai 4,77MHz (cioè 8MHz con il turbo a ON) l'applicazione gira troppo "veloce" e l'apparecchio non risponde più correttamente.

Tutto bello, peccato che mantenere in vita un hardware di quell'età sia tutt'altro che banale e anche una virtual machine non viene in aiuto.

La vera soluzione sarebbe la riscrittura del software. Splendido ho i sorgenti ... un fantastico applicativo gwbasic ... chi non conosce il basic? Nulla di più semplice ... macché.
Madornale errore. Il sorgente c'è ma è scritto talmente male da venire il voltastomaco. Non commentato, zeppo di goto, pieno di arzigogoli con variabili dai nomi assurdi e poke di vario genere.

La soluzione più economica, ahimè, è quella di cacciare via tutto perché il tempo per riscrivere da zero l'applicativo è sicuramente superiore al valore dell'apparecchio stesso.

Morale

  • All'acquisto del software, considerare la disponibilità del sorgente come un valore aggiunto rischia di essere un'operazione in perdita secca (come in questo caso).
  • Open Source non significa "assicurazione per il futuro" e alle volte non serve proprio a nulla. Open Source è bello ma non necessariamente altrettanto utile.
  • Se non ne vale la pena per un piccolo applicativo gwbasic, posso immaginare che ne sarebbe di un applicativo con anche solo qualche centinaia di migliaia di righe di codice.
  • Quanto racconto non è certamente applicabile a tutto l'Open Source.

Il mio è solo scetticismo portato dall'esperienza personale, non ho preclusioni aprioristiche contro l'Open Source.

Print | posted on giovedì 31 agosto 2006 15.13 |

Feedback

Gravatar

# re: Un applicativo Open Source dei primi anni 80

I goto? Ma cosa sono:P Sono sempre più convinto che il compilatore c# dovrebbe obbligare a passare la validazione di fxcop prima di creare l'assembly. cos' questi inconvenienti sarebbero molto meno frequenti...
P.S. Ma siamo sicuri che i commenti partecipano a rendere il codice scritto meglio? Io sono di un altro avviso:D
31/08/2006 15.25 | Gianluca Carucci
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Mi associo a Gianluca per il discorso dei commenti: ho trovato sorgenti con commenti che dichiaravano di fare una certa cosa ed il codice sottostante che ne faceva tutt'altra... quindi mai fidarsi dei commenti... nemmeno dei propri :-)
31/08/2006 15.28 | David
Gravatar

# re: Un applicativo Open Source dei primi anni 80

<cit>“Good code is its own best documentation. As you're about to add a comment, ask yourself: «How can I improve the code so that this comment isn't needed?». Improve the code and then document it to make it even clearer.”</cit>

"Code Complete: A Practical Handbook of Software Construction" by Steve C McConnell
31/08/2006 15.31 | David
Gravatar

# Re: Un applicativo Open Source dei primi anni 80

Io dico che se dopo 26 anni devi riscrivere un software ... direi che non era fatto poi cosi' male.
PierG
31/08/2006 17.32 | pgrossi
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Il problema è ovviamente sorto ben prima del 2006.
Già sotto le prime versioni di windows a 16 bit sarebbe stato auspicabile produrre il nuovo software.
Il vero problema è la falsa attrattiva che dà la disponibilità del sorgente. I sorgenti sono molto meno utili di quanto comunemente si creda.
31/08/2006 18.49 | Raffaele Rialdi
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Possedere i sorgenti vuole dire avere la possiilità di leggerli ed accorgersi SUBITO (20 anni fa) che il software è scritto male.
Ma vuole anche dire che ne puoi comprendere la logica ed aggiornalo col passare dei nuovi SO. Dove aggiornarlo può anche voler dire cambiare linguaggio quando quello usato è stato abbandonato ... ovvero GWBasic e Microsoft. Secondo me non doveva solo essere open source il sorgente del tuo programma .... ma GWBasic !!!!!! ;-)
31/08/2006 19.35 | Mauro
Gravatar

# Codice Buono

01/09/2006 0.34 | NicolaCanalini
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Mauro, quello che voglio dire è che closed o open source in molti, tanti, tantissimi casi non fa alcuna differenza. Questo è uno di quelli.
Tutto quello che tu scrivi ha dei costi che sono alti e tali da essere paragonabili a riscrivere il software da specifiche senza avere alcun sorgente in mano.

E poi 20 anni fa il produttore (come fanno ancora tutti) prometteva mari e monti pur di vendere.
Sempre 20 anni fa avere il sorgente sembrava un buon _valore aggiunto_ e questo è stato l'errore più grosso. Il sorgente non valeva un fico secco. Avere la lungimiranza a quel tempo sarebbe stato come conoscere il futuro (evoluzione hardware, software, OS, linguaggi e sistemi di sviluppo).

Mettere le mani in un sorgente di altri è sempre una scocciatura e molte volte non ne vale neppure la pena, tantomeno costituisce una garanzia nel caso il produttore fallisca o si metta a vendere lavatrici.
01/09/2006 0.36 | Raffaele Rialdi
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Sicuro che si tratti di un software Open Source? Perchè il software Open Souce non si acquista...
Non è che semplicemente lo sviluppatore (o la software house) ha rilasciato i sorgenti al cliente?
01/09/2006 2.05 | Matteo
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Di sicuro all'epoca non esisteva neppure il concetto di opensource visto che è della fine degli anni '90 (afaik) e quindi non era certamente quello che aveva in testa la software house.
Però il sorgente non fu venduto, era considerato un valore aggiunto dell'apparecchio visto che di PC ne bazzicavano proprio pochi.
01/09/2006 8.42 | Raffaele Rialdi
Gravatar

# re: Un applicativo Open Source dei primi anni 80

A volte mi chiedo "Cambierebbe se avessi in mano i sorgenti di XP?"
E devo essere sincero li userei per studiarli per vedere come sono implementate alcune funzionalità (sempre che poi uno abbia veramente il tempo per farlo) però nonostante sia anche un sistemista e mi renda conto che in certi casi sarebbe bello avere un funzionalità in più qui e una leggermente diversa là non so se mi imbarcherei nell'implementazione. Idem se se dovessi modificare qualcosa per compatibilità.
Preferisco avere un prodotto che abbia una garanzia di aggiornamento e ampia documentazione e di rapita consultazione se poi ho i sorgenti che ben venga ma le altre due condizioni sono prioritarie, il tempo è denaro nel nostro lavoro e sebbene ogni cosa si possa fare deve purtroppo essere misurata con questo metro.
01/09/2006 12.04 | Alex
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Esatto Alex hai colpito nel segno.
Io (come altri MVP, partner MS e università) ho i sorgenti di Windows XP e 2003 ma lo scopo per cui li uso è per capire meglio come funziona un meccanismo.

Uno sviluppatore può fare dei sorgenti un complemento alla documentazione (come fa reflector per il codice managed). Di qui a dire che sono un valore aggiunto solo perché potrei ricompilarmeli entrando nella testa dei dev che ci hanno messo le mani, ci passano in mezzo mari e monti.

Se un giorno Microsoft dismettesse le TAPI, sarebbe folle pensare di prendere i relativi sorgenti e adattarli per adattarli alle proprie necessità, farli evolvere, testare la compatiblità, etc. etc.
Nel mondo Linux il kernel 2.6 non sta forse mettendo ancora a soqquadro intere software house?

Tempo fa con un collega ho provato a ricompilare openexchange per freebsd. Esperimento fallito totalmente e ci abbiamo rinunciato. Addirittura parti di codice non erano state testate perché delle #define di C++ provocavano la compilazione di porzioni di codice che causavano degli errori.
Il tempo necessario a metterci le mani supera abbondantemente l'acquisto di un prodotto nuovo e di una eventuale migrazione a prodotti alternativi.

Non vedo come una azienda priva di gruppo superesperto di sviluppo (e tanti tanti soldi) possa pensare che un sorgente sia un valore aggiunto. Eppure ci sono persone che vanno fiere di avere i sorgenti degli applicativi che usano anche se non sanno neppure come si leggono.

Lungi però da me di fare di tutta l'erba un fascio.
01/09/2006 13.08 | Raffaele Rialdi
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Raffaele, capisco benissimo il tuo ragionamento, e non posso far altro che NON essere d'accordo.
Cerco di spiegarmi: il fatto che un software sia scritto male, non significa che non sia utile averne i sorgenti. Il fatto che tu non sia stato in grado di capire il codice perchè troppo contorto (o che un altro non sarerebbe stato in grado perchè troppo complesso) non significa che il sorgente non sia utile.
Esempio pratico: io non capisco nulla di medicina, e non capirei la composizione di un medicinale. Lungi da me però il pensare che non sia utile avercela, quella dannata composizione no :-) ?
Detto questo, in un senso filosofico ed assoluto, il fatto di avere i sorgenti permette di capire almeno il perchè di un problema (e di aggirarlo da altre parti), e alle volte di poter addirittura risolvere dei problemi altrimenti non risolvibili, che è quello che per esempio ultimamente mi capita di fare nel web a basso livello, generando blocchi di javascript che, al caricamento della pagina, vanno a cambiare funzioni definite da terze parti in controlli web acquisati.
Tutto questo, ovviamente, in attesa del bug-fixing della casa madre.
In quel caso il sorgente non è "volontariamente" disponibile, ma data la natura di javascript è come se lo fosse ;-) ... quindi credo che il discorso possa essere altrettanto valido.
17/10/2006 20.50 | /
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Il paragone del medicinale non ha senso. La medicina la posso prendere così com'è e la sua composizione esatta (non quella del bugiardino) è inutile tanto al paziente quanto al medico.
Il discorso sul javascript è vero per te che sei sviluppatore. Il problema che ho sollevato (e per cui è tanto di _moda_ l'open source) è che ci sono utenti finali che chiedono i sorgenti così ci possono mettere le mani. Questa è una idiozia totale: il sorgente non è un valore aggiunto per l'acquisto di un software. O se preferisci il suo valore deve essere messo in relazione con la capacità di gestirlo da parte di chi lo acquista (lo faccia fare anche a terze parti o meno non importa).

Comunque non mi aspetto di convincere il mondo su questo, ma solo di aprire gli occhi perché i nostri stessi listati dopo 6 mesi sono molto più oscuri di quanto non si voglia ammettere, figurarsi quelli degli altri.... ;-)
17/10/2006 23.11 | Raffaele Rialdi
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Il paragone del medicinale non era da prendere alla lettera, era solo per dire che si sono cose che, anche se non utilizzabili "comodamente", o "immediatamente", potrebbero essere fondamentali (pensa ai formati proprietari utilizzati eventualmente in istituzioni pubbliche). Piuttosto che non averle, meglio averle e fatte male: ovvio che l'ideale sarebbe un altro.
Per javascript invece non capisco la tua obiezione: dici che è vero per me che sono sviluppatore. Certo, ovvio. Ma anche per l'eventuale cliente, che avendo il codice a disposizione potrebbe farlo eventualmente modificare o riparare (certo, magari anche con parecchie difficoltà) da altri in caso il creatore dovesse sparire, fallire o non so che altro.
Compreresti un'auto della quale non puoi vedere l'interno?

ps: una nota a margine, senza voler fare polemica, senza voler fare il superiore o voler sembrare spocchioso... ma davvero mediamente quando guardi un tuo codice vecchio di 6 mesi ti risulta "oscuro"?
18/10/2006 1.03 | /
Gravatar

# re: Un applicativo Open Source dei primi anni 80

Perché credi che tu veda veramente l'interno della tua auto? La centralina è affogata nella pece, gli integrati sono per lo pìu custom e così anche tutta la parte meccanica.
Credi che con il manuale di servizio dell'auto, potresti viaggiare meglio? Io credo di no.
È evidente che il sorgente sia una attrattiva per noi che siamo del mestiere. Io affermo semplicemente che per un utente non è un valore aggiunto.

Io di codice ne scrivo parecchio e sei mesi sono decine di migialia di codice. Il sorgente vecchio di 6 mesi non è più tanto evidente quanto lo era nel momento dello sviluppo. Ci vuole tempo per rientrare nei ragionamenti di quando l'hai scritto. Tipicamente è proprio grazie alla documentazione e ai diagrammi che rientro nel filo del discorso.
Parlando con tanti sviluppatori un po' tutti mi dicono che bastano poche settimane per dimenticare il perché di tante cose che sono scritte nel listato. Il che a me sembra ovvio perché nelle varie classi usi tante tecnologie differenti.
18/10/2006 1.42 | Raffaele Rialdi

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 5 and 2 and type the answer here:

Powered by: