Chi non usa il computer prema subito questo
bottone prima di addormentarsi
Hanni e il computer Hanni and computers
Mi e' sempre piaciuta la scienza e non la tecnica. Non mi sono mai entusiasmato per come
funziona la mia automobile o la mia radio e quando sul mercato comparvero i primi PC
che consideravo ( e lo sono ) macchine calcolatrici ipertecnologiche, li odiai senza neanche
conoscerli. Non li mettevo neppure un istante in connessione con qualcosa che invece,
da appassionato di fantascienza, mi affascinava, e cioe' la AI intelligenza artificiale e la
VR realta' virtuale.
Ancora oggi, anzi oggi men che meno, non so rimediare al minimo guasto Hardware, ho
difficolta' a inserire una nuova scheda nel PC, ma e' anche vero che si puo' essere bravi
a guidare un'automobile o un aereoplano senza essere dei meccanici.
L'argomento che segue e' solo per chi capisce qualcosa di informatica. Gli altri cadranno
addormentati dopo le prime righe, quindi e' meglio che smettano qui.
Uno dei primi usi dei computer fu il calcolo degli orbitali dell'idrogeno, una cosa di cui
potevo parlare ai miei studenti, ma che non potevo mostrare. Con le calcolatrici tascabili
i calcoli erano troppo lunghi e noiosi. Cosi' decisi di sacrificarmi ed acquistai uno SPECTRUM,
un aggeggetto grande quanto il palmo di una mano che si poteva collegare al televisore
e a un registratore a cassette. Il televisore funzionava come monitor e il registratore
come memoria di massa, cioe' come un dischetto floppy. La ROM dello Spectrum era di
soli 15 Kbyte ma era fatta in modo cosi' geniale (piu' tardi imparai il linguaggio assembler
Z80 e misi le mani su un esemplare di manuale della ROM) che permetteva di fare gia'
quello che i computer Olivetti o IBM facevano, con in piu' la gestione dello schermo a
colori! So che esistono ancora patiti dello Spectrum che si scambiano programmi o
simulazioni dello Spectrum stesso ma non sono un archeologo e appena ho potuto
sono passato a un PC IBM piu' evoluto. Il genio dello Spectrum nel frattempo aveva
mandato tutto in malora investendo tutte le sue risorse in due progetti: un orologio
da polso-televisore e un triciclo da citta' aperto!.
Comunque c'era un semplicissimo manualetto con nozioni del linguaggio BASIC
supportato dallo Spectrum che era quasi uguale a quello IBM.
Fu l'inizio di una passione. Non sapevo staccarmi dal computer se non a tarda notte.
Programmavo gli orbitali si, ma anche un sacco di giochini e perfino la simulazione
di una centrale nucleare sotto forma di gioco che poi addirittura fu usata in un
congresso di ingegneri nucleari. . La parola magica era: simulazione!
Lo Spectrum era comunque lento specialmente nella grafica. Allora un programma scritto
in Basic veniva letto dalla macchina e tradotto in istruzioni riga per riga (interprete).
Oggi invece i linguaggi di programmazione evoluti (anche il Basic) usano compilatori
che leggono il programma e lo trasformano in file eseguibile .exe
C'era un modo per accelerare le cose e cioe' usare il linguaggio macchina.
Questo si poteva fare inserendo sequenze di numeri in formato binario, e ogni sequenza
corrispondeva a un'istruzione, o in formato esadecimale piu' comodo. Sono arrivato
a fare questo anche se per piccole routines, mentre per le piu' grandi gia' esisteva il
linguaggio assembler piu' lontano dai numeri e piu' vicino al linguaggio umano, ma
sempre molto distante dai linguaggi evoluti tipo Basic, Pascal, o C.
Quindi imparai l'assembler per lo Spectrum, poi quando passai ai computer IBM
dovetti passare all'assembler Microsoft (MASM) gia' molto piu' potente.
Imparai anche linguaggi come il LOGO, il PROLOG, il Pascal, il C++ .
Cosi' mi sorbettai manuali di informatica che avrebbero sconfitto la
piu' invincibile insonnia di questo mondo e dovetti vedermela con la mentalita' degli
ingegneri Microsoft, che scrivono manuali pessimi. Infatti, come tutti gli ingegneri,
scrivono pensando di essere letti non da utenti normali, ma esclusivamente da ingegneri.
Con l'aumentare della velocita' dei computer usai sempre di meno le routines in assembler
finche' finii per programmare solo in BASIC, sotto forma di Turbo-Basic, Quickbasic e
Visual Basic.
Assemblai tutti i programmi di chimica che andavo facendo insieme a diversi giochini
in un istituto virtuale di chimica dal titolo: "CHIMICA!" concepito per vari livelli
di apprendimento fino a quello universitario.
CHIMICA! e' stato usato con soddisfazione dai miei studenti per vari anni.
La sua prima versione fu anche commercializzata, ma non ci sono diventato ricco,
soprattutto per la resistenza (e in parte per l'impossibilita') degli insegnanti di chimica
di allora (e anche di adesso!) a servirsi del computer.
Ora sono in pensione e ho smesso di sviluppare "CHIMICA!".
Inoltre ho scoperto che l'ultima versione di Windows, Windows xp,
non e' piu' completamente compatibile con CHIMICA! e con altri programmi
MS-DOS, a meno di non confomarla previamente allo scopo.
La Microsoft scarica e uccide i suoi figli piu' vecchi!
Cosi' ho lasciato praticamente perdere la programmazione, tanto non ho piu'
bisogno di CHIMICA!.
Guardando indietro a tutto questo lavoro, posso dire che e' stato creativo, ma
troppo dispendioso in termini di tempo, tempo che avrei potuto spendere meglio
a disegnare e scolpire, tanto per dirne una.
Il sito in cui siete ora l'ho fatto usando un normale web-editor, un programma di
trattamento di foto e un animatore di immagini GIF, ma naturalmente tutto questo
non ha nulla a che fare con la programmazione.
Ho pensato qualche volta di imparare il linguaggio di programmazione JAVA per
progettare siti WEB, ma siccome in realta' non ne ho bisogno ho lasciato perdere.
Sto invece sbirciando il linguaggio JAVASCRIPT che sta al JAVA un po' come il
vecchio Basic interpretato sta al Quickbasic compilato. Infatti il codice che si trova scritto
nella pagina web o in una di riferimento, viene letto e interpretato dal browser che se trova
errori li segnala ( di solito ).
E' una roba strana, pero' divertente , e' orientato un po' alle funzioni, un po' agli oggetti.
Come struttura tende ad assomigliare al C ( piu' probabilmente al Visual C che non conosco).
Non ho un manuale, ma ho scaricato qualche lezione degli infiniti corsi che si trovano, quasi tutti
gratis, sul web.
Un grosso problema e' la compatibilita' con i vari browsers. Il migliore sembra Explorer 5 o 6
della Microsoft. Le versioni precedenti non supportano molte cose. Anche Netscape non e'
del tutto compatibile e possiede ulteriori funzioni diverse. Percio' il programmatore
professionista ha la vita complicata perche' deve tener conto di tutte le incompatibilita'
e quindi allungare di molto l'intestazione dei suoi codici.
Con il Javascript ho fatto qualche piccola animazione di questo sito e apportato migliorie alla
visualizzazione delle immagini che non si potevano ottenere con il semplice HTML.
Sto facendo anche qualche giochino per passare il tempo. Vedi la pagina precedente.
I miei programmi sono compatibili con Explorer versione 5 e oltre e basta. Se avete Netscape
con tutta probabilita' non funzioneranno.
Invece non ho mai voluto imparare l'HTML. Ne so qualcosa perche' basta sbirciare la sorgente delle
pagine web. Si tratta essenzialmente di una visualizzazione di oggetti, come immagini o scritte,
a cui si possono collegare riferimenti ad altre pagine o altre immagini. Sia Java che il Javascript
lavorano anch'essi sugli oggetti della pagina ma in modo piu' interattivo.
NOTA. CHIMICA! e' formato da files eseguibili .exe e pertanto non ho potuto
inserirli in questo sito perche' LIBERO non li supporta per paura di
infezioni virali. Chi fosse interessato puo' farne richiesta a catalucci@libero.it .
E' un software di dominio pubblico concepito per studenti di lingua italiana
Contiene comunque una versione in inglese della simulazione della centrale
nucleare ("Power Station Crackital 1") e del gioco del poker ("Catpoker").
Il pacchetto occupa circa 170 MB
Appendice: COME FAR ESEGUIRE AL COMPUTER L'ADDIZIONE 2+3 ED OTTENERE IL RISULTATO SULLO SCHERMO:
- Assembler Z80: Assembler 8086/8088 C
go stack segment stack main ()
org 50000 dw 128 dup(?) {
push af stack ends int a, b, c;
ld a, 2 code segment a = 3;
add a, 3 somma proc far b = 2;
add a, 48 assume cs: code, ss: stack c = a + b;
rst 16 push ds printf ("10%d", c);
pop af mov ax, 0 }
ret push ax
finish mov al, 2
add al, 3
add al, 48
mov ah, 14
int 10h
ret
somma endp
code ends
end
FORTRAN PROLOG PASCAL
PARAMETER ( A = 2 ; b = 3) predicates PROGRAM SOMMA
C = A + B somma var
PRINT * C goal a, b, c : integer;
END somma b := 2;
clauses a := 3;
somma if c := a+b;
RISULTATO = 3 + 2 writeln (c);
write (RISULTATO) end.
LOGO BASIC VISUAL BASIC
TO SOMMA PRINT 2 + 3 PRINT 2 + 3 (*)
PRINT 2 + 3
END
JAVASCRIPT
<script>
var a=2;
var b=3;
var c=a+b;
document.write(c.toString());
</script>
____
* In Visual Basic il Form dove viene scritto il risultato deve avere la proprieta' Autoredraw impostata su: True altrimenti non visualizza.