Newsgroup: it.discussioni.ingegneria
Titolo: Fortran e' lavoro

Salve
Attualmente devo eseguire tutta una serie di calcoli iterativi su grosse
matrici e con varie permutazioni dei dati in ingresso, cosi' devo
ricorrere per forza alla scrittura di un programma personale che faccia
il tutto velocemente, per tale fine linguaggi interpretati come python
scilab, octave, Matlab ecc sono stato escusi perche' poco performanti.
Ho iniziato a scrivere la prima parte del codice in C, ma il dispendio
di tempo per la richerca di piccoli bug causati dall'implementazioni di
funzioni elemntari (es ordinamento di un vettore, ricerca di max ecc),
mi ha portato a studiare un altro linguaggio piu' indicato, e per
sentito dire ho messo mano al fortran77, e sinceramente sono rimasto un
po' schioccato, sintassi semplice, rigidita' assoluta, niente
ricorsivita, pochi costrutti, e sofferente della sua ormai veneranda
eta', quindi non offre nessun vantaggio rispetto al C, poi ho trovato in
rete indicazioni sul Fortran 90, ho scarica un comilatore free ed un
paio di tuttorial.
I risultati sono stati veramente buoni, tale linguaggio offre veramente
molto per chi si deve occupare di realizzare software di calcolo, e mi
sto appanssinando molto a studiarlo ed approfondirlo.
Ma mi e' sorta una domanda, come mai e' un linguaggio praticamente
sconosciuto ai piu'?
Tra di voi c'e' qualcuono che lo ha usato o lo usa in abito lavorativo?
Mi piacerebbe conoscere altri pareri ed esperienze per farmi un idea
piu' chiara.
Grazie

Il Sat, 26 Apr 2003 14:56:33 GMT, -=M=M=-@
cippa.lippa.net
 fece sapere che:
perdonate il vergognoso errore, ovviamente la "e" e' di congiunzione :)

 Tra di voi c'e' qualcuono che lo ha usato o lo usa in abito lavorativo?
Io l'ho usato all'universita'. In fin dei conti la maggior parte dei
programmi di calcolo numerico sono nati in fortran (anche se ormai molti
sono stati riscritti in C++).
Piu' che altro l'ho usato nell'ambito del calcolo strutturale.
Io pero' mi sono fermato al 77 con varie estensioni non standard verso
il 90.
Purtroppo con l'adozione dello standard 90 e 95 da parte dei compilatori
attuali mi sono ritrovato con codice praticamente da buttare.
Soprattutto la mancanza di tempo e il fatto che non faccio il
programmatore di professione ho abbandonato il fortran alcuni anni fa.
Adesso sto tentando nuovamente la strada della programmazione per
risolvere alcuni piccoli problemi che mi si presentano pero' ho
cominciato a guardare verso il C++ e l'Obj-C pero' con tempi biblici.
Comunque non preoccupparti se non trovi altri che programmano in fortran
perche' tanto se conosci gia' il C non avrai problemi a impararlo.
I veri vantaggi del Fortran li avrai proprio nella facilita' della
gestione dei dati numerici.
Anche il semplice fatto che i numeri complessi sono di serie puo'
sembrare una scemata ed invece e' molto comodo e non devi ricorrere a
librerie esterne per implementarli.
-- 
Ciao da Francesco B.

 Tra di voi c'e' qualcuono che lo ha usato o lo usa in abito lavorativo?
Io l'ho usato abbastanza spesso per scrivere delle routine di calcolo in
ambiente HP-UX. Anche se devo dire che alla fine sarebbe stato meglio
perderci un po' di tempo e passare al C.... proprio per i motivi di
portabilità di cui ho parlato.
 
Una curiosità... dove hai trovato un compilatore free ? Sotto Windows non
credo che ci siano, mentre sotto Linux il compilatore Fortran standard è
un Fortran 77, mentre esiste un progetto di compilatore Fortran 95 ma mi
sembra che siano ancora in alto mare...
-- 
Stefano Gatti 
Email: 
stefano.ga...@tin.it
 (togliere .levami)
Web: 
sg67.135.it

 
Compilatori free (nel senso di gratuiti) per win se ne trovano parecchi,
per linux e' gia' presente il g77 ma questo lo sai gia' :)
La Intel mette a disposizione per uso non commerciale il propri
compilatore F90 (ma anche C++), lo trovi su
http://www.intel.com/software/products/global/eval.htm
cerca la versione non commercial registrati e scaricalo.
Se prelevi la versione per linux ed usi Debian (come nel mio caso) ci
sono piccoli problemi, che per fortuna ho superato, caso mai manda un
mex sul NG e ti posto l'HOWTO che sto preparando ;)
Grazie per risposta

 gestione dei dati numerici.
Infatti il passaggio C -> fortran e' stato immediato, un paio di giorni
Grazie per la tua risposta
 

 mex sul NG e ti posto l'HOWTO che sto preparando ;)
In effetti uso Debian...
Ti passo anche due link di due compilatori in fase di sviluppo:
http://g95.sourceforge.net/
http://gcc-g95.sourceforge.net/
Poi ho anche scoperto che sono uscite le specifiche del Fortran 2000 ....
http://www.j3-fortran.org/


 farsi
Secondo me questa e' una scelta intelligente perche' almeno hai i piedi
in due scarpe e potrai accedere a software gia' scritto da altri con
notevole semplicita'.
Molti ingegneri usano il C per le proprie applicazioni e moltissimi
usano il fortran ma non sempre tutti e due.


 
Azz In 13 anni 3 standard? 90, 95, 2000
non mi pare una bella cosa, a meno che la retrocompatibilita' non sia
piena ed assoluta.
Quali sono le novita' del 2000 (non conosco l'inglese) 
Ciao

 Tra di voi c'e' qualcuono che lo ha usato o lo usa in abito lavorativo?
Ho usato il Fortran solo per scrivere i prg che ho utilizzato
all'Universita'.
Ha alcuni pregi, ma anche molti difetti. Il principale difetto e' che il
programma lo devi scrivere proprio tutto e lo devi scrivere bene: andare per
step e' molto complesso ed il debugging non e' una passeggiata, soprattuto
quando le righe di codice sono tante; e se poi ti interessa dargli anche una
interfaccia I/O "decente" allora il codice da scrivere si moltiplica
incredibilmente. Inoltre ho sempre avuto problemi non piccoli per far girare
i prg su altri computer (usavo il MS PowerFortran e, chissa' il perche',
ogni volta mancavano librerie a destra e a manca...)
In ambito lavorativo (premetto che sono ing. civile) spesso uso fogli di
Excel in quanto sono molto piu' diretti e flessibili (e considerando che ti
capitano sempre i casi che non hai previsto la flessibilita' e' d'obbligo).
Ora ho terminato un prg per la gestione di commessa che, essendo basato su
db, ho realizzato in Access. Avrei voluto fare di meglio ma anche in questo
caso il ridottissimo tempo di scrittura e la flessibilita' hanno prevalso su
logiche di piu' ampio respiro.
In ogni modo se ora dovessi fare un prg lo farei con un RAD, Visual Basic o
Delphi (Kylix per Linux). Fra i due preferisco il secondo, molto piu' pulito
ed efficiente (senza contare la portabilita' Win-Linux), ma il primo e'
molto piu' intuitivo. Cmq entrambi sono Object Oriented e hanno librerie ben
fornite, per cui creare prg non e' poi molto complicato: riesci a
concentrarti piu' sull'algoritmo del programma che sulla sua implementazione
ed alla sua interfaccia grafica.
Il C ed il C++ sono molto potenti ma non ho il background necessario per
affrontare un tale linguaggio.
Java mi appassiona molto (soprattutto la sua portabilita' estrema) ma,
essendo simile al C++, mi spaventa la curva di apprendimento che porta ad
uno studio iniziale non indifferente. Ogni tanto lo prendo in mano ed
approfondisco alcuni temi, ma non e' facile.
Ciao
--
Doc Hollywood
------------------------------------------------------------------------
Non penso mai al futuro, viene cosi' presto. (A.Einstein)
------------------------------------------------------------------------

scilab, octave, Matlab ecc sono stato escusi perche' poco performanti.
[]
Il fortran è lavoro!
Attualmente sto facendo la tesi per una software house della mia zona
che sviluppa software ad elementi finiti per problemi acustici. Tutte
le librerie di calcolo sono in fortran 90 (intel) e l'interfaccia
utente è fatta con Visual C++ (microsoft).
Dal mio punto di vista il fortran va utilizzato prettamente in campo
numerico, dove per altro dà le migliori prestazioni rispetto ad ogni
altro compilatore (FORTRAN letterlamente vuol dire FORmula TRANslator)
Io conosco un po' il 77 (la tesi la sviluppo in c++) e devo dire che
ai tempi dell'esame di informatica mi aveva spaventato un po'
(variabili di soli 6 caratteri che iniziano dalla seconda colonna!!!,
stringhe assurde per stampare un semplice "ciao" (non è molto adatto a
progettare interfacce)), è anche vero però che chi ce lo spiegava ci
faceva scrivere programmi del tipo: "permettere all'utente di inserire
un nome e stamparlo convertito in maiuscolo", ecc... Ovvio che se si
va sul numerico le cose cambiano!
Ritengo comunque che se utilizzato nell'ambito per cui è stato pensato
sia assolutamnete la scelta migliore!
Per quanto riguarda il lavoro beh.. certo non fa molto curriculum e,
soprattutto (sigh..), le software house che in italia lo utilizzano
(quelle che fanno software di calcolo) sono veramente poche, inoltre
data la potenza di calcolo degli odierni pc si sente meno la necessità
di sviluppare del "codice veloce".
Tieni presente comunque che un codice fortran a sè stante (inteso
comprensivo di interfaccia utente) io non l'ho mai visto di solito il
fortran è utilizzato in connubio con altri compilatori per la
generazione di librerie di calcolo...
Spero di esserti stato utile,
Stefano.
P.S.: se scrivendo un po' di codice hai fatto un po' di esperinza con
la sintassi del C ti consiglio caldamente di provare a leggerti
qualcosa sul C++...ti sorprenderà a tal proposito un ottima lettura è
il classico: Bjarne Stroustrup - Il linguaggio C++ (terza edizione)

 approfondisco alcuni temi, ma non e' facile.
La "portabilità estrema" del Java è allo stesso tempo il suo pregio e il
suo difetto, visto che un programma Java deve comunque essere in un certo
qual modo interpretato da una Java Virtual Machine, e quindi per forza di
cose la velocità è molto bassa.


 cose la velocità è molto bassa.
Concordo, ma se fosse solo il FE di un db in BE, magari MySql, allora le
cose cambiano...


cose cambiano...
volevi dire front end di un db in back end? Vale il discorso
precedentemente fatto sull'utilità del database in questo caso!
Ciao Stefano.

 portabilità su più piattaforme (MAC OS incluso)
Il problema cmq e' alla fine di chi programma, che dovrebbe farlo bene ma
spesso viene spinto a farlo velocemente, e si sa' che le cose fatte in
fretta non sono mai fatte bene!
Ciao


 il classico: Bjarne Stroustrup - Il linguaggio C++ (terza edizione)
Inizialmente ero partito dal C++, ma poi dato che per cio' che faccio e
per le mie competenze l'approccio OOP non era assolutamente usato ho
preferito passare al C, l'OOP se ho ben capito offre una estendibilita'
maggiore del software, ma richiede una fase progettuale ben chiara e
definita, cosa di cui io non ho competenza alcuna.
Grazie per la risposta.

 
Anch'io lo trovo compliato, ai tempi ho reperito un bel manuale in rete.
Ti segnalo il link caso mai ti potesse essere utile
www.java-net.it
 
Grazie per la risposta

 [cut]
Sto analizzando ora alcuni siti su delphi per implementare (molto
successivamente) una interfaccia ;), ma tutto dipende dal tempo libero.
Grazie per le risposte
Sto analizzando ora alcuni siti su delphi per implementare (molto
successivamente) una interfaccia ;), ma tutto dipende dal tempo libero.
Grazie per le risposte..

Grazie per le risposte..
Se proprio devi utilizzare un compilatore borland guardati anche il
c++ builder, è un rad pure lui (l'IDE è lo stesso) ed in più è c++.
Stefano.