A significant new upgrade to the Julia programming language was released Wednesday, May 10 with core contributions from JuliaHub, Massachusetts Institute of Technology (MIT), Washington University School of Medicine in St. Louis, and contributors around the world. Julia is one of the most loved programming languages for scientific data analysis, offering exceptionally fast processing for large computationally-intensive projects. In previous versions, the unmatched combination of productivity and speed has come at the cost of slow startup times, especially when loading some of the complex and powerful packages that give Julia users such leverage. Julia version 1.9 eliminates this drawback and further lowers the barriers to even wider Julia adoption.
A description of these upgrades is available in Julia 1.9 Highlights.
Julia is a modern programming language that solves the two language problem, and has been developed by over a thousand contributors from around the world. Julia is open source and made available under the MIT license, and available as a free download. JuliaHub, a company founded by the creators of Julia, builds products using Julia and provides services to Julia users worldwide.
“Julia is incredibly attractive for people who have really demanding computational needs,” said Tim Holy, Professor of Neuroscience at Washington University School of Medicine and one of the core contributors behind the update. “You can think of previous versions of Julia like a jet airplane: a fantastic way to travel long distances, but probably not your preferred vehicle for going to the grocery store. Julia’s speed on big tasks arises from its ability to generate high-quality machine code; but generating such code takes time, and for a simple task it could mean spending more time generating code than running it. It’s a bit unfortunate for a new user, who has heard so much about Julia’s speed, to have their first experience be waiting for it to compile lots of package code before they can start doing anything useful. No matter how fast it runs once it’s ready, that’s not the best first impression.”
Holy continued, “So we decided to fix it. In version 1.9, we’ve given Julia the ability to generate and save machine code for packages when they are installed. Julia now re-uses that pre-generated code each time you launch it. This makes the language much snappier for day-to-day usage and enables using it for tasks for which it would previously have been a less good choice, like writing command-line tools that start, work and exit quickly. My hope is that by removing this obstacle for newcomers, Julia can reach its potential to be a powerful tool that’s available to anybody and useful for the broadest possible range of applications.”
JuliaHub Engineer and Julia core contributor Jameson Nash says, “The latest Julia users’ survey found 42% said the biggest technical problem would be solved with faster, better deployment of code binaries for applications and lower startup times for packages. With this work, we are dramatically improving both at once. This is a project I’ve been passionate about for a long time, so I am excited that Julia now has these capabilities. Previously, making the first plot might take 30 seconds. Now, it is instantaneous.”
MIT CSAIL Computer Scientist and Julia core contributor Valentin Churavy says, “We have been working with scientists to solve problems in materials science and climate science for the last few years. Recently we tried scaling up an earth-scale ocean simulation with Oceananigans.jl using 768 Nvidia GPUs. Using Julia 1.8, the startup latency was close to 10 minutes. With Julia 1.9 that dropped to 3 minutes, with lots of room for further improvement. Reducing the startup time for scientific applications allows for much quicker iteration, be it in the classroom or at a research facility. This nimbleness is a real game changer for scientists and amplifies Julia’s impact.”
Julia was developed at Prof. Alan Edelman’s Julia Lab at MIT and introduced to the world in 2012 with the goal of creating a new programming language that delivers “the speed of C with the dynamism of Python.” At the time, Holy’s lab was collecting terabytes of data for large-scale image processing. Holy’s team studies the olfactory system and develops microscopy techniques for visualizing three-dimensional volumes of tissue over time. But the computational time to take advantage of these imaging advances using classic programming tools was infeasible.
Julia offered a solution: an easy-to-write language that runs huge computations rapidly. What might take months on other platforms could now be accomplished in days or even hours. Within a month of Julia’s announcement, Holy started using the program and shortly afterward became a core contributor to the open-source code.
In addition to its speed, Julia’s advantages include extensibility – meaning downstream users can add new methods to upstream code – and consistency, so users will get the same result whether they build the code iteratively or all at once. Julia has quickly become a favored programming language among scientists doing exploratory data analysis. Julia is seeing rapid adoption in the pharmaceutical industry, where Julia is used to model drug interactions and vaccine dosing, among other uses.
The improved responsiveness is just one of many exciting changes in Julia 1.9. More information about Julia is available from JuliaHub, Prof. Alan Edelman’s MIT JuliaLab and the Holy Lab.