Re: C# e Java usati dai fisici?

From: Giorgio Pastore <pastgio_at_units.it>
Date: Fri, 06 Apr 2007 00:01:20 +0200

MrAsm wrote:
...
> Mi chiedevo che successo (o insuccesso) avessero linguaggi piu'
> "moderni" come Java o C# nell'ambito fisico.
...
> Programmare in C# o Java, grazie alla presenza di garbage collector e
> gestione "automatica" della memoria, renderebbe le cose piu' semplici.
> Pero' credo anche che in fisica sia richiesta notevole capacita' e
> potenza di calcolo, cosi' mi chiedevo se C# e Java fossero adatti al
> calcolo scientifico, e in che misura fossero usati dalla comunita' dei
> fisici.

Devo dire che di utilizzo di C# non ho notizie significative al di
fuori di alcuni tentativi in ambito didattico. Una buona ragione pu�
essere il fatto che si tratta di un linguaggio legato ad una determinata
piattaforma.

Per Java la storia � diversa. In certi ambiti viene usato
correntemente. Per esempio, mi risulta che a Elettra, il sincrotrone
che sta vicino Trieste, il software di controllo del fascio di elettroni
sia realizzato in Java.

Naturalmente non si usa Java dove � necessario avere un controllo fine
della parte numerica e/o dove e' richiesta una grande efficienza
(forse le cose potrebbero cambiare con l' evoluzione di compilatori
specifici per una data architettura ma al momento non mi risulta che si
possa ancora parlare di codici Java competititivi con C,C++ e Fortran.
Se per� la performance non � l' obiettivo primario si utilizza Java
come anche altri linguaggi.

Aggiungerei due osservazioni sulla base della mia esperienza:

1. le comunit� di programmatori scientifici (fisici ma non solo) sono
abbastanza conservatrici (codici sviluppati ancora in Fortran 77,
programmi C che ignorano caratteristiche utilissime dello standard 99,
  programmi C++ che cercano di travestire da programmazione ad oggetti
  un approccio procedurale...). Questo non credo che sia
giustificabile solo sulla base dell' esistenza pregressa di librerie di
programmi. Temo piuttosto che ci sia un ritardo culturale dovuto ad una
scarsa attenzione nei curricoli a problematiche relative al software e
all' ingegneria software.

2. non menzionerei come esempio della modernit� di Java o C# il solo
meccanismo della garbage collection automatica. Ce l'hanno anche
linguaggi piu' vecchi di Java o C#. E di nuovo, il peso di questo
aspetto dipende dall' ambito applicativo.

Giorgio
Received on Fri Apr 06 2007 - 00:01:20 CEST

This archive was generated by hypermail 2.3.0 : Fri Nov 08 2024 - 05:10:11 CET