Videos from JuliaCon are now available online
2018
Previous editions: 2017 | 2016 | 2015 | 2014
Mayeul d'Avezac



Julia is an R&D binding agent

Much of research comes down to giving commands to instruments, and pulling results, and then performing some sort of analysis. Each of these tasks is generally done via an interface or language of its own: Bash or similar to give commands to instruments and manipulate files, some scripting language for analysis, and a sprinkling of libraries to read input data and perform more complex analysis. Eventually the manifestation of this type of work is a set of scripts with vaguely defined input and outputs. These are passed on semi-religiously from one PhD student to the next, until modifying them becomes almost an act of sacrilege, thus limiting what new science can be attempted (until a student throws it all out of the window, restarting the process from scratch). Julia has the potential to remediate to this situation. It offers a platform where it is easy to combine systematic testing with every aspects of an R&D workflow, from command-line calls, to wrapping C libraries, to beautiful plots. I illustrate this workflow using my experience in a startup developing a quantum random number generator on an android phone. Julia allowed me to test and analyse the random number generator by simply issuing commands to the android bride as an external program, pull results from the phone as files via the same android bridge, open these files by wrapping an external C library, and then analyse and plot the results, all in the comfort of an IJulia notebook. Other than the fact that Julia solved these problems within a single language, it also allowed me to easily integrate testing directly into the notebook, thus ensuring that the workflow remains tested, and legible, even as it grows. Julia decidely lowers the barrier to reproducible, auditable research.

Speaker's bio