University of Edinburgh
Whenever a new programming language appears, first there is excitement: “It can do X and Y so well! Amazing!” Soon, however, reality sets in and you start having to rewrite vast swathes of your workflow in this shiny new language. Well, Julia is shiny, and it can certainly do many things very well, but can it also be easily incorporated into a mature codebase? My experience with Julia and Madagascar—an open-source software package for geophysics—suggests that it can. In this talk I will explain how Julia’s C interface and metaprogramming support combine naturally with Madagascar’s main pillars: its C API and its user-contributed programs. I will show that my relatively small Julia API (now sitting in upstream Madagascar), can provide functionality that is either lacking in other APIs (e.g. MATLAB), or requires complex external tools (e.g. Python+SWIG). Using these examples, I will make the case that Julia is not only a welcome addition to scientific computing communities, but that it can also be incorporated into established workflows with minimal effort. Indeed, I will show that one of Julia’s key advantages is its flexibility in being integrated into mature projects.
Carlos is an applied scientist currently working as a postdoctoral researcher at the University of Edinburgh. He is interested in imaging and inversion, particularly large scale problems in Earth sciences. From Brazil, Carlos obtained a B.Sc. in Mathematics from PUC-Rio and an M.Sc. in Applied Mathematics from the University of Campinas, before moving to (equally sunny!) Scotland where he obtained his Ph.D. in Geophysics from the University of Edinburgh.