Archivi tag: F#

Close the semantic gap

According to Wikipedia, “Scientists include theoreticians who mainly develop new models to explain existing data and experimentalists who mainly test models by making measurements – though in practice the division between these activities is not clear-cut, and many scientists perform both.” The domain-specific language that many scientists use to define their models is mathematics, and since the early days of computing science, the holy grail has been to close the semantic gap between scientific models and executable code as much as possible. It is becoming increasingly clear that all scientists are practicing applied mathematics, and some scientists, such as theoretical physicists, are behaviorally indistinguishable from pure mathematicians. The more we can make programming look like mathematics, the more helpful we make it to scientists and engineers.

Erik Meijer, prefazione a D. Syme, A. Granicz, A. Cisternino “Expert F#”, Apress 2007

Don Syme: F# Path to Relaxation

Nel pomeriggio di lunedi 22 giugno, nell’Aula Gerace del nostro Dipartimento di Informatica, Don Syme ha presentato una interessante keynote sugli sviluppi del linguaggio F# di cui è uno degli ideatori e sviluppatori. L’iniziativa non è stata molto pubblicizzata e, di conseguenza, il pubblico non era troppo numeroso. Fulcro della presentazione è stato mostrare come F# sia in grado di fare sintesi (nel senso inteso dal metodo scientifico) tra caratteristiche dei linguaggi di programmazione apparentemente inconciliabili, a partire dall’opposizione tra il paradigma funzionale e quello orientato agli oggetti. Tralasciando i contenuti più tecnici mi piace sottolineare una delle conclusioni di Don: “Achieving simplicity and relaxation is the key”.

Due considerazioni ritengo interessanti da condividere.

La prima riguarda l’utilità che il paradigma funzionale (conciliato con quello orientato ad oggetti) ed in particolare il linguaggio F# può avere nella mia ricerca attuale. Sicuramente parte del codice che ho scritto e che sto scrivendo in C# ha una sua natura funzionale e potrebbe quindi trarre beneficio da un refactoring anche parziale. Utilizzare C# per analisi computazionali è di per sé abbastanza inconsueto o, per lo meno, non è la vocazione primaria di questo linguaggio. Malgrado ciò non posso lamentarmi dei risultati. Avere però la possibilità di rimanere all’interno del framework .NET ma sfruttare un linguaggio più orientato alle funzioni, più multipiattaforma, più interoperabile è sicuramente una strada da provare a percorrere almeno per un tratto. Una delle sintesi che Don ha sottolineato nella sua relazione è proprio quella tra codice e dati, assolutamente coerente con quanto sto cercando di fare in questo periodo.

L’altra considerazione da condividere riguarda la tematica del fare sintesi, in un percorso di conciliazione tra aspetti diversi e spesso contradditori. Potrebbe essere la chiave di lettura della mia attuale posizione che è caratterizzata da almeno tre grandi ambiti tra i quali tento di fare sintesi: la mia attuale e futura area di ricerca (che già è un coacervo di elementi disparati da mettere insieme), la mia attuale (e futura?) attività professionale e la mia passata attività di ricerca in ambito organologico. Il presente mi vede impegnato in uno sforzo di sintesi tra questi elementi (già la scrittura del CV è un’impresa) e la strada indicata da Don, il path to relaxation, appare in questo momento, un’altra strada da provare a percorrere almeno per un tratto.

Pensavo di andare ad assistere ad una interessante technical conference e ne sono uscito con una lezione di vita ed un paio di impegni da mettere in pratica. Devo dire che non capita spesso.