Pagina 1 di 2
Programmare in fortran
Inviato: gio 13 lug 2006, 10:49
da danae20032001
Salve ho installata la current e vorrei imparare a programmare in fortran per curiosita'. Sulla slack ho trovato installato solo il compilatore g77 per il fortran77.
So che esistono versioni piu' recenti del fortran (90 ad esempio)...da quale mi consigliate di partire? Inoltre per le versioni piu' recenti sono disponibili compilatori scaricabili gratuitamente? E dove li posso trovare? Grazie mille!
Inviato: gio 13 lug 2006, 11:28
da brancalessio
Credo esiste il compilatore GNU per il Fortran90, ma è ancora molto in fase di sviluppo.
Altrimenti un ottimo compilatore (dal punto di vista della velocità degli eseguibili) è quello della Intel che puoi scaricare gratuitamente dal sito. Ho installato quello per il C/C++ su Slackware 10.0 e tutto funzionava al meglio. Forse però devi installarti anche la MathKernel Library. Ma il tuo processore è un Intel? Il compilatore della Intel per ora è ottimizzato solo per i processori della stessa marca...
Inviato: gio 13 lug 2006, 11:29
da bit123
Il Fortran è un linguaggio ad alto livello ideato per applicazioni scientifiche e matamatiche. Da quando il Python ha acquisito il supporto per l'aritmetica decimale, l'interesse del mondo scientifico si è spostato verso questo linguaggio: sintassi semplice, potente, parco librerie che copre ogni campo di applicazione e soprattutto curva di apprendimento molto veloce per essere subito produttivi. In poche parole, se devi imparare un nuovo linguaggio impara il python. Saluti!
Inviato: gio 13 lug 2006, 11:44
da danae20032001
E per il C e C++? Mi consigliate di partire direttamente dal C++ o prima imparare il C? Altri linguaggi di programmazione utili per il mondo lavorativo quali potrebbero essere? Grazie.
Inviato: gio 13 lug 2006, 12:08
da gioco
danae20032001 ha scritto:E per il C e C++? Mi consigliate di partire direttamente dal C++ o prima imparare il C?
Ti consiglio di studiare le basi del C e poi passare al C++.
danae20032001 ha scritto:Altri linguaggi di programmazione utili per il mondo lavorativo quali potrebbero essere? Grazie.
Java.
Riguardo al Fortran:
il fortune di ieri ha scritto:A computer without COBOL and Fortran is like a piece of chocolate
cake without ketchup and mustard.
Inviato: gio 13 lug 2006, 12:14
da danae20032001
Spero che all' autore del' "aforisma" non piaccia la torta al cioccolato con mostarda e ketchup!.....Ultimo chiarimento.....e' utile imparare il C#? Grazie!
Inviato: gio 13 lug 2006, 12:31
da lamarozzo
Come ti è stato suggerito, per quanto riguarda il compilatore Fortran scarica la versione non commerciale della Intel. Ci sono delle versioni open source ma non sono all'altezza.
Il C++ comprende interamente il C. Ti consiglio di cominciare quindi con il C, così avrai chiara anche la sintassi del C++, anche se dovrai cambiare stile di programmazione.
Per quanto riguarda il Python non sono d'accordo sul fatto che sia un'alternativa al C o al Fortran per il mondo scientifico. Le funzioni scritte in Python sono almeno una decina di volte più lente, e quindi si finisce per scriverle in C o Fortran e poi renderle chiamabili dal Python. Il Python è un ottimo collante, per disegnare l'architettura dell'applicazione, e te la consiglio per imparare la programmazione ad oggetti, prima ancora di affrontare il C++ (che ha una sintassi molto più pesante)
Ciao
Inviato: gio 13 lug 2006, 12:48
da bit123
Le librerie matematiche che usa il python sono già scritte in c, quindi il problema velocità è superato, è diventato un pregiudizio. Se non hai tempo da perdere, impara il python!
Inviato: gio 13 lug 2006, 12:58
da danae20032001
e su questo famigerato c# di cui non conosco nulla?
Inviato: gio 13 lug 2006, 14:01
da aschenaz
danae20032001 ha scritto:e su questo famigerato c# di cui non conosco nulla?
Lascialo perdere: è un'aberrazione M$.
Ciao,
nino
Inviato: gio 13 lug 2006, 14:29
da lamarozzo
bit123 ha scritto:Le librerie matematiche che usa il python sono già scritte in c, quindi il problema velocità è superato, è diventato un pregiudizio. Se non hai tempo da perdere, impara il python!
si, ma io intendevo le funzioni che uno si scrive da solo, non le librerie
Inviato: gio 13 lug 2006, 14:30
da danae20032001
Linguaggio creato dalla Microsoft? Allora non lo prendo nemmeno in considerazione! Penso prima di partire col C, poi C++, Java e python! Grazie dei consigli!
Inviato: gio 13 lug 2006, 17:58
da albatros
Ciao
La scelta del linguaggio dipende dall'uso che ne fai...
Il fortran si usa ancora in ambito scientifico, così come il cobol in ambito aziendale...
C e C++ sono flessibilissimi, ma per alcuni compiti richiedono molte più righe di codice di altri...
Concordo con lamarozzo di cominciare dal C per poi passare al C++ (io ho fatto il contrario, ma è assai peggio).
Il perl ti consente di fare degli script molto potenti e per gli usi più disparati...
Un po' di bash scripting ti può fare molto comodo per l'amministrazione della tua macchina: è più limitato del perl, ma è più facile da imparare ed è la shell di default sulla maggior parte dei sistemi Unix-like (csh, tcsh sono meno diffuse).
Se scrivi qualcosa per il web, considera anche php, oltre a java...
Python non lo conosco, però ho letto ottime recensioni e qualche breve introduzione e mi pare davvero ottimo...
Lo consiglia anche Eric Raymond:
http://www.catb.org/~esr/faqs/hacker-howto.html#skills1
Se hai tempo, leggi anche:
http://www.faqs.org/docs/artu/
è un'ottima introduzione alla programmazione.
L'assembly è un caso a parte, ti costringe a capire molto bene come funziona la tua macchina, ma non è facile da imparare e da padroneggiare e, se è ottimo per lavorare a basso livello, non è idoneo per un uso generale (c'è anche un eccellente tutorial di phobos3576 , membro di slacky, all'indirizzo
http://xoomer.alice.it/ramsoft/ , che ho trovato molto istruttivo).
Imparare bene un linguaggio richiede un certo tempo e una certa pratica, ma una volta appresi alcuni algoritmi di base e alcuni concetti chiave imparare i successivi è più facile...
Riguardo soprattutto a C/C++:
Considera anche che conoscere un po' di librerie, soprattutto quelle che ti consentono di creare interfacce grafiche, è molto importante, così come lo è la conoscenza di come vengono gestiti processi e segnali in un sistema linux...
Anche conoscere make (& C.) e gdb è quasi fondamentale in ambito linux, se vuoi sviluppare software di una certa complessità...
Insomma, se ti va di imparare non hai che l'imbarazzo della scelta...
Io ho cominciato col basic del C64, ma non sono mai diventato un vero programmatore...

Inviato: gio 13 lug 2006, 18:05
da Sari
ninobi ha scritto:danae20032001 ha scritto:e su questo famigerato c# di cui non conosco nulla?
Lascialo perdere: è un'aberrazione M$.
Ciao,
nino
Be il framework .net, volente o nolente, si sta diffondendo su larga scala. La dimostrazione di ciò è l'attenzione che l'OpenSource ha verso questo linguaggio. Mono ad esempio sta piano piano diventando un ottimo ambiente di sviluppo integrato per C# e che esista un binding di GTK, chiamato gtk#, per Mono è assai significativo.
Inviato: ven 14 lug 2006, 8:58
da aschenaz
Sari ha scritto:Be il framework .net, volente o nolente, si sta diffondendo su larga scala. La dimostrazione di ciò è l'attenzione che l'OpenSource ha verso questo linguaggio. Mono ad esempio sta piano piano diventando un ottimo ambiente di sviluppo integrato per C# e che esista un binding di GTK, chiamato gtk#, per Mono è assai significativo.
Premetto che io non posso definirmi un programmatore: si, me la cavo abbastanza col php (anche php-gtk) e ho fatto qualcosa col python e il pascal (e in passato col basic), ma non posso reggere il peso di una discussione sulla vera programmazione e quindi corro il rischio di dire delle fesserie...
Sul .net ho seguito un corso organizzato dalla mia amministrazione e insieme a me c'erano dei veri luminari (tra gli altri, il mio compagno di banco era l'autore del libro su cui avevo imparato l'html

e dietro di me c'era il programmatore dell'
opensignature, la firma digitale su linux...), per cui io ero capitato lì veramente per una strana combinazione.
In ogni caso, per quanto mi riguarda, di fronte al .net, ho provato un senso di repulsione: la stessa sensazione che provavo quando la mia prof. di matematica cercava di ficcarci a forza nella testa certe formule di analisi senza il minimo tentattivo di farci capire qualcosa. Per fare un altro paragone, mi sembrava di avere a che fare con una montagna di mattoncini lego da mettere insieme, correndo il rischio di costruire qualcosa di enorme con funzionalità, però, minime. Quello che preferisco io , invece, è cominciare con una pagina bianca e scrivere codice, cercando di renderlo più leggero possibile...
Questo per quanto riguarda me. I miei colleghi, invece, con cognizione di causa esponenzialmente superiore, hanno trovato tutti i difetti possibili ed immaginabili di quella piattaforma (e del c#): ora non sono in grado di riferirli, anche perché non li ricordo. Una cosa che mi ha colpito è che il c# non lo paragonavano tanto al c++ quanto al java, definendolo una assurdo tentativo di imitazione di quest'ultimo.
Ripeto, quindi, che le mie sono soprattutto impressioni mediate...
Ciao,
nino