Julia: A Fresh Approach to Numerical Computing
Jeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah

TL;DR
Julia is a new programming language that combines high performance with ease of use for numerical computing, challenging traditional beliefs about the trade-offs between speed and abstraction.
Contribution
The paper introduces Julia, a language that integrates specialization and abstraction through multiple dispatch and generic programming, enabling fast and user-friendly numerical computing.
Findings
Julia achieves high performance comparable to low-level languages.
Julia simplifies numerical computing by eliminating the need for rewriting code in different languages.
Julia demonstrates that high-level dynamic languages can be both easy to use and fast.
Abstract
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. Julia questions notions generally held as "laws of nature" by practitioners of numerical computing: 1. High-level dynamic programs have to be slow. 2. One must prototype in one language and then rewrite in another language for speed or deployment, and 3. There are parts of a system for the programmer, and other parts best left untouched as they are built by the experts. 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, what good…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Quantum Computing Algorithms and Architecture · Distributed and Parallel Computing Systems
