Studio

Ok, voglio dedicarmi ai “modelli”: e adesso?

Patrizia Favaron Carta, penna, calamaio? Insomma, mica tanto. Oggi, “occuparsi di modelli” (che siano di dispersione in atmosfera, di circolazione a mesoscala, oppure dei sistemi Large Eddy Simulation, o chissà che altro) vuol dire, in concreto, passare una fetta della propria vita davanti ad un computer, scrivendo codice: il vecchissimo modo carta-penna-e-calamaio, oramai, credo si sia estinto da molti decenni. E comunque, obiettivamente, i computer sono molto comodi: quando non esistevano la gente ne faceva a meno, ma i calcoli della meteorologia dinamica o della micro-meteorologia doveva farli lo stesso: con un regolo calcolatore, o una calcolatrice da tavolo, magari direttamente a mano. Ma, avojja. “Usare un calcolatore per scrivere codice”, nel campo delle scienze dell’atmosfera, oggi vuol dire lavorare per lo più in Fortran: qualcosa si fa anche usando altri linguaggi di programmazione, ma davvero poco, e la mia impressione è che le cose resteranno a questo modo ancora a lungo, per le ragioni che dirò in seguito. Animo! “Ouch. Devo imparare il Fortran…” Lo si sente dire, o accennare con sguardi sconsolati, ancora oggi. Leggi in rete, e trovi di tutto, ricavandone per lo più l’impressione che imparare il Fortran invece, che so, di Python o C++, sia una condanna a morte, la strada certa a doversi rassegnare alla disoccupazione, o peggio. Che il Fortran è irriducibilmente e irrecuperabilmente vecchio, e che la sola lettura di un manuale che lo riguardi comporti la comparsa di numerosissime rughe. Chissà, forse per un programmatore le cose stanno davvero così. Ma la realtà è che la persona che si occupa di modellistica e usa il Fortran per scrivere codice non è un programmatore. Il mestiere del programmatore informatico è di realizzare applicazioni, sistemi operativi, algoritmi contabili, persino sistemi IA. Ma la maggior parte di queste attività, oltre alla necessità di scrivere codice, ha in comune altre cose interessanti: Quindi, la prossima volta che un amico nerd tenterà di sommergerti con un panegirico a favore di Rust, o di qualche altra novità informatica, potrai rispondere con un’alzata di spalle e dirgli “Ma mica sono una programmatrice, io.” E lasciarlo nel suo brodo a sbollire, o indurlo a cercare qualche altro programmatore con cui attaccare bottone e fare allegramente a cornate (non chiedetemi il perché, ma in quella comunità va spesso a finire così, e non solo tra i maschietti). Un addendum: quanto a me, l’ho scampata bella. Quando mi sono laureata in matematica i computer esistevano già. Persino quelli personali! Solo che, paragonati anche solo al più scarso dei cellulari di oggi, facevano davvero poco. E per ottenerne qualcosa di utile si doveva, di tanto in tanto, ricorrere all’Assembly, protagonista di horror stories anche più pittoresche di quelle che riguardano il Fortran. Al liceo, però, ricordo benissimo quando il nostro prof di matematica ci faceva tracciare per punti il grafico delle funzioni che ci aveva dato da studiare: “Sì, sì, derivate, minimi, massimi. Ma come fate a sapere che non avete sbagliato?” (In effetti…) Piccolo dettaglio: provaci, a determinare i valori di una funzione del tipo di “tanh(pi*x/exp(-sin(pi*x/4)))” con una calcolatrice: ti troverai più o meno nel mezzo della scena clou del film “Il diritto di contare”, in cui le signore del Reparto Ingegneria fanno i calcoli con assordanti calcolatrici elettromeccaniche, ai tempi in cui la parola computer designava un mestiere. Però, le storie dell’orrore che si trovano in rete sono sempre lì, e… Tutta una questione di spelling?! E, che dire. Spezzoni di codice come B = 0.0 IF(X-A) 10, 10, 20 10 B = A – X 20 B = -B proprio proprio belle, e comprensibili… Solo che questo non è il Fortran, ma il FORTRAN. Quello, per intenderci, di quando ero bambina io. Con le righe che cominciavano dopo sei spazi. Le etichette. Le linee di continuazione con un carattere non-spazio nella prima posizione. Gli IF aritmetici. Gli statement DATA, EQUIVALENCE, e robe così. Poi nel 1990 (in realtà un po’ prima) il linguaggio si è evoluto, ha abbandonato il “formato fisso” a favore del “formato libero” (però, se sei masochista, nulla ti impedisce di usare il formato fisso di una volta, o di piantarti il bisturi nella coscia come il Dottor Frankenstin se per quello). E questo, solo trentacinque anni fa! Negli anni successivi il Fortran è andato incontro ad una evoluzione relativamente rapida, che lo ha arricchito dell’estensione per la programmazione a oggetti, e di numerose novità legate per lo più alla programmazione parallela. Nel frattempo ha anche cambiato nome: da FORTRAN è divenuto Fortran (che qualcuno chiama Modern Fortran). Solo che molte persone della Vecchia Guardia (ehm, la mia…) non lo ha saputo. In effetti nessuno glie lo ha detto. E chissà, molte di loro ancora ricordano benissimo i tempi in cui per mettere le mani su un calcolatore dovevi essere, minimo minimo, professoressa ordinaria – ed anche in quel caso i Tecnici ti guardavano con un’espressione tra il preoccupato e il sospettoso. Non poche delle persone che si erano laureate a quei tempi hanno, poi, conservato il disgusto provato da cucciole e cuccioli per tutta la vita. Proprio mentre sto scrivendo queste righe, in parallelo (o insanità profonda del multitasking, e un accidente a colui che ha detto certe persone esservi più portate d’altre: la verità è che il multitasking nobilita chi non ne fa) sto scrivendo la prossima versione di un sistema eddy covariance in tempo reale, e, guarda un po’, sto usando il Fortran. Non su qualche polveroso mainframe dei tempi andati, ma su un “umile” Raspberry Pi 5 (‘nzomma, umile: surclassa da tutte le parti il Mitico CRAY X-MP del Cineca di Bologna, il supercomputer cui Pochissimi Eletti potevano accedere quando ero studentessa io – per inciso e doverosa completezza d’informazione, io no). Perché uso il Fortran? Potrei adoperare altri linguaggi (qualcuno lo conosco, Python, R, C/C++, persino un po’ di Rust), ed in alcune aree dello sviluppo del sistema certamente farei più in fretta. Ma, problema: un “sistema Eddy Covariance” non è un normale registratore di dati (per quello avrei

Ok, voglio dedicarmi ai “modelli”: e adesso? Leggi tutto »