Abstract Can a shiny new language like Julia easily be added to a mature codebase? Yes it can! Come hear about my experience writing Julia code for Madagascar, an open-source software suite for geophysics. Be prepared for repeated abuse of ccall, metaprogramming and pipelines, but little geophysics (phew!).
Description 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.