Newsgroup: it.scienza.fisica
Titolo: Fortran a Fisica!

Da poco ho iniziato lo studio del linguaggio di programmazione Fortran (77 e
90). Mi chiedp perchè venga ancora insegnato tale linguaggio nei corsi di
laurea ion Fisica mentre nei corsi di Ingengeria viene adottato il C++.
Personalmente non so quale sia migliore.....ma, visto che all'ITIS che ho
frequentato alle superiori ho imoparato elementi di C++ volevo sapere quali
sono le principali differenze tra i due (a parte il fatto che il Fortran non
è in brado di disegnare funzioni).
                                Grazie
P.S: Esistono facoltà di fisica in cui cengono utilizzati altri linguaggi?

 writes:
AS> Da poco ho iniziato lo studio del linguaggio di programmazione Fortran
AS> (77 e 90). Mi chiedp perchè venga ancora insegnato tale linguaggio nei
AS> corsi di laurea ion Fisica mentre nei corsi di Ingengeria viene
AS> adottato il C++.
Il FORTRAN e` tutt'ora il  leader indiscusso nella programmazione in cui si
effettuano   calcoli   numerici   (non   per  niente   significa   "FORmula
TRANslator"), ed i compilatori FORTRAN  77 -- con l'eccezione di quello MS,
di cui  ho sempre sentito  parlar male (poco efficiente,  non perfettamente
conforme allo standard,  ecc.) -- sono ormai cosi`  ottimizzati e senza bug
che in  pratica non li si  tocca nemmeno piu`,  se non a livello  di inter-
faccia utente.
Il Fortran 90 non lo conosco bene, ma e` un pesante rimodernamento per con-
sentire di usare la programmazione strutturata (e un layout del codice meno
rigido) salvando al contempo  l'enorme quantita` di librerie e applicazioni
disponibili.
Se ti interessa, anche a  Ingegneria viene ancora insegnato il Fortran (non
in tutti i corsi di laurea, magari) e piu` di qualche applicazione richiede
di  avere un compilatore  FORTRAN a  disposizione (FEM,  Ricerca Operativa,
analisi dei segnali...)
AS> Personalmente non so quale sia migliore.....ma, visto che all'ITIS che
AS> ho frequentato alle superiori ho imoparato elementi di C++ volevo
AS> sapere quali sono le principali differenze tra i due (a parte il fatto
AS> che il Fortran non è in brado di disegnare funzioni).
Hanno campi  di applicazione  diversi: ciascuno nel  suo e'  "il migliore";
usare il C++  per calcolo numerico e il FORTRAN  per le interfacce grafiche
e` un assurdo.
Saluti,
Luca Polo.
-- 
  |~~~~~~~~~~~~~~~ 
Luca...@gest.unipd.it
  (
http://www.gest.unipd.it/~jake
)
  \_________________________________________________________________________
   Associazione Astrofili del Basso Vicentino "Edmund Halley" - Sossano (VI)
 
http://www.gest.unipd.it/~jake/aabv
 o 
http://astrolink.mclink.it/ass/aabv

 P.S: Esistono facoltà di fisica in cui cengono utilizzati altri linguaggi?
La storia del Fortran che non e' capace di disegnare funzioni non l' ho capita.
A parte questo, non credo che il fortran sia ancora l' unico linguaggio
che si insegna a fisica, anche se non ho dati statistici.
Tuttavia posso dirti qual' e' il mio punto di vista sulla questione.
Prima di tutto, escludo che ci possa essere *il linguaggio migliore* in
assoluto. Ogni linguaggio ha pro e contro e soprattutto un settore di
applicazioni per cui e' piu' appropriato.
Il fortran e' stato tra i  primi linguaggi di programmazione di alto
livello ad apparire. E' nato per permettere di programmare algoritmi
numerici nel modo piu' vicino possibile alla loro descrizione matematica.
Col tempo sono nati, evoluti, e in alcuni casi scomparsi, molti altri
linguaggi. Il fortran, con varie vicissitudini, e periodiche predizioni
di morte, e' sopravvissuto fino ad oggi nella sua attuale incarnazione
del fortran 90/95. Per lo scopo per cui e' nato direi che ha sempre
raggiunto lo scopo. 
Il C++ e' un linguaggio con una notevole flessibilita' che puo'
tranquillamente essere usato come alternativa al fortran per scopi
numerici. Qualche piccola differenza, come l' esistenza di un tipo dati
primitivo  COMPLEX in fortran o la possibilita' di indici di arrays
variabili tra estremi qualsiasi o ancora la possibilita' di identificare
la precisione numerica dei tipi float a livello dei nomi delle variabili
per citare alcune, sono dei sintomi della origine formula-oriented del
fortran ma non li considererei dei punti decisivi in favore del fortran. 
Molto piu' condizionante, dal punto di vista numerico e' la sterminata
quantita' di software e librerie di ottimo livello scritte in fortran.
Tuttavia la domanda di "quale linguaggio di programmazione insegnare a
fisica" e' estremamente attuale in questo momento in cui i fisici si
stanno accorgendo che il background informatico fornito in media dal
corso di laurea e' in generale scarso.
La risposta e' estremamente complessa e dipende essenzialmente dalla
risposta a due ulteriori domande: quale dovrebbe essere lo scopo dell'
insegnamento di un linguaggio di programmazione e quanto tempo ci si
puo' dedicare.
In un mondo ideale io vedrei abbastanza bene un insegnamento
"poliglotta" in cui lo studente aquisisca bene gli elementi di un
linguaggio ( nel senso che sappia scrivere un programma funzionante in
tale linguaggio) e capisca altri due o tre linguaggi di programmazione
(nel senso che sappia leggere e capire programmi) in un insieme in cui
ritengo debbano entrare il fortran, il c o il c++, java e un linguaggio
di script (shell, perl, tcl...) inoltre dovrebbe saper utilizzare
linguaggi per elaborazioni simboliche di piu' alto livello tipo
Mathematica, Maple, Macsyma etc.
In questo modo potrebbe specializzarsi nel linguaggio piu' vicino alle
sue necessita' (scrivere in fortran un driver per un' interfaccia con
apparati sperimentali o fare fisica computazionale in Java non mi
sembrano cose ragionevoli) salvo avere tutti gli strumenti per poter
utilizzare lo strumento piu' adatto in ogni circostanza del suo
possibile futuro professionale.
Nel nostro mondo reale, questo programma ideale e' di difficile
realizzazione con un tempo per la preparazione di base che si sta
comprimendo sempre piu'. Soprattutto tenendo conto della necessita' di
fornire, oltre ad un linguaggio di programmazione, anche abbastanza
elementi di conoscenze informatiche (e di analisi numerica) per
consentire un utilizzo reale del linguaggio.
Al momento, qui a Trieste, stiamo tentando qualcosa di meno ambizioso in
questa direzione con due moduli di 8 settimane ( al primo ed al terzo
anno) in cui si danno elementi di informatica pratica, cenni di analisi
numerica, un' introduzione al fortran (77) al C e a Mathematica.
Come e quanto questo funzionera', ve lo potro' dire tra un paio di anni...
Aggiungo anche che ritengo che in un mondo ancora piu' ideale alcuni  di
questi strumenti ( perche'  comunque sono tali) dovrebbero essere gia'
acquisiti prima di entrare all' universita'. 
Ciao
Giorgio Pastore


     Key fingerprint = 0058 45AE B7D3 D603 7D0E  D9B8 26E6 01E0 0912 0D83
sub  2048g/F0A8E667 1999-06-11

laurea ion Fisica mentre nei corsi di Ingengeria viene adottato il C++.
Mah, credo che sia per abitudine e per la sua maggiore semplicita',
nel senso che alla fin fine risulta piu' flessibile!
Joe
-- 
"scambiate un web con  "it.fan.culo", 
il piů becero dei ng, con un Manifesto
pretenzioso."
Prospero Pirotti
Per rispondermi togli la b di troppo.
ICQ #50163220

 P.S: Esistono facoltà di fisica in cui cengono utilizzati altri linguaggi?
Ad esempio a Firenze viene data una infarinatura di C.
--------------------------------------------------------------------------
       -- )     Luca Fini                            Tel: +39 055 2752 307
 ___    |\      Osservatorio Astrofisico di Arcetri  Fax: +39 055 2752 292
/   |   | |-_   L.go E.Fermi, 5 +-----------------------------------------
(___|___//___)  50125 Firenze  /   WWW: 
http://www.arcetri.astro.it/~lfini
 (_)      (_)   Italia        / e-mail: 
lf...@arcetri.astro.it
-----------------------------+--------------------------------------------
                              In a world without fences - who needs GATES?

 binari molto veloci, ottimizzati.
Non sono d'accordo. L' ottimizzazione del compilatore, piu' che dalla
complessita' del linguaggio dipende dalla maturita' dello stesso
(misurata per
esempio in anni-uomo dedicatici). 
Quanto agli aggettivi "semplice" o "grezzo" riferiti al fortran, credo
che ti riferisca al fortran 77. Il fortran 90 lo definirei in molti modo
ma non grezzo o
semplice.
Un' ultima osservazione sull' efficienza (anche per evitare di andare OT).
Con la potenza di calcolo disponibile ormai anche su un PC casalingo,
non direi che questo sia un problema, anche in applicazioni numeriche,
tranne poche eccezioni.
Quello che invece secondo me e' fondamentale e' di tener conto che un
linguaggio di programmazione di alto livello serve agli esseri umani NON
ai computer (altrimenti basterebbe programmare in linguaggio macchina).
Se gli esseri umani sono fisici e i problemi che vogliono risolvere sono numerici
il fortran e' una buona opzione (ma Mathematica potrebbe essere anche migliore)
soprattutto per comunicare tra fisici.
Mi spiego meglio. Se metto a punto un codice di simulazione per il
comportamento di un plasma in linguaggio macchina, la facilita' mia e di
chiunque altro di controllare la correttezza dell' implementazione dell'
algoritmo e quindi la rilevanza dei risultati e' scarsa. Se uso un
linguaggio di alto livello, quanto piu' questo e' strutturalmente vicino
all' algoritmo matematico che voglio usare, tanto piu' facile e' il
lavoro di verifica.
Questo per un fisico e' molto piu' fondamentale di qualsiasi
"efficienza" perche' mette in gioco la riproducibilita' e
controllabilita' dei risultati di calcoli numerici.
Ciao
Giorgio Pastore

 pretendere che consumi poco o che sia semplice da usare, eh!
Sono d'accordo: il vantaggio del fortran e' che la sua semplicita' gli
permette di essere ottimizzato in modo piu' estremo. Non se se e'
ancora vero con i moderni compilatori C/C++, pero'.
Il problema e' che spesso il tempo guadagnato in calcolo lo si perde
moltiplicato per 20 in manutenzione :((
[.....]
Sono anche d'accordo con altre risposte del thread, in particolare mi
sembra che ora come ora sia necessario fornire un background di
programmazione in almeno un linguaggio anche nel quadro di una laurea
in fisica. Ancora piu' importante sarebbe insegnare calcolo numerico,
comunque, al di la' del "dettaglio" di quale linguaggio usare.
Ciao,
Alberto
-- 
Alberto BARSELLA
PGP fingerprint = 13 3F 22 D2 0B 0A D3 25  F1 89 FE B5 82 AD 75 2A
** Beliefs are dangerous. Beliefs allow the mind to stop functioning.
A non-functioning mind is clinically dead.  Believe in nothing... **

Ciao Giorgio Pastore,
 > Non sono d'accordo. L' ottimizzazione del compilatore, piu' che dalla
 > complessita' del linguaggio dipende dalla maturita' dello stesso
 > (misurata per
 > esempio in anni-uomo dedicatici). 
??? non credo. L'efficienza del compilatore (= capacita' di tradurre in LM
il + compatto possibile il sorgente) dipende pesantemente dalla complessita'
del linguaggio.
Ovviamente a parita' di complessita', piu' e' vecchio il linguaggio maggiori
saranno le ottimizzazioni applicate.
 > Quanto agli aggettivi "semplice" o "grezzo" riferiti al fortran, credo
 > che ti riferisca al fortran 77. Il fortran 90 lo definirei in molti modo
 > ma non grezzo o
 > semplice.
del FORTRAN90 ho letto qualcosa, ma non ho mai programmato.
In effetti mi riferivo al 77.
 > Con la potenza di calcolo disponibile ormai anche su un PC casalingo,
 > non direi che questo sia un problema, anche in applicazioni numeriche,
 > tranne poche eccezioni.
un computer arbitrariamente potente non ti solleva dalla necessita' di
trovare un algoritmo efficiente per risolvere il problema.
Questo perche' la differenza tra un algoritmo efficiente e uno no puo'
essere di alcuni mesi nel tempo di esecuzione del prg...
e non e' poco.
Non sempre puoi aspettare che esca la generazione successiva di computer per
risolvere in tempo utile il problema.
 > Quello che invece secondo me e' fondamentale e' di tener conto che un
 > linguaggio di programmazione di alto livello serve agli esseri umani NON
 > ai computer (altrimenti basterebbe programmare in linguaggio macchina).
 > Se gli esseri umani sono fisici e i problemi che vogliono risolvere sono numerici
 > il fortran e' una buona opzione (ma Mathematica potrebbe essere anche migliore)
 > soprattutto per comunicare tra fisici.
si, ok, ma non puoi certo programmare in quickbasic solo perche' e' banale
leggere il sorgente.. eh! :-)
 > Questo per un fisico e' molto piu' fondamentale di qualsiasi
 > "efficienza" perche' mette in gioco la riproducibilita' e
 > controllabilita' dei risultati di calcoli numerici.
si, concordo, ma prima o poi la soluzione la vuoi trovare?
Anzi, meglio prima che poi... :-)


Darth Vader
ICQ: 6486772 | FidoNet: 2:335/801.79
[Darth.Vader(at)TiscaliNetDOTit]
Sondaggio : PORCO DIO!!!
Data inizio sondaggio : 3/11/99
hanno notato : 4
indifferenti : 1

 e` un assurdo.
Non so quale cervellone te lo abbia detto, ma non sono non è vero: è pure
sbagliato.
I 'domini applicativi' di FORTRAN, C e C++ (ma persino del Basic...) sono
perfettamente sovrapponibili. Prova ne è che esistono librerie di analisi
d'immagini o ricerca operativa in ognuno di questi linguaggi.
Semmai, per quanto riguarda l'efficienza, il FORTRAN è senz'altro il
peggiore tra i linguaggi che ho indicato, con il C (seguito da C++) al top
in fatto di performances: molte delle più efficienti librerie di analisi
d'immagine si basano su routine scritte in C, che vengono rese utilizzabili
anche da FORTRAN.
I motivi che sono fonte delle basse performances del FORTRAN sono da
ricercare nella pesante gestione dei 'Passing Parameters', nell'uso di
costrutti un po' troppo lontani dalla macchina per quanto concerne il 'File
Handling' nonché, soprattutto, nell'assenza del tipo di dato 'Pointer to' e
nella pervicacia con cui il FORTRAN si ostina a verificare che gli indici di
array siano entro i limiti dell'array stesso.
Come se non bastasse, la grammatica del FORTRAN è non-Regolare, tipica dei
linguaggi di vecchia generazione come, ad esempio, il COBOL. La ricerca in
questo settore è stata completamente abbandonata, dato che questo tipo di
grammatica risulta in compilatori molto complessi e nell'impossibilità di
adottare metodi di ottimizzazione che la ricerca stessa ha reso molto
efficaci (ed una delle risorse di C e C++).
Il fatto che (in Italia) si continui ad utilizzare il FORTRAN nelle
università è un indice dell'immobilismo e della miopia culturale delle
stesse, tanto che all'estero (vd. Stati Uniti ed Inghilterra) quasi nessuna
università ne fa più uso. In Italia poi ai fisici piace fare anche gli
informatici, mentre all'estero si è più aperti verso l'organizzazione di
progetti di collaborazione che vedono coinvolte facoltà di fisica,
ingegneria informatica, matematica ecc. ecc.
Insomma, il FORTRAN ha fatto il suo tempo... Volete fare la sua fine?
Saluti,
--
------------------------------------------------------
Giampaolo Tomassoni Information Systems Consultant
P.za 8 Aprile 1948, 4 Tel/Fax: +39 (578) 21100
I-53044 Chiusi (SI)  e-mail: 
toma...@geocities.com
ITALY
homepage: 
http://www.geocities.com/Eureka/Park/2209/

Esiste anche MATLAB, decisamente potente ed ottimizzato per il calcolo
numerico (chi fa elaborazione numerica dei segnali lo sa bene).
La mia domanda invece è: ma è possibile che debbano insegnare un linguaggio
di programmazione, per cui basta un buon manuale ed un po' di buona volontà,
e non insegnare a proogrammare (sono cose ben diverse: è la differenza che
intercorre tra la "teoria dei sistemi" e le sue implementazioni pratiche,
come in "elettronica", in "fisica" etc.)?
Fabio

                                 Grazie


 efficaci (ed una delle risorse di C e C++).
Non credo che la grammatica del linguaggio abbai una grande influenza
sull'ottimizzazione, ma e' comunque vero che la ricerca sui compilatori
FORTRAN e' assai limitata a causa del maggiore successo degli altri
linguaggi.
 [ omissis ]
Saluti,
					l.f.


Ciao Alberto BARSELLA,
 > Perche' "zavorra"? Un programma di puro calcolo scritto in C e' tale e
 > quale a quello fortran. Io ho perfino "convertito" uan FFT fortran in
 > C a colpi di "replace string" con emacs!!
mmmmmmmmmmhhhhh, e il risultato era ancora una FFT ? ;-))
Certo che si puo' fare, ma secondo me una semplice traduzione automatica
rischia di vanificare le caratteristiche di un linguaggio.
 > Il problema e' che spesso il tempo guadagnato in calcolo lo si perde
 > moltiplicato per 20 in manutenzione :((
bhe', si... in effetti... fare un grosso programma in FORTRAN secondo me e'
controproducente.
La mia idea oramai e':
scheletro in C/GTK/TCL o altro linguaggio ad alto livello
kernel matematico in FORTRAN
il tutto gestibile e automatizzabile da script (bash, per esempio)
(analisi ripetitive su serie di dati differenti...)
 > sembra che ora come ora sia necessario fornire un background di
 > programmazione in almeno un linguaggio anche nel quadro di una laurea
 > in fisica.
SEMBRA? A me sembra anacronistico NON introdurre un corso di informatica di
base in una universita' di qualsiasi tipo!
C'e' gia' chi parla di "filosofia computazionale".
Quindi consiglierei un corso quantomeno superficiale a tutti.
In una facolta' scientifica poi...
 > Ancora piu' importante sarebbe insegnare calcolo numerico,
 > comunque, al di la' del "dettaglio" di quale linguaggio usare.
infatti. perfettissimamente d'accordo :-)
Molto spesso basta dire che "ha usato il computer per ottenere il risultato"
per stabilire automaticamente che il risultato e' vero, esatto, giusto.
I computer sono bravissimi nel dare i numeri, ma interpretarli e' un arte.
Non puoi mai fidarti ciecamente di quello che "sputa fuori", se non
controlli minimanente gli errori introdotti/commessi.


 
Certo, pero' la mia esperienza con programmi che richiedevano centinaia
di ore su supercomputers e' che i veri miglioramenti di efficienza
(leggi: riduzione del tempo di CPU) vengono quasi sempre da modifiche
negli algoritmi piu' che dai vari livelli di codifica. 
Pero' so bene che tra i fisici il mito del programma "furbo" scritto in
assembler e' duro a morire....
Ciao
Giorgio Pastore

Il Fortran viene ancora usato, anche se meno efficiente del C (non C++) per
due motivi.
E' stato ideato per svolgere applicazioni scientifiche.
La mole di librerie esistenti, (routine di calcolo....) č notevole, rispetto
a quelle esistenti per il C.
Se ti interessa il testo "Numerical Recipes in C" della Cambridge Press č un
interessante raccolta di implementazioni di algoritmi per il calcolo
numerico. Esiste anche la versione in fortran ("Numerical Recipes in
fortran") anzi, č antecedente alla pubblicazione in C.

 linguaggi.
La grammatica di un linguaggio č FONDAMENTALE per l'ottimizzazione.
L'ottimizzazione non č solo un'operazione che si compie sul codice oggetto
generato. Magari fosse cosě semplice. Devi conoscere i tipi di dati
coinvolti ed il loro 'scope', lo scope delle varie porzioni di codice,
stabilire limiti ad eventuali ottimizzazioni di tipo globale, identificare
loop, ecc, ecc, ecc.
Il Fortran ha una struttura che non permette una grande ottimizzazione
contestuale. Per farlo, un compilatore dovrebbe leggersi tutti i sorgenti
che concorrono alla costruzione di un programma (compresi quelli delle
librerie) ed a quel punto fare illazioni sugli scope delle variabili e delle
funzioni. Un compilatore del genere sarebbe molto complesso (e, quindi, piů
incline a sbagliare) ed anche di scarsa utilitŕ, dato che raramente si
dispone dei sorgenti delle librerie che si usano.
Ciao,


 acquisiti prima di entrare all' universita'.
Giusto, ma penso che questa sia ormai la strada: quasi ogni scuola ha
un'aula computer. Al momento vengono poco usate (sopratutto perché mancano
gli insegnanti in grado di trovare gli interruttori dei PC...), ma penso
che, piano piano, ci dovremmo arrivare.


 è in brado di disegnare funzioni).
Nemmeno il C++ e' in grado... per disegnare delle funzioni devi usare
delle librerie grafiche.
Ciao
Alessandro
-- 
"Anything created must necessarily be inferior to the essence of the creator."
                -- Claude Shouse
"Einstein's mother must have been one heck of a physicist."
                -- Joseph C. Wang

> banale leggere il sorgente.. eh! :-)
Quickbasic, banale da leggere ??? Sara` questione di formazione, ma se c'e`
un linguaggio per me illeggibile questo  e` il BASIC (dopo il COBOL, ovvia-
mente :-)).
...
GP> Certo, pero' la mia esperienza con programmi che richiedevano centinaia
GP> di ore su supercomputers e' che i veri miglioramenti di efficienza
GP> (leggi: riduzione del tempo di CPU) vengono quasi sempre da modifiche
GP> negli algoritmi piu' che dai vari livelli di codifica. 
Quello che ripeto anch'io almeno una volta al mese al tesista di turno (con
tesi  nell'ambito della Ricerca  Operativa) che  ci chiede  se non  si puo`
espandere  la  RAM e/o  avere  una  macchina  piu` veloce  perche'  ottiene
messaggi di memoria esaurita, il programma deve girare per giorni, ecc.
I dialoghi sono piu` o meno cosi` (scusate la deriva, ma...):
T.: si puo` avere piu` memoria ?
Io: perche' ?
T.: sto facendo girare un programma e mi da` "memoria esaurita"...
Io: (so gia` come  va a finire) che dimensione ha il  problema ? Guarda che
    gli algoritmi che  usate voi di solito hanno  complessita` cubica, come
    minimo...
T.: ma e` solo un problema 10 x 20... 
Io: ARGH!!   (Nota: questo non vuol dire che  sta lavorano con 10*20  = 200
    elementi, ma --  stando al suo relatore --  con 10^20 elementi... segue
    spiegazione in poche  parole di dove sta sbagliando;  ah, quando poi il
    problema e`  semplice, prendono l'approccio ricorsivo, che  e` si` ele-
    gante, ma esaurisce lo stack ed e` *molto* piu` lento...).
.... dopo qualche tempo ....
Io: (al relatore) ma quand'e`  che smetterete di insegnare calcolo numerico
    a degli ingegneri *gestionali* e non gli insegnate invece qualcosa sul-
    la complessita`  computazionale degli algoritmi, almeno nel campo della
    R.O. ?
Ricominciate il dialogo  da capo con un altro (o  anche lo stesso) tesista,
con cadenza piu` o meno quindicinale...
Da notare che la macchina "lenta" e  con "poca RAM" e` una Sun Ultra 60 con
CPU da 360 MHz,  512 MB di RAM (piu` 1 GB di  swap) e dischi UW-SCSI... con
una macchina cosi`, ottimizzare il  codice serve a poco: bisogna ragionare,
e non  poco, sugli  algoritmi (tanto piu`  che la versione  di "produzione"
deve poi  girare in azienda  e non certo  su una macchina della  stessa po-
tenza, ma su un normale PC, magari gia` datato...).
GP> Pero' so bene che tra i fisici il mito del programma "furbo" scritto in
GP> assembler e' duro a morire....
Sempre meglio del programma "furbo" scritto in Visual Basic... :-)


 
Ultimo messaggio su questo thread ( per le guerre di religione tra
linguaggi non ho interesse ):
Il fortran odierno e' il fortran95. Il f95 prevede "built-in"
espressioni che facciano riferimento a tutto un array (matrici incluse)
per rappresentare i prodotti
"per componenti". Tutto il controllo "built_in" nel linguaggio sulle
precisioni dei vari tipi dati andrebbe implementato "in casa" in C++.
Comunque, se invece di ragionare in astratto qualcuno vuole discutere
dei pro e contro di  implementazioni di problemi di fisica
computazionale in C++ e f95 sono interessato. A patto pero' di parlare
di f95, NON di antenati dello stesso!
Ciao 
Giorgio Pastore

 Fatelo in Fortran, e poi riparlatemi di leggibilità!
In Fortran hai la stessa leggibilita', senza dover utilizzare alcuna
libreria.
Ciao,
Alessandro

 di f95, NON di antenati dello stesso!
Percarità. Come se il buongiorno non si vedesse dal mattino...
Buon Fortran,
PS: Sei mica docente?


 argomento anche degli array.
É vero, hai ragione: mi stavo riferendo a versioni più vecchie del Fortran.
Ma non lo puoi generalizzare. Voglio dire, non puoi crearti un tipo di dato
'vattelappesca' ed operare su quello con gli operatori aritmetici base.
In C++, invece, lo puoi fare. Per di più, il parser del C++ resta molto
semplice, mentre quello dell'F95 è senz'altro molto più complesso, perché le
'keyword' sono aumentate.
Inoltre, direi che l'F95 sta utilizzando molte idee che sono state diffuse
in ambiente C, come i puntatori ed il concetto di modulo. Direi che è un
fatto, quindi, che il Fortran si muove verso territori tipici del C i quali,
francamente, mi paiono a lui un po' alieni.
Insomma, che senso ha continuare ad utilizzare il Fortran se gli
intendimenti del Fortran sono quelli di somigliare sempre più al C++? E se
questa tendenza dovesse aumentare, quanto tempo ci vorrà prima che il
Fortran si adegui al C+++?


 Fortran si adegui al C+++?
Potrebbe anche accadere l'opposto... probabilmente, tra qualche anno
sara' possibile trovare sul mercato computer a basso costo con 4 e piu'
processori, e le macchine con una sola CPU diventeranno sempre piu' rare.
A quel punto, e' facile ipotizzare che molti linguaggi di programmazione
adotteranno nuovi paradigmi e nuovi costrutti (magari presi dal Fortran)
per ottenere degli eseguibili efficienti sulle nuove architetture.
Ciao,
Alessandro
-- 
The more we disagree, the more chance there is that at least one of us
is right.

 è in brado di disegnare funzioni).
Spezzo una lancia a favore del fortran: anche il C++ non e' in grado di
"diseganre funzioni",
in quanto il primo linguaggio ad ampia diffusione che si e' accorto che la
grafica esiste
e' Java.
Per il C++, infatti, non ha nella sua verrsione standard , la grafica NON
esiste.
E' ha molte meno giustificazioni del vegliardo Fortran !

puň solo 'emulare' con degli array.
    Falsissimo!! Il Fortran90 fa uso dei puntatori, pertanto le liste sono
facilmente gestibili ed implementabili con l'uso di moduli.
     E' vero pero' che il puntatore in Fortran non viene visto come un tipo
di dato (come avviene ad es. in Pascal) ma piuttosto come un attributo della
variabile.
Ciao,
    Bishop

 E' ha molte meno giustificazioni del vegliardo Fortran !
Secondo me ne ha molte. Così come quelli del Java, gli ideatori del C++ non
vollero appesantire la grammatica del linguaggio con keyword dedicate alla
grafica, quando è sufficiente adottare opportune librerie di classi per
ottenere lo stesso scopo. E con maggiore flessibilità, per di più.
Il Basic è un esempio di linguaggio per uso generale, nella grammatica del
quale sono implementate keyword dedicate alla grafica. Guarda caso, è
proprio uno di quei linguaggi che sono meno portabili a causa della grande
varietà di 'dialetti'. Ancora guarda caso, le varie differenze dialettali
del Basic coinvolgono spesso proprio 'la grafica'.
Insomma, integrare troppe funzionalità nella grammatica di un linguaggio è
un'operazione che va a scapito della portabilità nonché delle prestazioni
che un linguaggio può offrire.
Anche il Fortran non ha 'la grafica', ma solo perché è nato un tantino
troppo presto: se fosse nato una decina di anni più tardi, ci sarebbero
anche le keyword grafiche ad appesantirlo...


 per ottenere degli eseguibili efficienti sulle nuove architetture.
Oppure non ce ne sarà bisogno, come in ANSI-C e C++...
Ale, il Fortran è vecchio. Ci programmavo su di un HP-9000 agli albori della
mia attività lavorativa, pensa te... Era un HP-9000 nuovo di zecca con RTE-A
come OS. Unix nemmeno parlarne. La benzina costava forse 500 lire/l. Il
latte me lo portava a casa una donnina munto di fresco (molto ma molto più
buono dell'UHT, che non c'era nemmeno).
Ah, quanti ricordi!
E il Fortran era là da chissà quanto tempo...
La mia spassionata opinione è che si tratti del Basic dei fisici: quando
hanno voglia di provarsi qualcosa, i più usano il Basic, i fisici il Fortran
perché pensano che sia più figo. La differenza è tutta qui...
Tra l'altro, sapevi che il Basic dell'HP-9000 (ma anche dell'HP-35, del 45 e
dell'80) aveva gli operatori matriciali? Facendo:
    MAT A=B/C
ti invertiva C, moltiplicava l'inversa per B buttando il risultato in A.
Ma allora era meglio del Fortran... :)


 prescindere dalla sua conoscenza.
Tutto condivisibile tranne l'affermazione, apodittica,: "il C e'
sicuramente superiore al FORTRAN", che come e' stato sottolineato in vari
post su questo argomento, messa cosi' da sola e' fuorviante.
Il FORTRAN ha alcune caratteristiche che lo rendono superiore al C nelle
applicazioni per le quali e' stato progettato, ovvero implementazione di
algoritmi per analisi numerica. Per queste applicazioni i puntatori (che
il Fortran 9x ha, comunque) sono meno utili, ad esempio, di operazioni
primitive su interi array che possono essere ottimizzate su architetture
parallele, o di tipi atomici per rappresentare numeri complessi.
Se non ricordo male l'uscita dello standard Fortran 90 circa dieci anni fa
fu ritardata (avrebbe dovuto essre chiamato Fortran 88) proprio da una
opposizione di alcuni dei partecipanti al gruppo che NON VOLEVANO
l'introduzione nello standard di costrutti "C-like" come i puntatori o le
strutture.



 
Mangiate merda: miliardi di mosche non possono essersi sbagliate tutte.
		-- Bruno Gambarotta, citando un suo concittadino illustre