Maksim Kabakou - Fotolia
The Julia programming language has gained version 1.0 status and caught the eyes of enterprise software developers building machine learning and data science applications.
Julia 1.0 is an open source programming language for scientific, technical and high-performance computing environments. Work on Julia began in 2009 to solve the "two-language problem," said Viral Shah, CEO of Julia Computing in Cambridge, Mass., one of the co-authors of the language.
The two-language problem has been a conundrum for developers who seek to build computational programs: Go for ease of use and write in languages such as R, Python or MATLAB, or go for performance with Java, C or C++. Most often they do both, Shah said. They build prototypes of a system in R, Python or MATLAB, and turn it over to a systems programmer to rewrite in Java, C or C++ for the performance boost.
Instructors at the University of California, Santa Barbara, told Shah he could not have both ease of use and performance in creating computational systems, he said. So he and Julia co-authors -- Jeff Bezanson, Stefan Karpinski and Alan Edelman -- set out to prove that theory wrong, and borrowed from a host of established programming languages, including C, FORTRAN, Python and Ruby. The two-language problem wastes a lot of time, and it's expensive to pay two separate groups of developers to deliver one product. And the headaches return during upgrades or additions to an existing system.
Julia stands apart from other commonly used programming languages thanks to its foundation in multiple dispatch, Shah said. Multiple dispatch means the system chooses which programming procedure to invoke at runtime based on the dynamic types of multiple parameters, which improves the performance of Julia programs, he said. The multiple dispatch approach is illustrated in logistics: A package arrives at a warehouse, and the warehouse decides how to route the package based on availability of delivery modes and vehicles.
Julia 1.0 suits highly mathematical programs in a variety of fields, including business, finance, scientific computing and predictions for weather or pricing options. But it's also useful for data science, machine learning and scientific computing, said Kathleen Walch, an analyst at Cognilytica in Washington, D.C..
It combines the best of many languages that both data scientists and data engineers use and the result is a language that is fast, dependable and easily scalable, Walch said. She cited as an example that Julia can process enormous volumes of data quickly and reliably, to help identify outages and network failures in a power grid.
Julia can also enable autonomous vehicles in programs that collect data from sensors in real time and provide quick reactions to obstacles, adjust speed as needed and more, Walch noted. It also has uses in robotics.
Julia 1.0 plays catch-up in the enterprise
Reaching 1.0 status means Julia offers API stability and longer-term support for developers than in earlier versions. "A lot of people were waiting on the sidelines for 1.0 for that guarantee of API stability," Shah said.
Several top enterprise companies use Julia, particularly in their data science and AI divisions, Shah said. He cited Amazon, Apple, Capital One, Comcast, Facebook, Google, IBM, Intel, Microsoft, Oracle and Uber, but declined to share details. Julia also powers the Federal Aviation Administration's NextGen Aircraft Collision Avoidance System and the New York Federal Reserve Bank's Dynamic Stochastic General Equilibrium macroeconomic model, he said.
Andrew BrustCEO, Blue Badge Insights
However, despite Julia's touted usefulness for data science, it hasn't yet captured the attention of enterprise developers.
"Julia is not even on my radar," said Andrew Brust, CEO of Blue Badge Insights, a New York consulting firm that serves big data, analytics and AI companies. "I just see more and more Python being used at the expense of R."
Julia remains well behind both Python and R with enterprise data science programming, due to the former's general versatility and popularity and the latter's widespread usage in academia, said Stephen O'Grady, an analyst at RedMonk. Julia ranked 36th out of the 100 most popular programming languages among developers in RedMonk's recent analysis. Python came in at number three, and the R language was 14th.
"Interest in Julia is picking up," O'Grady said. "Whether that continues and how quickly is open to question, but the trend line for the language is positive."
There have been 200 million downloads of Julia, and since Julia 1.0's release in August, China has been a top download destination for the software, Shah said. More than 1,000 companies have downloaded JuliaPro, and 700 universities are using JuliaBox, which is aimed at academia. JuliaPro includes the Julia compiler, debugger, profiler, Juno Integrated Development Environment, more than 100 curated packages, data visualization and plotting. JuliaPro Enterprise features all of that plus Integration with Excel, customer support and indemnity.