sfondo
L'anno scorso ho svolto uno stage in un gruppo di ricerca di fisica presso un'università. In questo gruppo, abbiamo utilizzato principalmente LabVIEW per scrivere programmi per il controllo delle nostre configurazioni, per l'acquisizione e l'analisi dei dati. Per i primi due scopi, funziona abbastanza bene, ma per l'analisi dei dati è un vero dolore. Inoltre, tutti erano per lo più autodidatti, quindi il codice scritto era generalmente un bel casino (non c'è da stupirsi che ogni dottorato di ricerca abbia deciso rapidamente di riscrivere tutto da zero). Il controllo della versione era sconosciuto e impossibile da configurare a causa delle rigide normative di rete e software del reparto IT.
Ora, le cose in realtà sono andate sorprendentemente bene, ma come fanno le persone nel campo delle scienze naturali a sviluppare il loro software?
Domande
Alcune domande concrete:
- Quali linguaggi / ambienti hai usato per sviluppare software scientifico, in particolare l'analisi dei dati? Quali biblioteche? (ad esempio, cosa usi per la stampa?)
- C'è stata formazione per persone senza una formazione significativa nella programmazione?
- Avevi qualcosa come il controllo della versione e il monitoraggio dei bug?
- Come fareste a cercare di creare un ambiente decente per la programmazione, senza intralciare troppo i singoli scienziati (soprattutto i fisici sono persone testarde!)
Riepilogo delle risposte fino ad ora
Le risposte (o la mia interpretazione di esse) fino ad ora: (2008-10-11)
- Lingue / pacchetti che sembrano essere i più utilizzati:
- Il controllo della versione è utilizzato da quasi tutti gli intervistati; il rilevamento dei bug e altri processi sono molto meno comuni.
- Il corso di carpenteria software è un buon modo per insegnare tecniche di programmazione e sviluppo agli scienziati.
- Come migliorare le cose?
- Non forzare le persone a seguire protocolli rigidi.
- Crea tu stesso un ambiente e mostra i vantaggi agli altri. Aiutali a iniziare a lavorare con il controllo della versione, il monitoraggio dei bug, ecc.
- Rivedere il codice di altre persone può aiutare, ma tieni presente che non tutti potrebbero apprezzarlo.