Julia: dynamism and performance reconciled by design

Jeff Bezanson,Jiahao Chen,Benjamin Chung,Stefan Karpinski,Viral B. Shah,Jan Vitek,Lionel Zoubritzky
DOI: https://doi.org/10.1145/3276490
2018-10-24
Proceedings of the ACM on Programming Languages
Abstract:Julia is a programming language for the scientific community that combines features of productivity languages, such as Python or MATLAB, with characteristics of performance-oriented languages, such as C++ or Fortran. Julia's productivity features include: dynamic typing, automatic memory management, rich type annotations, and multiple dispatch. At the same time, Julia allows programmers to control memory layout and leverages a specializing just-in-time compiler to eliminate much of the overhead of those features. This paper details the design choices made by the creators of Julia and reflects on the implications of those choices for performance and usability.
What problem does this paper attempt to address?