Julia: A Fresh Approach to Numerical Computing
Author(s)
Karpinski, Stefan; Shah, Viral B.; Bezanson, Jeffrey Werner; Edelman, Alan
DownloadJulia a fresh.pdf (6.352Mb)
PUBLISHER_POLICY
Publisher Policy
Article is made available in accordance with the publisher's policy and may be subject to US copyright law. Please refer to the publisher's site for terms of use.
Terms of use
Metadata
Show full item recordAbstract
Bridging cultures that have often been distant, Julia combines expertise from the diverse fields of computer science and computational science to create a new approach to numerical computing. Julia is designed to be easy and fast and questions notions generally held to be “laws of nature" by practitioners of numerical computing: \beginlist \item High-level dynamic programs have to be slow. \item One must prototype in one language and then rewrite in another language for speed or deployment. \item There are parts of a system appropriate for the programmer, and other parts that are best left untouched as they have been built by the experts. \endlist We introduce the Julia programming language and its design---a dance between specialization and abstraction. Specialization allows for custom treatment. Multiple dispatch, a technique from computer science, picks the right algorithm for the right circumstance. Abstraction, which is what good computation is really about, recognizes what remains the same after differences are stripped away. Abstractions in mathematics are captured as code through another technique from computer science, generic programming. Julia shows that one can achieve machine performance without sacrificing human convenience.
Date issued
2017-02Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science; Massachusetts Institute of Technology. Department of MathematicsJournal
SIAM Review
Publisher
Society for Industrial and Applied Mathematics
Citation
Bezanson, Jeff; Edelman, Alan; Karpinski, Stefan and Shah, Viral B. “Julia: A Fresh Approach to Numerical Computing.” SIAM Review 59, no. 1 (January 2017): 65–98 © 2017 Society for Industrial and Applied Mathematics
Version: Final published version
ISSN
0036-1445
1095-7200