The Julia language has been designed in order to offer performance without sacrificing productivity. Its secret is a combination of carefully chosen features, such as multiple dispatch and rich type annotations, and some optimizations like inlining done by the just-in-time compiler. I will explain how the code is optimized by Julia’s JIT before being given to the LLVM back end, and, as a consequence, why a specific coding style is required for performance. I will also look at a selection of fifty popular Julia packages to see how amenable they are to these optimizations, using static and dynamic analyses. Finally, I will briefly talk about Julia’s design against the context of other related programming languages, to show the singular place it occupies.
Currently in first year of Master at the École Normale Supérieure.