Programming languages are the core of all the software we have today. Despite the power and accuracy the leading ones give us, such as Python, MATLAB, and C, bugs and shortcomings exist, which is why new coding languages emerge.
Julia is a general-purpose programming language with strong aims for scientific computing, machine learning, and data mining. It is also used for numerical analysis and computational science. Julia was introduced in 2012 and promises to take the best aspects of the currently most used programming languages—such as Python and C++—and limit their downsides. Being a relatively new language, it has to reach maturity, and at the moment, around 16,000 developers use it– Python counts on millions of them.
Why this is important
Better programming languages are essential to developing better software that can help solve the challenges of our time.
Later this year, Eindhoven will host the world’s main conference on this language, JuliaCon. From July 9 to 13, the Julia community will convene in the city for five days of talks, keynotes, and workshops on the language. The Philips Stadium will be the conference venue, attracting a thousand visitors.
“To me, three aspects stand out about Julia. The first one is speed in solving mathematical problems. The ecosystem surrounding Julia is also notable, with domain experts working on the different problems and sharing code. Furthermore, Julia is an open-source language, and there is a strong collaboration mechanism around it,” says Gareth Thomas. He is the co-founder of the software consultancy company VersionBay and one of the volunteers organizing JuliaCon.
What’s a programming language?
A programming language is a set of syntactic and semantic rules instructing a computer to behave in a certain way and complete given tasks. Therefore, each language has its own vocabulary, a unique set of keywords that follows a syntax to create and execute computer instructions.
Programming languages are behind all the software we use and experience. Websites use languages like HTML, JavaScript, and CSS, while C++ and Python are often the go-to options for coding more complex algorithms and programs and conducting extensive data analysis.
Enhancing speed
Despite being one of the most used languages in the world, one of Python’s main shortcomings is its slowness. According to Jorge Vieyra, a development engineer at ASML and also part of the JuliaCon organizing committee, there are orders of magnitude of difference between code written using Python and C. In fact, Python relies on libraries – collections of code to speed up tasks – compiled with other languages. “Sometimes, when you want to use one library and call another one, you have to go through the Python internals – the language interpreter source code ed. – and connect it to them. And that’s where the bottleneck comes from,” explains the development engineer.
In addition, most of the libraries used when coding in Python are in a domain-specific area—think cryptography, machine learning, or web applications—and are compiled with other languages. By contrast, Julia offers packages for every domain written in Julia. This results in two positive outcomes: the language improves for everyone and enables faster sharing, meaning the coding process can go more rapidly.
Thomas has a metaphor to clarify this aspect. “Think of a Portuguese and Italian getting along; it takes longer to get on the same page because they don’t speak the same language. But if everyone is speaking the same language, that makes everyone super productive.”
Introducing a new approach to machine learning
An aspect where Julia can make a difference is in the so-called physics-informed machine learning or scientific machine learning. Traditional machine learning works by giving a lot of input data to algorithms to process and provide correlations; this kind of approach is behind a model like OpenAI’s ChatGPT. By contrast, scientific machine learning comes with another approach, feeding algorithms with scientific knowledge and using them to solve complex equations, for instance. “Basically, we fed the algorithm knowledge we have and let machine learning fit what is missing,” explains Vieyra.
After giving the algorithm a complex calculation, it would work to quantify the value of hard-to-calculate constants and help suggest how to solve a given problem. “This brings machine learning closer to how the real world works. Julia is capable of that through multiprocessing, which is similar to how mathematicians think,” adds Thomas. In a way, this approach would bring common sense to something hard to understand. Since everything is coded in the same language, performing calculations that wouldn’t be feasible with other programming languages is possible.
Code compiled with Julia is already making a difference as plenty of applications arise. Examples vary from electrical grid protection to energy trading. In general, the language is good at statistical analysis and modeling. Another interesting use case comes from Zipline, which is using Julia to find the best flight trajectories to deliver medicines efficiently. Notably, the language is also behind several developments in the pharmaceutical industry, with industry leaders such as Pfizer and AstraZeneca leveraging it.
The community
As an open-source community, Julia is not backed by any company. Yet, NumFOCUS, an American charity organization that helps open-source projects, supports it. Big companies donate money to the charity, which redistributes to these projects, helping them to pay server costs, and offering legal overview.
Julia is fully driven by the efforts of its community. Saying that a language is open source means the language source code is available for use or modification. This kind of software is developed in a public and open collaboration and made freely available to the public. The community of developers around Julia is active in creating its building blocks. According to Vieyra, this helps a lot with language development, spotting bugs, and reporting them.
For sure next July’s JuliaCon will certainly spotlight the language and possibly attract more users, even in the Netherlands.