Sviluppo software - Ratto.Eu

Vai ai contenuti

Sviluppo software

"Sono convinto che l'informatica abbia molto in comune con la fisica.  Entrambe si occupano di come funziona il mondo a un livello abbastanza  fondamentale.
La differenza, naturalmente, è che mentre in fisica devi  capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i  confini del computer, sei tu il creatore.
Controlli – almeno  potenzialmente – tutto ciò che vi succede. Se sei abbastanza bravo, puoi  essere un dio. Su piccola scala."
Linus Torvalds (che ha sviluppato la prima versione del kernel Linux)   
nel suo libro "Rivoluzionario per caso - Come ho creato Linux (solo per divertirmi)"
presente nella mia libreria
"Ogni buon lavoro software inizia dalla frenesia personale di uno sviluppatore..."
Eric Steven Raymond nel suo testo "La cattedrale e il bazaar" anch'esso presente nella mia libreria
In questa pagina riporto i linguaggi di programmazione che ho utilizzato (qualcuno di più, qualcuno di meno) in passato, quando ancora programmavo
Li conservo gelosamente come delle reliquie: mi ricordano notti e notti a scrivere linee di codice ma anche molte soddisfazioni...
In pratica la programmazione dei computer ha sostituito in un colpo solo due miei hobby precedenti: l'elettronica e l'enigmistica
Mi sono anche occupato di hardware ma più che altro "per fare di necessità virtù"
In effetti quest'ultima affermazione non è del tutto vera in quanto proprio mentre sto realizzando questo sito, utilizando MS VB.NET 2010 Express sto sviluppando un programma autoconfigurante di salvataggio automatico dei dati di un profilo utente di Windows presente sul pc locale verso un server di backup ottimizzandone contemporaneamente il trasferimento degli stessi per velocizzarlo il più possibile mantenendolo però il più user friendly possibile; non trovando in internet un applicativo che rispondesse pienamente ai requisiti che volevo, ho deciso di riprendere su la tastiera e di farlo io ma penso però che la cosa non si ripeterà più: si tratta di uno sfizio
Oppure magari riprenderò a programmare quando sarò in pensione utilizzando qualche linguaggio inusuale tanto per divertirmi un po'
Mi incuriosisce il linguaggio Euphoria, oppure un qualche linguaggio di programmazione esoterico, magari qualcuno di quelli elencati in questa pagina di Wikipedia
Aggiornamento: nel frattempo il programma è operativo; basta lanciarlo senza necessità di configurarlo e lui si trova i dati utente, decide su quale share di rete salvarli ed effettua un aggiornamento eseguendo un mirror (quindi spostando via rete solo i dati che sono variati rispetto la precedente istanza); per recuperare i dati dal backup nella interfaccia utente è presente un pulsante sul quale fare clic per aprire Esplora file già puntato sulla cartella di backup; come bonus gli utenti possono accedere da tutta Italia e non solo ai propri ultimi dati salvati sul server per recuperarsi eventuali files memorizzati sul loro pc che gli servissero anche se quest'ultimo fosse spento

Aggiornamento dell'aggiornamento: a seguito della dismissione del server che era utilizzato dall'applicazione ero intenzionato a non migrarla verso il nuovo dato che seppur funzionante lo avevo lasciato ad uno stadio da considerarsi poco più che un Proof of concept, però avendo ricevuto dai beta tester la richiesta di mantenerlo operativo, lo trasferirò previa verifica della sua compatibiltà con i nuovi Sistemi Operativi Client e Server; a seguito di ciò ho inserito anche la citazione di Raymond aggiungendola a quella di Torvalds
Ulteriore aggiornamento: ho scoperto che un noto produttore di hard disk ha iniziato a fornire alcuni modelli di dischi esterni usb con un programma anch'esso denominato "Autobackup". Dovrò considerare se sia il caso di cambiare nome al mio "AutoBackup" pur essendo stato, per quanto ne possa sapere, da me utilizzato in precedenza al suo; ma questo solo perchè il suo ufficio legale è certamente migliore del mio...
Ultima cosa prima di elencare foto e commenti dei linguaggi di programmazione che ho utilizzato, segnalo che in rete gira un documento dal titolo "How to recognize a good programmer" ("Come riconoscere un bravo programmatore") di Daniel Tenner in cui elenca gli indicativi positivi e negativi che differenziano un buon programmatore e che riporto di seguito, incluso ulteriori tre positivi aggiunti da Giuseppe Cubasia nel suo articolo su Punto Informatico, articolo da dove ho reperito l'elenco. Invito a leggere integralmente il suo articolo accessibile a questo link
Indicatori positivi
Indicatori negativi
- Passione per la tecnologia
- Programma come se fosse un hobby
- Ti parlerà di un soggetto (prob. "progetto") tecnico se incoraggiato
- Significativi progetti personali realizzati
- Impara da solo nuove tecnologie
- Ha una sua opinione su quale tecnologia sia migliore a seconda dell'uso
- Lavora a malincuore su una tecnologia che disapprova
- È chiaramente svelto, è un piacevole conversatore su una grande quantità di
  argomenti
- Ha iniziato a programmare molto prima dell'università
- Oltre a quanto detto nel CV, ha realizzato grossi progetti che non menziona
- Conosce un sacco di tecnologie, anche se non lo dice nel CV

Indicatori aggiuntivi:
- Quando mancano gli strumenti adatti per fare qualcosa, se li crea da solo
- Porta sempre a casa un risultato, a costo di rimetterci personalmente
- Difficilmente fa quello che gli si dice di fare, in genere fa molto di più

- Programmare è un lavoro a giornata

- Non parla di lavoro, anche quando incoraggiato

- Impara nuove tecnologie nei corsi pagati dall'azienda

- Lavora felicemente con qualsiasi tecnologia voi adottiate

- Non sembra "sveglio"

- Ha iniziato a programmare all'università

- Tutto il suo lavoro da programmatore è nel CV

- Conosce solo una o due tecnologie.

I primi libretti riguardanti la programmazione che ho letto, relativi al Commodore PET e al CP/M

Mi ricordo anche un libretto relativo ai comandi del Sistema Operativo PCOS dell'Olivetti M20 ma che non trovo più

Non avevo la disponibilità delle relative macchine, quindi il tutto rimaneva su un piano strettamente teorico ma è da essi che mi sono reso conto che lo sviluppo di software era una attività molto interessante e affascinante

Nel 1980, come ho scritto in home page, in un concorso al quale ho partecipato erano anche richieste nozioni generali sull'informatica e la dispensa consigliata era questa; notare che era redatto con la macchina da scrivere con annotazioni a mano e poi ciclostilato: altro che word processor e stampanti!

Il manuale di programmazione del mio primo computer, il Sinclair Zx Spectrum

Questo libro era molto esauriente e chiaro; il Sinclair BASIC era un linguaggio ben fatto con il quale mi trovavo a mio agio

Oltretutto lo schermo era gestito nativamente in modalità grafica e non in modalità a caratteri e il linguaggio comprendeva le istruzioni grafiche, senza bisogno di utlizzare artifici o acquistare espansioni varie

Su questo home computer mi sono anche divertito a programmare un po' in linguaggio macchina del processore Zilog Z80 utilizzando l'assembly.

Potevo anche caricarci un ambiente Forth, linguaggio che mi piaceva abbastanza

Questa macchina è stata una buona palestra; l'ho utilizzato molto ed imparato molto

Con il MSX BASIC di cui era fornito il Sony Hit-Bit 75p che ho comprato dopo lo ZX Spectrum non ho fatto niente; un po perchè non c'era feeling e un po' perchè sono passato praticamente subito ad un PC-IBM compatibile per poter usufruire dei floppy disk anzichè del registratore a cassette

L'interprete MS GW-Basic, presente nei pc ibm compatibili che utilizzavano il DOS;

usato abbastanza anche in unione ad un compilatore che partendo dai sorgenti in GW-Basic generava dei file eseguibili ma del quale non mi ricordo il nome

Naturalmente sotto DOS scrivevo anche degli script batch (i file .bat)

Il compilatore Ms Quick Basic versione 4.5, utilizzato abbastanza

Il Clipper, appartenente alla famiglia dei linguaggi xBase, che ho usato prima nella versione Summer 87 e poi nella versione 5.2 e al quale sono arrivato direttamente senza passare dall'applicativo dBase III, come di solito accadeva

Usato moltissimo e con il quale ho fatto qualsiasi cosa, unendolo alle librerie grafiche dGE e con il linker Blinker

Era un linguaggio molto "furbo" nel senso che aveva comandi / funzioni notevoli che ad esempio rendevano facilissima la gestione degli indici (del tipo ad alberi binari bilanciati B-Tree e quindi particolarmente ottimizzati e veloci) dei data base anche con chiavi complesse; molto duttili e ben implementate anche le mask edit unita anche alla possibilità di attivare un collegamento dei campi di input dei dati ad una funzione ad hoc per validare il dato inserito; anche l'implementazione di menu, anche a tendina, era facilitata (non c'erano ancora i linguaggi visuali che fornscono questi oggetti già fatti: all'epoca occorreva costruirseli e gestirli)

Questo linguaggio l'ho usato moltissimo e non ho più trovato un altro che mi piacesse così tanto

Il linguaggio Clipper esiste ancora, sia in progetti liberi che commerciali (ad esempio Harbour o xHarbour), che in genere forniscono in uscita un sorgente in linguaggio C da dare in pasto a vari compilatori in modo di ottenere un file eseguibile

Notare la notevole manualistica in formato A4 fornita con il compilatore (anche se tecnicamente non era tale in quanto gli eseguibili contenevano del PCode), naturalmente in inglese

Compilatore del linguaggio Borland Turbo C++; l'ho usato poco

Compilatore del linguaggio Borland C++, anch'esso usato poco

Notare anche qui la ricca documentazione: ricordo che durante il trasporto della confezione dato il peso dei manuali si era rotta la maniglia: allora per fare lo sviluppatore di software ci voleva anche il fisico... ora sta tutto in un cd o addirittura on-line su internet

Linguaggio Borland Delphi 2 Desktop, praticamente mai usato

Non ho avuto mai feeling con linguaggi tipo Pascal e successori, fin dai tempi dello ZX Spectrum

Linguaggi Borland Visual dBase 7 Professional e Borland JBuilder 2 (in effetti questo è più un IDE per lo sviluppo di programmi in linguaggio Java), che ho usato poco o niente

Compilatore MS Visual Basic 6 Professional; usato abbastanza

Ambiente di sviluppo MS Visual Studio .NET Professional; usato poco perchè poi ho smesso di sviluppare software

Torna ai contenuti