While there were C, C++, Python and Ruby, in February 2012, a new language named Julia emerged and later became one of the most usable languages among the scientific community.
Julia is a general-purpose language and is known for its applications in numerical analysis, data visualisation, and machine learning. The language combines the speed of C, the dynamism of Ruby, the practicality of Python, and the statistical capabilities of R, while also excelling in linear algebra like MATLAB.
The language was co-built by Viral B. Shah, who, out of his own frustration, undertook the arduous task of creating a whole new language. The story goes back to the time, when Shah was doing his PhD in Computer Science, where he worked on building a MATLAB-like language and it was quite a waste of time to write the code in MATLAB and then rewrite it again in C. This was very frustrating for him.
Shah along with Alan Edelman, Jeff Bezanson, and Stefan Karpinski, imagined a language that will have the blend of C and the simplicity of Python. They began working on the programming language in 2009 aimed to address the limitations they faced in the field of technical computing with existing programming languages.
“It was like a rule until we developed Julia that a programming language can either be fast or easy,” Viral B. Shah, the CEO of Julia said at an event hosted by AIM on Saturday. “C and C++ are faster languages with a steep learning curve while Python, Ruby are easier to work with and are known to be slower and user-friendly.”
Almost a decade later, Julia is a popular language because of its speed and easy-to-use features. This year, nearly five million users were recorded to use the programming language.
The standout feature is its exceptional speed, because of its just-in-time compiler that converts source code into machine code before execution. Unlike many high-level languages, Julia offers a flexible parametric type system. This makes static typing optional by default and allows types to take parameters.
This flexibility leads to the multiple dispatch pattern, where a function can have multiple methods or implementations based on input parameters, with the language determining which method to dispatch at runtime. This is not the case in Python, which employs single dispatch, meaning the method to execute is determined solely by the type of the first argument.
Over the years, Julia has seen several major version releases, each introducing new features and improvements. Julia 0.2, released in August 2013, brought enhanced performance and parallel computing capabilities. Subsequent versions continued to expand Julia’s capabilities, focusing on language stability, efficiency, and integration with external libraries. The milestone release of Julia 1.0 in August 2018 marked a stable and mature phase for the language, aiming for long-term stability and compatibility.
Julia For Enterprise
Most programming environment successes in the last 20 years—JAVA, Swift, and .NET—are supported by big companies to build the ecosystem around it. Julia is one of the few languages that thrived without the backing of big techs. “We started with a very small core team and Julia has no backing from big techs.”
Julia, an open source language, which mainly relies on contributions from the community, has branched out for enterprises. Shah explained the decision to commercialise Julia saying, “Open source is fantastic and it’s a community, but we’ve learned over time in this industry that science and engineering companies, unlike tech companies, don’t mind paying for software.”
While Julia is fundamentally an open-source project, Julia Computing provides essential commercial support and development. This dual approach allows the company to contribute to the open-source ecosystem while also offering proprietary tools and solutions for more complex enterprise needs.
Julia has developed several products tailored for enterprise use. These include Pumas for pharmaceutical modelling, JuliaSim for modelling and simulation applications, and a specialised SPICE simulator for circuit design. AstraZeneca, Moderna, Pfizer, Procter & Gamble, and United Therapeutics have partnered with Julia. AstraZeneca along with Prioris.ai developed a Bayesian neural network (BNN) using Julia.
This network is designed to predict drug-induced liver injury, a crucial aspect in the preclinical phase of drug development. The use of BNNs, as opposed to traditional deep neural networks, offers the advantage of not only predicting toxicity but also quantifying uncertainty in these predictions, thereby improving the reliability and safety of drug development processes.
Addressing concerns about the safety and security aspect Viral said, “As a business, we are focusing on scientific use cases. So if you’re building a spy circuit, or a control system for a new engine, or for a new aircraft, or drug discovery, we are building safety critical capabilities in Julia for writing code that will run on physical devices.”
JuliaSim, which was launched in 2021, is a tool for multi-physics simulation. It’s a part of the Julia ecosystem that specialises in physical systems, integrating various physics domains into a single, coherent simulation environment.
“For example, if I wanted to build a model of gearbox or model of a braking system, or model of battery, it allows you to sort of create these models in code and then link them together in a Graphical User Interface (GUI) and then it simulate and it will go ahead and analyse the entire system,” Shah explained.
A key strength of Julia, which also propelled its adoption in the industry, is its ability to integrate with existing software libraries in C, Fortran, and Java. This feature is crucial for enterprises with substantial investments in legacy code. Julia is engineered not only to facilitate the writing of new, high-performance code but also to leverage existing software assets effectively.